Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
modern vCenter alert nortification(M@STER VERSION)
Search
MasahiroIrie
February 20, 2020
Technology
1.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
modern vCenter alert nortification(M@STER VERSION)
VMware DevOps Meetup #4 (2020/02/20)
MasahiroIrie
February 20, 2020
More Decks by MasahiroIrie
See All by MasahiroIrie
Is that compatibility... actually OK?
mirie_sd
0
53
Expiration of Secure Boot Certificates for vSphere Virtual Machines
mirie_sd
0
960
Making new vExpert badge sticker
mirie_sd
0
530
How to use "VMware"
mirie_sd
0
610
The key to VCP-VCF
mirie_sd
0
2.8k
Now is the time to check the vSphere Security Configuration and Hardening Guide
mirie_sd
0
1.3k
Using vROPs API with Swagger
mirie_sd
0
230
Cooking operations with Salt
mirie_sd
0
780
Blog vExperts use
mirie_sd
0
230
Other Decks in Technology
See All in Technology
SoccerMaster: A Vision Foundation Model for Soccer Understanding
kzykmyzw
0
130
LLMやAIエージェントをソフトウェアに組み込むプラクティス
shibuiwilliam
2
410
世界、断片、モデル。そして理解
ardbeg1958
1
130
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
170
OPENLOGI Company Profile for engineer
hr01
1
74k
「ちゃんとやっている」は独りよがりだった ― 不安に寄り添うインシデント対応へ / Towards incident response that addresses anxieties
chmikata
1
5.8k
しくみを学んで使いこなそう GitHub Copilot app
torumakabe
2
280
CDKで書くECSのベストプラクティス、 改めて考え直す2026 #cdkconf2026
makies
2
710
Data + AI Summit 2026 イベントレポート: 「AIがビジネスで意思決定するデータ基盤」へ
nek0128
0
250
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
270
見守りエージェントを作ってみた(ローカルLLM + Hermes Agent)
happysamurai294
0
110
インフラと開発の垣根を超えていき!〜元AWSインフラエンジニアがAWS開発で奮闘している話〜
hatahata021
3
290
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Accessibility Awareness
sabderemane
1
150
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
340
The World Runs on Bad Software
bkeepers
PRO
72
12k
Automating Front-end Workflow
addyosmani
1370
210k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
650
KATA
mclloyd
PRO
35
15k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Practical Orchestrator
shlominoach
191
11k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Typedesign – Prime Four
hannesfritz
42
3.1k
Transcript
2020/2/20 VMware DevOps Meetup #4 @IrieMasahiro vCenter アラートを今風に通知する (M@STER VERSION)
自己紹介 入江 正博 @IrieMasahiro • 某情報通信系企業 クラウド/インフラコンサルタント • VMUG 仮想インフラ部会 •
vExpert 2019
まずはお詫び • vExpert Advent Calender 2019 にて 自分が担当したネタ(2019/12/10分) https://vhoge.hateblo.jp/entry/2019/12/10/001859 「vCenter
アラートを今風に通知する」 • 実は投稿までに検証しきれなかった&記事ボリュー ムが思ったより大きくなったので、塩漬けさせたネ タが存在 • 今回はそれを加えたフルバージョンとして発表 • のつもりが、今回も検証しきれず タイトルに若干偽りを残す… – M@STER VERSION とは…
最先端を追及する VMware
一方 vCenter にて… vCenter のアラーム定義 - 通知方法
一方 vCenter にて… vCenter のアラーム定義 - 通知方法 • Eメールの送信 •
SNMPトラップの送信 なかなかレガシー…
今風のアラート通知といえば
Slack へ投稿する方法基礎 • Incoming Webhook App を追加 • 発行された特定 URL
に json をつけて POST する • 多少の違いはあるが、今時のチャットツールなら大 体同じ方法(curl で post)で可能 – Microsoft Teams, Chatwork etc… • この方法を使って vCenter アラートを POST 通知 する $ curl -X POST \ --data-urlencode “payload={\”text”\: \”hogehoge\”}” \ https://hooks.slack.com/services/【Token的な何か】
1. スクリプトを実行
再度アラームの定義
スクリプトを実行 • vCenter のアラームをトリガーに指定されたパスの スクリプトを実行 https://docs.vmware.com/jp/VMware-vSphere/6.7/com.vmware.vsphere.monitoring.doc/GUI D-AB74502C-5F01-478D-AF66-672AB5B8065C.html • Windows っぽい内容だが、vCSA
でも利用可能 • なので、vCSA にログインして、例えば以下のスク リプトを仕込む #!/bin/sh /usr/bin/curl -X POST \ --data-urlencode “payload={\”text”\: \"${VMWARE_ALARM_NAME}\n${VMWARE_ALARM_TARGET_NAME}\n${VMWARE _ALARM_EVENTDESCRIPTION}\n${VMWARE_ALARM_ALARMVALUE} \"}" \ https://hooks.slack.com/services/【Token的な何か】
スクリプトを実行 • 監視設定に仕込んだスクリプトのパスを指定 • この状態でアラームを発生させると Slack に POST される
スクリプトを実行 • 使えるパラメータ(環境変数)は多数あるのでメッ セージ自由度は高め https://docs.vmware.com/jp/VMware-vSphere/6.7/com.vmware.vsphere.monitoring.doc/G UID-5F5932FA-71FA-473E-8776-92B00742D566_copy.html • 分かりやすい方法ではあるが、vCSA 内部に仕込む 必要があるので少し面倒
– appliancesh のおかげで scp でのデプロイすら難あり – 一時的に bash に切り替えてデプロイ?
None
スクリプトを実行 • 使えるパラメータ(環境変数)は多数あるのでメッ セージ自由度は高め https://docs.vmware.com/jp/VMware-vSphere/6.7/com.vmware.vsphere.monitoring.doc/G UID-5F5932FA-71FA-473E-8776-92B00742D566_copy.html • 分かりやすい方法ではあるが、vCSA 内部に仕込む 必要があるので面倒
– appliancesh のおかげで scp でのデプロイすら難あり – 一時的に bash に切り替えてデプロイ?
2. snmptrapd で POST
snmptrapd の基礎 snmptrap 送信元サーバ snmp レシーバ snmptrapd traptoemail (perl script)
snmpd • snmptrapd が SNMP Trap 受信をトリガーに snmptrapd.conf で指定された処理を実行 • net-snmp-perl の traptoemail という perl スク リプトでメールを送信していることが多い
snmptrapd で POST • vCenter からは SNMP Trap を飛ばす •
SNMP レシーバ側の snmptrapd に スクリプトを仕込んで POST させる • 仕込んだスクリプト側でメッセージを json 化し、 curl で Webhook に POST $ cat /etc/snmp/snmptrapd.conf authCommunity log,execute,net public traphandle default /usr/local/bin/alert2.sh
仕込むスクリプトの実装例 $ cat /usr/local/bin/alert2.sh #!/bin/sh while read line; do text="$text$line\n"
done text=`echo $text | sed s/\"/\\\\\\\\\"/g` /usr/bin/curl -X POST \ --data-urlencode "payload={\"text\": \"$text\"}" \ https://hooks.slack.com/services/【Token 的な何か】 1. snmptrapd からの呼び出しは snmp メッセージ を標準入力で渡してくるので一手間 2. snmp メッセージがダブルクォートを含んでいる ので、多重でエスケープが必要でさらに一手間 1 2
snmptrapd での POST 実行例
snmptrapd で POST • まるっと SNMP メッセージが流れてくるのでメッ セージ自由度は低め、構成変更などは要魔改造 • snmptrapd
側に mib を仕込んで置かないとメッ セージが意味不明なので注意 (仕込んでても良く分からない?) https://kb.vmware.com/s/article/1013445 • 適当な Linux に仕込むだけなので、vCSA に比べ れば構築はやりやすい (よくある構成管理ツールでデプロイ可) • (中身は SNMP なので結局レガシー…?)
3. vCenter Event Broker Appliance (VEBA)
vCenter Event Broker Appliance • Flings で公開されている OVA アプライアンス https://flings.vmware.com/vcenter-event-broker-appliance
https://github.com/vmware-samples/vcenter-event-broker-appliance • vCenter のイベントをトリガーとしてオリジナル の Function を実行できる • PhotonOS + kubernetes + OpenFaaS をベース に OpenFaaS 用の vcenter-connector (*) をま とめたもの https://github.com/openfaas-incubator/openfaas-vcenter-connector github よりアーキテクチャ図
Function が動くまで 1. OVA をデプロイ 2. Function を実装 3. secret
情報ファイル (vcconfig.json) を設定 4. stack.yml にアプリ、ビルド、イベントを設定 5. OpenFaaS へログイン 6. secret 情報を OpenFaaS へ登録 7. function コンテナをビルド (要 docker) 8. container をコンテナレジストリにpush 9. コンテナレジストリより OpenFaaS に Deploy $ faas-cli login --username hoge --password fuga --tls-no-verify $ faas-cli secret create vcconfig --from-file=vcconfig.json --tls-no-verify $ faas-cli build -f stack.yml $ faas-cli push -f stack.yml $ faas-cli deploy -f stack.yml --tls-no-verify
Function の実装 • VEBA の github にサンプル (powercli/python) https://github.com/vmware-samples/vcenter-event-broker-appliance/tree/development/examples –
VM 変更イベントを slack に POST するサンプルとかも • イベント発生時、json が格納された文字列を引数とし て handler が呼ばれる • json の定義は下記 URL? https://github.com/openfaas-incubator/openfaas-vcenter-connector/blob/master/pk g/events/events.go • function 実装内で json を parse して対象の情報を 取得、あとはその情報を使ってやりたいことをアレコ レ実装
VEBA での POST • アラート POST できるまでの準備量はかなり多いが、 その分メッセージ自由度は高い (OVA, faas
CLI, Function, コンテナレジストリ...) • アラート POST だけで考えるとオーバースペック • Function 実装次第なので他への応用も可能 – メンテナンスモードに合わせてアラートをon/off – DRS での vMotion VM 情報をトレース • まだまだ開発中(現在 v0.2.0) これからの使い勝手向上や情報充実に期待
まとめ • vCenter のアラートを slack に通知する方法とし て以下の 3 つを –
スクリプト実行 – snmptrapd – vCenter Event Broker Appliance • VEBA はまだまだ開発中 今後に期待しつつ動向を注視 • 監視の通知方法として vCenter ネイティブで Webhook 呼び出しができるようになればなぁ… – vROps はできるみたい?
一方ロシアは • メール投稿 app を使った ※ ただし追加は有料プランのみ可
EOP