LoginSignup
3
4

More than 5 years have passed since last update.

Nat GateWayの正常性をzabbixで監視

Last updated at Posted at 2016-08-04

目的

NatGatewayはフルマネージドサービスの為、カスタムスクリプトが使用できず、cloudwatchでモニターできないので、awscliの結果を整形してZabbixで取り込む。
NatGatewayの説明は省きます

方法

  1. awscliでNatGatewayのstatus取得
  2. 出力をjqで整形
  3. 整形データをzabbix-senderでzabbix-serverへpush

設定

  1. zabbix-serverに”NatGateway”グループを作成
  2. 作成したグループに監視対象のNatGatewayをホストとして作成(名前はなんでもいい)
  3. 作成したホストにアイテムを作成
名前 タイプ キー データ型 データ形式 アプリケーション
NatGateway-get-status Zabbixトラッパー sender_natg1 数値(整数) 10進数 Sender
  • 監視対象のNatGatewayのステータスを取得し整形
    • zabbix-senderのオプション
      • z - Zabbix サーバのホスト(IP アドレスでの指定でも可)
      • s - 監視対象のホスト名 (Zabbix-serverで登録されたもの)
      • k - アイテムキー
      • o - 送信する値
    • vpc-**-nat-******は作成したホスト名
#!/bin/bash

result1=$(aws ec2 describe-nat-gateways --nat-gateway-ids nat-********* | jq -r '.NatGateways[].State')
result2=$(aws ec2 describe-nat-gateways --nat-gateway-ids nat-********* | jq -r '.NatGateways[].State')
if [ $result1 = "available"  ]; then
 sender1=1
 zabbix_sender -z 127.0.0.1 -s vpc-*****-nat-********* -k sender_natg1 -o $sender1 -vv
else
 sender1=0
 zabbix_sender -z 127.0.0.1 -s vpc-*****-nat-********* -k sender_natg1 -o $sender1 -vv
fi

if [ $result2 = "available"  ]; then
 sender2=1
 zabbix_sender -z 127.0.0.1 -s vpc-*****-nat-********* -k sender_natg1 -o $sender2 -vv
else
 sender2=0
 zabbix_sender -z 127.0.0.1 -s vpc-*****-nat-********* -k sender_natg1 -o $sender2 -vv
fi
  • ログファイル作成
/var/log/zabbix/zabbix_sender.log
(snip)
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000043"
sent: 1; skipped: 0; total: 1
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000077"
sent: 1; skipped: 0; total: 1
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000026"
sent: 1; skipped: 0; total: 1
info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000043"
sent: 1; skipped: 0; total: 1
(snip)
  • 5分毎に実施するようcron処理
$ cat /etc/crontab | egrep -1 '^#.20160804'

# 20160804 natgateway status check Description by me
*/5 * * * * root /etc/zabbix/scripts/get_natg-status.sh >> /var/log/zabbix/zabbix_sender.log
  • ログローテート
/etc/logrotate.d/zabbix-sender
/var/log/zabbix/zabbix_sender.log
{
        missingok
        monthly
        compress
        create 0664 root root
}
  • 結果
$ tail /var/log/cron | egrep '.*get_natg-status.sh'
Aug  4 18:30:01 ******* CROND[30363]: (root) CMD (/etc/zabbix/scripts/get_natg-status.sh > /dev/null 2>&1)
Aug  4 18:35:01 ******* CROND[30660]: (root) CMD (/etc/zabbix/scripts/get_natg-status.sh > /dev/null 2>&1)
Aug  4 18:40:01 ******* CROND[30910]: (root) CMD (/etc/zabbix/scripts/get_natg-status.sh > /dev/null 2>&1)
nat-********: NatGateway-get-status
2016/08/04 19:40:05 1470307205  0
2016/08/04 19:35:05 1470306905  0
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4