なんかかきたい

プログラミングなどの個人的なメモやサークル「ゆきいろパラソル」の情報を載せてます

zabbixについてまとめておく

Zabbixは総合監視ツールでmuninのようなメトリクスグラフを出したり、nagiosのような死活監視を行う機能をまとめて持っている便利ツール。

prometheus + grafana のように高速ではないが、長く使われているためそれなりの情報がある。

反面、古いといえば古臭さはあり、WebGUIでポチポチやる必要があるところが今ひとつだったり、agentで送れるデータが1つだったりする。

また、好みはあるが、個人的にはグラフはイマイチでメトリクスグラフはmuninのほうが簡単で綺麗という感想です。

一応WebAPIがあるので、自動的に設定を作ることはできなくはなさそうだけど、何回も設定するようなものではないし、 自前で作るのは正直面倒ではあります。

あと、zabbix-agentは監視項目が多くなるとホストマシンのCPUを消費する傾向があるので、多すぎる監視項目に気をつける必要がある。 この辺りは最適化テクニックもあるらしいけど、必要な監視のみに削る方が楽。

Zabbixは非常に高機能なので色々なことができるみたいですが、とりあえず使い始めるに当たって必要なところだけまとめる

zabbix-web

ZabbixサーバのWebインターフェイス。 Zabbixは設定をMySQLなどのDBに持つが、Webインターフェイスから設定を変える場合に使う。

管理 > ユーザ

Zabbixはユーザごとにプロファイルを持ち、Webのビューや障害通知のメールなどを設定できる。

デフォルトで Admin ユーザが設定されているが、複数人で扱う場合にはそれぞれ適切にユーザ登録を行うのがよい。

ユーザには種類があり、「Zabbixユーザー」と「Zabbix特権管理者」がある。 一般ユーザは「Zabbixユーザー」になるが、「設定」や「管理」が行えず、ホスト登録や障害通知のトリガー設定など多くの 運用に必要な設定ができないため、運用者は「Zabbix特権管理者」の権限を使うのがよい。

単に閲覧だけできればよいのであれば「Zabbixユーザー」でもよい。 グループごとに閲覧できる範囲を限定したり、大規模な会社向けの機能っぽいものもあるが割愛する。

設定 > アクション

アクションはZabbixが何かしらの状態変化を検出した場合に何かの動作を自動的に行うというもので、その名前の通りの機能。

何かしらのイベントには、「トリガー」、「ディスカバリ」、「自動登録」、「内部イベント」がある。

トリガーというのは、ホストから取得している数値に変化があった場合に通知として使えるもので、 いわゆるホスト監視目的で使える。障害復旧通知とか。

ディスカバリと自動登録はZabbixがホストを見つけた場合に使うのもので、例えば名前を自動で埋めたり監視項目を自動設定したりできる。 ディスカバリと自動登録は、受け攻めの違い程度なのでどちらも似たような感じで設定する。

内部イベントはその他色々なイベントを実行の条件にできるようだが、特に使っていないのでわからない。

とりあえずの設定で言えばトリガーを設定できれば死活監視の仕組みを作れる。

デフォルトの通知は「Report problems to Zabbix administrators」で「Zabbix administrators via すべてのメディア」となっている。

「Zabbix administrators」というのはデフォルトのユーザグループで、 通知を受け取りたいユーザは「Zabbix administrators」に所属させておけばよいと思う。

「すべてのメディア」とあるが、メディアというのはユーザごとに設定できる通知の方法で、「メール」「SMS」「スクリプト」など任意に設定できる。

Slackのようなチャットツールに通知したい場合は、自前でスクリプトを設定すると簡単にできる。 設定方法はユーザプロフィールの右上のアイコン。

設定 > テンプレート

テンプレートというのは、複数のホストに対してまとめて設定をいれるために使う設定のセットのようなもの。

Zabbixのマニュアルだと、「アイテム」、「トリガー」、「グラフ」、「アプリケーション」、「スクリーン」、「ローレベルディスカバリ」などが 例になっている。

とりあえずの設定で言えば、まずは「アイテム」と「トリガー」を設定できれば十分。

「アイテム」とはホストから取得するデータのことで、具体的には「CPU使用率」や「メモリ使用量」、「起動プロセス数」など。 監視項目と考えてもいいかもしれない。取得するデータは組み込みのもののほか任意のスクリプトから取得することもできる。

「トリガー」はテンプレートの単位で「アイテム」で取得した数値が一定の値を取った時にアクションを行う設定。 具体的には、「アイテム:CPU使用率が50%を超えた場合」といった条件をトリガー起動の条件として設定する。 トリガーの設定にはアイテムの設定が必須となる。

アイテムやトリガーはテンプレートではなくホストごとにも設定できるが設定管理の面からテンプレートを使うのがベター。

設定 > ホストグループ

テンプレートには必ずホストグループを設定する必要があるが、設定してもテンプレートの内容がホストグループに適用されるわけではない。

先の説明通りになるが、テンプレートはホストごとに設定するもので、この設定は対象ホストの選択時に絞り込めるだけにすぎない。

実際にホストにテンプレートを適用するにはリンクをする必要があり、これはホスト側からもテンプレート側からも行える。

ホストグループはホストをまとめる論理単位だが、テンプレートには直接影響しないため注意。イマイチ慣れない機能。

とりあえず

死活監視はこれだけで十分作れる感じはある。長く使われているだけあって、情報は多いし悪くはない。

グラフは好みあるけどZabbix単体だとホストグラフを横断的にみることができないからキツいかなあ。

まあとりあえずいい感じのツールなのは間違いないです。

長い付き合いだったNagiosさんもIcingaになりそうで古いプラグインが使えなくなるとかなんとかだそうで この手の監視ツールも大変だなーという感想です。