AWS CLIとZabbixでAWS-VPCのVPN接続を常時監視する方法(簡略版)備忘録

やりたい事は、AWSとデーセンター間をVPN接続しているのですが、VPNの
コネクションが切れた場合に気が付かない事が多い、通信が切り替わるまでに
10分程度の時間を要する。万が一通信中だった場合にはメンテが必要なので
コネクションが切れた事を把握したい。

■前提条件
AWS CLIを実行できるWindowsもしくはLinuxをまず準備する必要があります。
今回は既存環境のWindows2008R2でCLIを実行できるのでWindowsで実行して
ログをZabbixに監視させて判定(トリガー)するようにしました。

参考ページ:Amazon VPCでVPNコネクションの状態をAPI監視する
http://dev.classmethod.jp/etc/amazon-vpc-vpn-connection-checker/

■AWS CLIのVPNコネクション状態確認コマンド
 describe-vpn-connections

これのコマンドを使用しますが、単純に実行すると応答として長々とした
XMLが表示される。これからVPNコネクションだけをピックアップして監視
するには・・・・
XMLの出力から UPもしくはDOWNがステータスとして表示されるようなので
UPが2個(行)なら正常 1個なら警告 0個なら障害と判断できそうです。

[XMLの出力例]
cgw-XXX00XXX    available       ipsec.1 vpn-XXX87XXX    vgw-XXX2eXXX
OPTIONS True
ROUTES  10.28.0.0/16    available
ROUTES  172.28.0.0/16   available
VGWTELEMETRY    2       2015-12-19T07:36:43.000Z        XXX.XXX.XXX.29  UP      None
VGWTELEMETRY    2       2015-12-19T08:24:03.000Z        XXX.XXX.XXX.39  UP      None

■AWS CLIとDOSコマンドを組み合わせて一行実行
 aws ec2 describe-vpn-connections > 一時ファイル名 & find /C “UP” < 一時ファイル名 > 結果ファイル名

みたいなコマンドを実行すると結果ファイル名にはUPを含む行の行数がカウントされます

find /C “UP” のfindはとても便利な機能です この場合は /C “文字列”を含む行数を返してくれます
ちなみにfind /V /C “文字列”を指定すると”文字列”を含まない行数を返してくれます。

■Zabbixでのログ監視を設定する
今回、コマンドを実行するWindows2008R2はZabbixエージェントがインストールされていますので
タイプ:Zabbixエージェント(アクティブ)
キー:log[C:LOGAWS_VPN_CHECK.txt]
データ型:ログ

この内容でログ情報(数字)が取得できるか確認!! 問題なく取得できていればいいのですが

■Zabbixで異常判定(トリガー)を設定する
条件式はビルダーがあるので説明の必要はないかもしれませんが
{XXX.XXX.XXX.XXX:log[C:LOGAWS_VPN_CHECK.txt].last()}UPが2以下になった場合は警告(異常)としてメールなりの通知を行うように設定しました。

■こんな仕組みです
 EC2(Windows)→”AWS-API”→AWS Find /C “UP” UPが含む行数を取得(正常時2行)
    │
 [Result]
    │
 ZabbixAgent(log[C:LOGAWS_VPN_CHECK.txt])
    │
 ZabbixManager(log[C:LOGAWS_VPN_CHECK.txt].last()}             │
 メール通知

■ちなみLinuxならこんなコマンドで
 ・a.txtから「検索文字列」が含まれる行を抽出し、b.txtに保存する
 sed -n ‘/検索文字列/p’ a.txt > b.txt
 
 ・a.txtから「検索文字列」が含まれない行を抽出し、b.txtに保存する
 sed ‘/検索文字列/d’ a.txt > b.txt

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

escort adana escort adıyaman escort afyon escort ağrı escort aksaray escort amasya escort ankara escort antalya escort ardahan escort artvin escort aydın escort balıkesir escort bartın escort batman escort bayburt escort bilecik escort bingöl escort bitlis escort bolu escort burdur escort bursa escort çanakkale escort çankırı escort çorum escort denizli escort diyarbakır escort düzce escort edirne escort elazığ escort erzincan escort erzurum escort eskişehir escort gaziantep escort giresun escort gümüşhane escort hakkari escort hatay escort ığdır escort ısparta escort istanbul escort izmir escort izmit escort kahramanmaraş escort karabük escort karaman escort kars escort kastamonu escort kayseri escort kilis escort kırıkkale escort kırklareli escort kırşehir escort kocaeli escort konya escort kütahya escort malatya escort manisa escort mardin escort mersin escort muğla escort muş escort nevşehir escort niğde escort ordu escort osmaniye escort rize escort sakarya escort samsun escort şanlıurfa escort siirt escort sinop escort şırnak escort sivas escort tekirdağ escort tokat escort trabzon escort tunceli escort uşak escort van escort yalova escort yozgat escort zonguldak escort