気ままにインフラエンジニア

渋谷で働くインフラエンジニアの備忘録。 TwitterID: @nakashii_

Zabbix 2.0.0 をインストール後にまずやっておいたこと

インストール手順は省略
主に2.0.0の新機能を早めに試したい人向け。

ディスカバリルールの設定

とりあえず下記のようにしてみて検証中。
設定->テンプレート->"Template OS Linux"のディスカバリルール
f:id:oopsops:20120529220339p:plain
Network Interface discovery

正規表現の項目を書き換え -> (eth[0-9])|(bond[0-9])

Mounted filesystem discovery

マクロの項目を書き換え -> {#FSNAME}
正規表現の項目を書き換え -> (^\/$)|(^\/data)

とはいえ、まだあまり検出が安定していないように感じること、ディスカバリルールによるアイテムは今のところホストスクリーンに登録できないので、eth0/eth1やディスク監視などは過去のテンプレート通りアイテムを作っておいたほうがよさそうです。

自動登録アクションの設定

設定->アクション->イベントソース:自動登録->アクションの作成
今のところホスト名でしか判断できないが、Zabbix Agentからアクティブ接続があったときに自動でホスト登録されるようになる。実質Agentをインストールするだけまで簡略化できる。
自動登録アクションは有効になっているものがすべて判定されるようなので、無条件でLinuxのテンプレートに入れた後、dbやmysqlのような文字列があるものには追加でMySQLのテンプレートを適用、のようなことができる。
条件を組み合わせるときはAND条件に注意。

ホストグループをマップに展開

◆設定->ネットワークマップの設定 でマップを作成
◆マップにアイコンを追加し、適当なホストグループを指定(マップの保存を忘れずに)
◆マップをお気に入りに登録(ダッシュボードからアクセス可能にしておく)
f:id:oopsops:20120529232342p:plain
テンプレートに紐付いたホストスクリーンという機能が使えるのだけど、障害時以外どこから見に行ったらいいかわからない不親切仕様。なので、暫定策として適当なホストグループをマップに展開させておく。せっかく集めたトレンドデータを見てサーバーの調整をするなら、個別のサーバーの情報へはせめてダッシュボードから2クリック以内(かつキー入力なし等)で行けないとキツイ。何かパッチを作ったほうがよさそう。

いくつかのアイテムの追加

◆Disk read/write の取得
あまり必要のないトリガーやアイテムが省かれたのはいいと思う。が、なぜかディスク関連も省かれてしまった。
最低限 vfs.dev.read[,ops]、vfs.dev.write[,ops] あたりは追加が必要。

◆ZabbixServerのアイテム数の取得
"Template App Zabbix Server" に zabbix[items] を追加しておく。
これとDisk、MySQLのグラフを合わせれば、どのくらいのアイテム数でどのくらいの負荷になるか後々の参考に。

LDAPの設定

f:id:oopsops:20120529233444p:plain
LDAPでユーザー管理するために管理->認証の認証方式を変更する。
LDAPサーバーに接続できない時のため、管理者グループ(Zabbix Local Administrators等)を作成して、グループの認証方式をZabbixのローカル認証に変更し、Adminをそちらに移しておく。ビルトインのZabbix Administratorsはシステムデフォルト固定のよう。

MuninのPluginをZabbixで使うwrapper的なものを作ってみた(Zabbix 2.0.0rc2対応)

Zabbix APIPython liblaryを使ってます。(Zabbix 2.0.0rc2で動作確認。1.8系はAPIが違うので、頑張ってJSONの中身を変えて下さい。)

スクリプト本体おきば
https://github.com/oopsops/scripts/blob/master/zabbix/zabbix_munin_plugin.py


使い方

# UserParameterに登録してAgentをリスタート
echo 'UserParameter=munin[*],/usr/share/munin/plugins/$1 |grep "^$2.value" |cut -d " " -f2' > /etc/zabbix/zabbix_agentd.d/userparameter_munin_plugin.conf
service zabbix-agent restart

# 適当なフォルダにスクリプトを設置
git clone git://github.com/oopsops/scripts.git
#
cd scripts/zabbix
# 引数の1つめにプラグイン名 2つめは登録先テンプレート(省略可)
./zabbix_munin_plugin.py memory Template_Linux

こんなことできます

  • /usr/share/munin/plugins/(プラグイン名) をZabbixのアイテムとして取り込みます
  • グラフを自動生成します(ノーマルグラフ、アイテムの色はランダム)
  • APIにアクセス可能なサーバーならどこからでも使えます
  • パスワードプロンプト対応です

基本的にはスクリプトを実行するサーバーできちんとvalueが取れるプラグインを使って下さい。
UserParameterの追加は最初だけでOKです。


memoryプラグインを取り込んだグラフを積算に変更したところ
f:id:oopsops:20120418191355p:plain

わーい。