vHoge

VMwareのアレコレ備忘録。CLIでがんばるネタ多め。

vCenter アラーム 環境変数に入っている値ってどんな感じ?

たまに自宅ラボ触ろうとするとホストが落ちていることがあり、必要なタイミングで触れないのもなぁ…ということで監視・通知を入れることに。

ひとまず vCenter で ESXi ホストを監視し、通知として vCSA に内にスクリプトを仕込んで、Pushbullet API をたたき、PC やスマホに push 通知を飛ばす。
(vCenter 自体は仮想マシンで立ててる Zabbix 辺りで監視させる予定)

docs.pushbullet.com

監視の検知をトリガーにスクリプトを実行し WebAPI を叩くのは下記投稿を参照のこと。

vhoge.hateblo.jp

通知メッセージの組み立て

監視対象や検出値はスクリプト実行時に環境変数で渡されるので、それを使って通知メッセージは自由に組み立てられる。使える環境変数は以下の公式 Doc に。

docs.vmware.com

どんな感じの値が入っている?

環境変数について、どんな感じに値が入っているか察せるものもあれば、実物見てみないとなぁみたいなものもあるので、全部出力させてみて実際の値を出してみる。

↓ の感じでダラダラ羅列してみるだけですが…

${VMWARE_ALARM_NAME}

${VMWARE_ALARM_ID}

${VMWARE_ALARM_TARGET_NAME}

${VMWARE_ALARM_TARGET_ID}

${VMWARE_ALARM_OLDSTATUS}

${VMWARE_ALARM_NEWSTATUS}

${VMWARE_ALARM_TRIGGERINGSUMMARY}

${VMWARE_ALARM_DECLARINGSUMMARY}

${VMWARE_ALARM_ALARMVALUE}

${VMWARE_ALARM_EVENTDESCRIPTION}

${VMWARE_ALARM_EVENT_USERNAME}

${VMWARE_ALARM_EVENT_DATACENTER}

${VMWARE_ALARM_EVENT_COMPUTERESOURCE}

${VMWARE_ALARM_EVENT_HOST}

${VMWARE_ALARM_EVENT_VM}

${VMWARE_ALARM_EVENT_NETWORK}

${VMWARE_ALARM_EVENT_DATASTORE}

${VMWARE_ALARM_EVENT_DVS}

これで(nested の) ESXi ホストの電源停止させた場合 ≒ イベント発生のメッセージ ↓

アラームテスト

alarm-2312

192.168.100.44

host-15014

Normal

Critical

Event: vSphere HA detected a host failure (4143890)
Summary: vSphere HA detected a possible host failure of host 192.168.100.44 in cluster nested-cls in datacenter labdc01
Date: 09/13/2023 11:39:58 AM
Host: 192.168.100.44
Resource pool: nested-cls
Data center: labdc01
Arguments:
    eventTypeId = com.vmware.vc.HA.DasHostFailedEvent
    objectId = host-15014
    objectName = 192.168.100.44

([Event alarm expression: vSphere HA detected a host failure; Status = Red])

Event details

vSphere HA detected a possible host failure of host 192.168.100.44 in cluster nested-cls in datacenter labdc01



labdc01

nested-cls

192.168.100.44








メモリ利用率 70% 超え ≒ 条件のメッセージ ↓

アラームテスト2

alarm-2312

192.168.100.24

host-11151

Normal

Critical

Metric Memory Host consumed % is equal to 77%

([Red metric Is above 70%])

Current values for metric/state

Alarm 'アラームテスト2' on 192.168.100.24 changed from Green to Red
















とりあえず

アラーム名、ターゲット、マルチラインサマリがあればどこで何が起きたかは分かりそうなので、それをメッセージに含める感じで一旦 FA。

#!/bin/sh
TOKEN=(write your access token)

/usr/bin/curl -H "Content-Type: application/json" \
              -H "Access-Token: ${TOKEN}" \
              -X POST \
              --data-binary "{\"type\": \"note\", \"TITLE\": \"vCenter Alarm\", \"body\": \"${VMWARE_ALARM_NAME}\n${VMWARE_ALARM_TARGET_NAME}\n${VMWARE_ALARM_TRIGGERINGSUMMARY}\"}" \
              https://api.pushbullet.com/v2/pushes

せっかくなので、Github にも置いておきました。

github.com