お疲れ様です。satimoです。
最近はAWSを活用する企業さんが増えてきて、AWSと接続する為にBGPを利用する機会が増えてきました。
で、BGPの状態を監視をしたいって案件も出てきまして、
Zabbbixを利用した監視方法について調査をした結果を求めていきます。
結果はタイトルに書きましたが、Zabbixのアイテム「TELNETエージェント」を利用して監視する方法にたどり着きました。
環境の説明 RTX830での検証を実施!
簡単ですが下のような環境でテストを行いました。
RTXシリーズの MIBから状態を確認できるか? → できません
RTXシリーズを監視する上で定番SNMPの情報から確認可能か?
結論としてはできません。
細かい内容についてはYAMAHAのホームページにMIBが公開されていますので、
こちらから確認していただければよいですが、MIBの中にはBGP関連の情報はありませんでした。
YAMAHAのMIBダウンロード先(http://www.rtpro.yamaha.co.jp/RT/docs/mib/yamaha-private-mib.zip)
一応、BGP云々ではなく異常を検知することは可能です。例えばトンネルの状態を監視するとかです。
まぁ、これでも条件はクリアできるんですが、面白くもないですし、
今回はあくまで「BGPの状態」監視が可能かを深堀っていきます。
障害の条件についての整理
RTXシリーズでBGPの状態を監視する方法としては
show status bgp neighbor
で確認できます。RTX上でコマンドを実行すると結果がつらつら表示されるのですが、
結果内の「BGP state =」を確認します。
- BGP state = Established の値を「正常」と判断
- BGP state = Establishedではない場合「障害」と判断
ということらしいのでこの結果が監視できないか?と進んでいきます。
この時点でスクリプトをZabbixサーバー上に用意すればよいじゃん!
と思った方もいると思います。が、ちょいとお待ちを。
個人的ですが、スクリプトを使うの嫌なんですよ。
いや、ほんと個人的なことですが、スクリプト監視って、個人に依存しません??
自分が作れば、メンテが必要な時作業しなければいけないですし、
他の人のスクリプトを修正するのも頭から読み直したりだとか、修正して気に入らないところ直してとか、結構時間取られてプラスストレスが溜まりますw
なので、今回はスクリプトを使わない方法でできないかと検討していきます。
実際にコマンドを実行して結果を見てみる
show status bgp neighborの後のIPアドレスについては環境によって異なるので注意!!
正常な状態(BGP1)
#show status bgp neighbor 169.254.24.17
BGP neighbor is 169.254.24.17, remote AS 10124, local AS 65000, external link
BGP version 4, remote router ID 169.254.24.17
BGP state = Established, up for 00:00:06
Last read 00:00:05, hold time is 30, keepalive interval is 10 seconds
Received 3 messages, 0 notifications, 0 in queue
Sent 4 messages, 0 notifications, 0 in queue
Connection established 5; dropped 4
Last reset 00:01:25
Local host: 169.254.24.18, Local port: 179
Foreign host: 169.254.24.17, Foreign port: 44255
障害が発生している状態(BGP1)
障害についてはWANポートのLANケーブルを抜いて疑似的に障害を発生させてます。
#show status bgp neighbor 169.254.24.17
BGP neighbor is 169.254.24.17, remote AS 10124, local AS 65000, external link
BGP version 4, remote router ID 0.0.0.0
BGP state = Idle
Last read 00:00:00, hold time is 30, keepalive interval is 10 seconds
Received 8 messages, 0 notifications, 0 in queue
Sent 12 messages, 1 notifications, 0 in queue
Connection established 5; dropped 5
Last reset 00:00:16
Local host: unspecified
Foreign host: 169.254.24.17, Foreign port: 0
【神!】TELNETエージェントを利用して監視してみる
ここでタイトルにも出てきた「TELNETエージェント」が出てくるわけです。
Zabbixのアイテムを眺めていると、「TELNETエージェント」なるものがあるじゃないですか!
で、Zabbixのマニュアルとかを見て下記のように設定しました。
で、結果がこちら
うんうん、良い感じ!
ここまで状態の取得ができれば、トリガーの設定をしてあげればOK
トリガーの設定
今回はregexp関数を利用しています。
内容としては「Establishedという文字列がなければイベントを発生」させるという条件になります。
まぁログ監視と似たような感じですかね?
後は、障害を発生させてコンソール上に表示されることを確認できればOK!
おまけ Searching…がうっとうしい
Searching…がうっとうしい場合は、保存前処理をいじってあげればOK
下は設定例
徒然なるままに
今回はTELNETエージェントを利用してBGPの状態を監視する方法を紹介しました。
この監視方法どうなんでしょう?すごく便利そうなんですが、
正直使う場面があんまり思い浮かばないんですよね。。。。
基本はSNMPを利用して監視して、コマンドでしか確認できない場合が該当すると思うのですが、
今思い浮かぶのはVRRPの状態監視とかですかね?
他にほ活用できそうな場面に出くわしたら記事にしていきたいと思います。
最後まで読んでいただきありがとうございました(^^)/
コメント