sidetech

(元)インフラエンジニアの寄り道メモ。

System Answer G2からZABBIX Agentを見る

気が付けば5月。休みばかりで仕事が出来ないぜ(とか言ってみる)。

さて今回は、某打合せ用に作っただけなのですが、こんな事も出来るっていう事で。

・ZABBIXのエージェントは入っているけどSNMPを開放していないサーバ

上記のような条件のサーバってありますかね。

System Answer G2(以下SAG2)は基本的にエージェントレスの考えなのですが、ちょっと工夫するとZABBIXエージェントの値をSAG2に取り込むことが出来ます。

必要なのは「zabbix_get」というものです。本来は動作チェック用らしいのですが・・・?
ZABBIXエージェントにはアクティブとパッシブという考えがあって、今回はパッシブ機能領域を利用する事になります。

zqbbix_getする為のSAG2用のスクリプトはあんまりエラーチェックを噛ましていないですが、open命令でzabbix_getをコールして、値を採って、valueに表示しているだけです。
スクリプトは大した内容ではないので・・・。

で、SAG2の設定はというと、

Sag2zabbix01
一応、SNMP取得が出来ないサーバを想定していますので、SNMPを無効にして登録します。画像のIPは適当です。

Sag2zabbix02
SNMPが使えないので、取得出来る機能も制限が掛かっています。青枠は使えます。
今回は、アプリケーションのCommand Valueを使います。

Sag2zabbix03
パラメータに注目して下さい。zabbixだと「設定」>「ホスト」>「アプリケーション」>「アイテムの設定」の中にいる様なパラメータです。キーと言われるものですね。今回「system.cpu.util[,system,avg1]」というキーをチョイスしています。

Sag2zabbix04
こんな感じで、SAG2の中にZABBIXの文字が・・・結構違和感ありますね。

で、暫くすると・・・

Sag2zabbix05

グラフが出来てきました。横取り感半端ないですが、まぁZABBIXを使っていて、どうしてもエージェントでアレ拾ってるんだよねぇ・・・なんてCustom.Paramがあったりするかもしれません。
そういった時でも、SAG2からも取得出来るので良いですね。
ただ、アプリケーションのカスタムコマンド監視機能を使っているので、テンプレ化はちょっとキツイデス。
その代わり、本来このパラメータまでは要らないんだよなぁ・・・これだけ欲しいのだけど・・・と言った時に、手軽に利用できます。
ZABBIXだと、アレ・・・えーとあのパラメータ何処だっけ?どの階層に居るんだ?!ってなり煩雑ですが、SAG2は上記の画面イメージの流れで済むので楽ちんです。

グラフを重ねたいとかいう場合には、少しコツというか慣れは必要ですが・・・。

さて、今回急にこしらえたSAG2用ZABBIXえーじぇんとゲッツなのですが、よくよく考えたら、今までZABBIXエージェントが動いていたサーバのスクリプトすら改造して結局パラメータだけ使ってエージェント止めちゃってたのを忘れてたんですね・・・。

しかし、久々にPerlを触りましたが、見た目は構文も問題ないのに、ずっとオプションの引数の値が入らなくてハマりました。。。結局エラーにならない恐怖を何時間も味わって、別のスクリプトを起こしたら難なく動くという・・・。久々にゲンナリしました。[E:weep]

てことで、打ち合わせの支度は終わりっす[E:happy02]