Zabbixから死活監視をして仮想ホストが死んでいる場合、仮想ホストを起動しなければならないです。起動方法はvSphereにログインしてホストを起動するか?ESXiにssh接続して起動するか?など人の手を借りて解決します。
どうすればrun boot見たいに自動でホストを起動するかを考えたところ登場したものがJobArrangerでありましたので、その起動方法を紹介して見ます。
JobArrangerはCで作られているのでLinux環境ではよいと思います。
rpm2cpio jobarranger-agentd-3.2.0-1.el6.x86_64.rpm | cpio -idv
コマンドで解凍します。
解凍したらフォルダetc, usr, varを一つに纏めてzipファイルを作ります。
ESXiサーバの/vmfs/volumes/datastore1/ 下にjobフォルダを作成します。
作成したjobフォルダにzipファイルを入れ解凍します。
参考1:ESXiサーバは再起動しても/vmfs/volumes/datastore*の下は変わりませんので自由に使います。
参考2:jobフォルダはご自由に変更してもかまいません。
僕の場合は
/vmfs/volumes/datastore1/job/etc/jobarrangerにありますのでこれを修正します。
vi jobarg_agentd.conf
Hostname=esxi6
JaExtjobPath=/vmfs/volumes/datastore1/job/etc/jobarranger/extendedjob
TmpDir=/vmfs/volumes/datastore1/job/var/lib/jobarranger/tmp
JaLogFile=/vmfs/volumes/datastore1/job/var/log/jobarranger/jobarg_agentd.log
JaPidFile=/vmfs/volumes/datastore1/job/var/run/jobarranger/jobarg_agentd.pid
JaDatabaseFile=/vmfs/volumes/datastore1/job/var/lib/jobarranger/jobarg_agentd.db
JaExtjobPath=/vmfs/volumes/datastore1/job/etc/jobarranger/extendedjob
の部分を環境に合わせて修正します。
僕と同じパスならばそのまま使ってください。
HostnameはZabbixへ登録する名を入れてください。
JOB_PROCESSES=`ps -Tcjstv | grep jobarg_agentd.conf | grep -v grep | awk '{ print $1 }'`
for i in $JOB_PROCESSES
do
echo $i
kill -9 $i
done
exit $?
僕の場合は簡単に書きました。
皆さんは環境に合わせて書いてください。
で実行します。
で紹介したように確認お願いいたします。
[root@localhost:~] ps -Tcjstv | grep job
35227 35227 jobarg_agentd 35227 User,Native WAIT UWAIT 0,1 0.26419 /vmfs/volumes/datastore1/job/usr/sbin/jobarg_agentd -c /vmfs/volumes/datastore1/job/etc/jobarranger/jobarg_agentd.conf
35282 35282 jobarg_agentd 35282 User,Native WAIT USLP 0,1 2.359539 /vmfs/volumes/datastore1/job/usr/sbin/jobarg_agentd -c /vmfs/volumes/datastore1/job/etc/jobarranger/jobarg_agentd.conf
35283 35283 jobarg_agentd 35283 User,Native WAIT KTCP 0,1 0.691 /vmfs/volumes/datastore1/job/usr/sbin/jobarg_agentd -c /vmfs/volumes/datastore1/job/etc/jobarranger/jobarg_agentd.conf
35818 35818 grep 35818 User,Native WAIT UPIPER 0,1 0.0 grep job
[root@localhost:~]
起動はできました。
参照ください。
僕の場合はホスト名はesxi6になります。
Zabbixへactionを登録します。
actionの起動scriptは
https://naiggy.blogspot.jp/2017/04/job-arrangerifjobargexec.html
をご参照ください。
test1のホストを実行するコマンドです。
RUN_HOST=`vim-cmd vmsvc/getallvms | grep test1 | awk '{ print $1 }'`
vim-cmd vmsvc/power.on ${RUN_HOST}
このジョブが実行されると自動でtest1のホストがパワーオンになります。
反対にホストを停止することもできますので
これを見てご自由に使用してください。
ESXiをrebootするとJob Arrangerが自動起動にならないので
vi /etc/rc.local.d/local.sh
/vmfs/volumes/datastore1/job/jobarg_start.sh
を追記するとESXiをrebootしても自動にjob arrangerが起動されます。
以上です。
どうすればrun boot見たいに自動でホストを起動するかを考えたところ登場したものがJobArrangerでありましたので、その起動方法を紹介して見ます。
JobArrangerはCで作られているのでLinux環境ではよいと思います。
1.ESXiにJob Arranger Agentをインストール
ESXiにはrpmコマンドがないのでrpmインストールができませんので他のLinuxサーバーからjobarranger-agentd-3.2.0-1.el6.x86_64.rpmをDownloadしてrpm2cpio jobarranger-agentd-3.2.0-1.el6.x86_64.rpm | cpio -idv
コマンドで解凍します。
解凍したらフォルダetc, usr, varを一つに纏めてzipファイルを作ります。
ESXiサーバの/vmfs/volumes/datastore1/ 下にjobフォルダを作成します。
作成したjobフォルダにzipファイルを入れ解凍します。
参考1:ESXiサーバは再起動しても/vmfs/volumes/datastore*の下は変わりませんので自由に使います。
参考2:jobフォルダはご自由に変更してもかまいません。
2.jobarg_agentd.confファイルの修正
解凍したzipファイルからjobarg_agentd.confを修正します。僕の場合は
/vmfs/volumes/datastore1/job/etc/jobarrangerにありますのでこれを修正します。
vi jobarg_agentd.conf
Hostname=esxi6
JaExtjobPath=/vmfs/volumes/datastore1/job/etc/jobarranger/extendedjob
TmpDir=/vmfs/volumes/datastore1/job/var/lib/jobarranger/tmp
JaLogFile=/vmfs/volumes/datastore1/job/var/log/jobarranger/jobarg_agentd.log
JaPidFile=/vmfs/volumes/datastore1/job/var/run/jobarranger/jobarg_agentd.pid
JaDatabaseFile=/vmfs/volumes/datastore1/job/var/lib/jobarranger/jobarg_agentd.db
JaExtjobPath=/vmfs/volumes/datastore1/job/etc/jobarranger/extendedjob
の部分を環境に合わせて修正します。
僕と同じパスならばそのまま使ってください。
HostnameはZabbixへ登録する名を入れてください。
3.jobarg_start.sh作成
cd /vmfs/volumes/datastore1/job
ここから作業します。
vi jobarg_start.sh
ここから作業します。
vi jobarg_start.sh
##JOB ARRANGER START SHELL
JOB_EXE=/vmfs/volumes/datastore1/job/usr/sbin/jobarg_agentd
JOB_CNF=/vmfs/volumes/datastore1/job/etc/jobarranger/jobarg_agentd.conf
cd `dirname $0`
./jobarg_stop.sh
${JOB_EXE} -c ${JOB_CNF}
exit $?
僕の場合は簡単に書きました。
重複チェックよりは必ずreboot感じで作成しました。
4.jobarg_stop.sh作成
vi jobarg_stop.sh
cd `dirname $0`JOB_PROCESSES=`ps -Tcjstv | grep jobarg_agentd.conf | grep -v grep | awk '{ print $1 }'`
for i in $JOB_PROCESSES
do
echo $i
kill -9 $i
done
exit $?
僕の場合は簡単に書きました。
皆さんは環境に合わせて書いてください。
5.実行権限
chmod 700 jobarg_start.sh jobarg_stop.sh6. job arranger 実行
./jobarg_start.shで実行します。
7.Process確認
https://naiggy.blogspot.jp/2017/04/esxi.htmlで紹介したように確認お願いいたします。
[root@localhost:~] ps -Tcjstv | grep job
35227 35227 jobarg_agentd 35227 User,Native WAIT UWAIT 0,1 0.26419 /vmfs/volumes/datastore1/job/usr/sbin/jobarg_agentd -c /vmfs/volumes/datastore1/job/etc/jobarranger/jobarg_agentd.conf
35282 35282 jobarg_agentd 35282 User,Native WAIT USLP 0,1 2.359539 /vmfs/volumes/datastore1/job/usr/sbin/jobarg_agentd -c /vmfs/volumes/datastore1/job/etc/jobarranger/jobarg_agentd.conf
35283 35283 jobarg_agentd 35283 User,Native WAIT KTCP 0,1 0.691 /vmfs/volumes/datastore1/job/usr/sbin/jobarg_agentd -c /vmfs/volumes/datastore1/job/etc/jobarranger/jobarg_agentd.conf
35818 35818 grep 35818 User,Native WAIT UPIPER 0,1 0.0 grep job
[root@localhost:~]
起動はできました。
8.esxi ファイアウォールを開けます
https://naiggy.blogspot.jp/2017/04/esxi_22.html参照ください。
9.Zabbixへホスト登録
Zabbix GUIからESXiのホストを登録します。僕の場合はホスト名はesxi6になります。
Zabbixへactionを登録します。
actionの起動scriptは
https://naiggy.blogspot.jp/2017/04/job-arrangerifjobargexec.html
をご参照ください。
10.JobNetへ登録します
ジョブの登録の実行欄にtest1のホストを実行するコマンドです。
RUN_HOST=`vim-cmd vmsvc/getallvms | grep test1 | awk '{ print $1 }'`
vim-cmd vmsvc/power.on ${RUN_HOST}
このジョブが実行されると自動でtest1のホストがパワーオンになります。
結論
ZabbixのTemplate Virt VMware Guest: Power stateアイテムと組み合わせで自動でホストを起動することができます。反対にホストを停止することもできますので
これを見てご自由に使用してください。
ESXiをrebootするとJob Arrangerが自動起動にならないので
vi /etc/rc.local.d/local.sh
/vmfs/volumes/datastore1/job/jobarg_start.sh
を追記するとESXiをrebootしても自動にjob arrangerが起動されます。
以上です。
0 件のコメント:
コメントを投稿