windows serverでzabbixエージェントの情報をCloudwatchへ送る方法

こんにちは。hacknoteのr.katoです。

今回はwindows serverにzabbixエージェントを入れ、その取得情報をAWSのCloudWatchへ送信する方法を紹介していきます。

手順

  1. Cドライブの直下にhttps://github.com/ryo1107/zabbix-cloudwatch-windows.gitをpullしてください。

  2. 以下のバッチファイルを実行してください。その時、OSのbit数に応じて以下の様にバッチファイルを編集してください。

C:\zabbix-cloudwatch-windows\zabbix_agent\batch\install_zabbix_agent_service.bat
set AGENT="C:\zabbix-cloudwatch-windows\zabbix_agent\bin\win64\zabbix_agentd.exe"

set AGENT="C:\aimluck-cloudwatch-windows\zabbix_agent\bin\win32\zabbix_agentd.exe"
  1. 以下のバッチファイルを実行してください。
C:\zabbix-cloudwatch-windows\zabbix_agent\batch\start_zabbix_agent_service.bat
  1. node.jsをインストールし、次の様に実行してください。
cd C:\zabbix-cloudwatch-windows\nodejs
npm install aws-sdk
  1. C:\zabbix-cloudwatch-windows\nodejs ここにconfig.js.sampleがありますので、このファイルをコピーして、config.jsを作成し、次のIDとパスワードを編集してください。
accesskey: ___accesskey____, 
secretkey: ___secretkey____,
  1. 次のコマンドでCloudwatchへ情報を送信できます。
リソース情報を送信
node C:\zabbix-cloudwatch-windows\nodejs\cloudwatch-put.js >> C:\zabbix-cloudwatch-windows\nodejs\cloudwatch-put.log 2>&1

ポートが待ち受け状態かどうか送信します。0の時は待ち受けしておらず、1の時はしています。
node C:\zabbix-cloudwatch-windows\nodejs\cloudwatch-server.js >> C:\zabbix-cloudwatch-windows\nodejs\cloudwatch-server.log 2>&1

実際に送ってみた

この様に送ることができます。 port_numがチェックしたポート番号です。

C:\zabbix-cloudwatch-windows\nodejs\cloudwatch-server.js内のport_numという配列にチェックしたいポート番号を追加することで、チェックすることができる様になります。