ネットワーク機器を導入するとき、まず必ずSNMPによる監視とトラップ送信をおこなう。
これらは機器の本来の提供機能ではなく、監視のための機能であるから、あまり重視しておらず、とりあえず送れればいいでしょ、見れればいいでしょ、という感じだった。
一応検証するのだが、監視(ポーリング)はSNMPマネージャをWindowsPCなどにインストールして確認し、TRAPはWiresharkでキャプチャしてUDP162のパケットが飛んでいるな、くらいで確認を済ましていた。
マネージャはTWSNMPというのがある。GUIで使えるのはこれくらいしかない。
net-snmpというのがあってポーリングはこれでいいのだが、trap受信確認でいいのがない。
zabbixというのがよく使われてて名前をよく聞くのでちょっと調べてみたらフリーソフトだったのでcentosのサーバにインストールしてみた。
....が、こいつ、訳が分からない。
インストールも手間取った。
MariaDB, net-snmp, などいろいろなものが必要。
DBはMariaDBを使う例が紹介されていることが多いがpostgresqlの場合もある。
linuxで何かをインストールする場合、検索すればたくさん情報が出てくるのでそれを参考にして、ほとんどの場合書いてあるコマンドをそのまま入れてやってみる。
まずなんらかのエラーメッセージがでたり、URLにアクセスできなかったり、依存関係がどうの、インストールできないだの、で四苦八苦することになる。
改めて思うのは、なぜみんな dnfとかyumで -y オプションをつけて、複数モジュールを一気にインストールするのかということだ。
そうできるのは十分に検証して前提条件とかバージョンとかが吟味されている場合だけだ。
私はdnfで何かをインストールするときは -y をつけることはまずないし、慣れたもの以外は一個ずつ入れる。
あと、特定のソフトウェアをインストールするときに、特定のリポジトリを追加する、ということがよくあるのだが、これは何なのか。
そういうこともあるんだな、といつもそれに従っているが、そのリポジトリがなぜ必要で、そしてなぜそのリポジトリを追加すればよいとわかるのかが、わからない。
このリポジトリ追加もよく失敗する。
ブログ等に紹介されている例はあくまでもその時にそのバージョンでその環境でたまたまうまくいった例にすぎないのである。
というわけでzabbixのインストールは苦労したのだが、とりあえずブラウザで管理画面にアクセスしてログインすることができた。
が、ここからがまた大変だった。SNMPで監視してトラップを受信する、なんて、対象のホストを登録して、何を監視するか、ポートは何を使うか、デフォルトでいいか、監視間隔は、程度だろうと思ったら、itemだのtemplateだのtriggerだの....
あと、エージェントが必要とか....
たかがSNMP監視でエージェントなんか必要なのかよ....
そんなの入れたことないし.....
さらにtrap受信のためにはzabbixだけではだめで、トラップ受信用のソフトが必要。
とりあえずtrapを受信してログに出力されることは確認できた。が、それはzabbixの機能ではない。
まあ、ログファイルをlessなりtailなりで見ればtrapが来てるなーという確認はできるので、ほぼ私の用途は満たすのだが、
どうせならGUIでホスト名、時刻、trapの内容等を表にしてブラウザで見れたらうれしい。
zabbixってそういうものでしょ?
それが、できない....