Zabbix と戯れる

Zabbix はオープンソースで利用できる監視ソフトのこと。「httpプロセス、さっきおちましたん」とかレポートが来る。粒度はデフォルトで30秒?

とりあえず最初に簡単に試せるのが AgentとServerのペアを用いた監視。監視対象にAgentを入れて内部を監視させ、Serverにレポートさせる。

他にもServerからpingを打って、といった運用もできる。先日とあるインターネットプロバイダが大変不安定だったときに使ってた。

DebianとUbuntuにはパッケージが提供されていることが多い。ただ、2013-05-02時点では、Debian wheezy (testing) にはない (sidにもない)。squeeze (stable) にはある。1.8と2.0系があるっぽい。古め (wheezy, 12.04 LTS) のdistroは比較的1.8が多いようだ。

○ 自身を監視する際のインストールと設定 (がいよう)

zabbix-server-mysql, zabbix-frontend-php, zabbix-agent をインストールする。これにより http://(host)/zabbix/ でPHPフロントエンドにアクセスできる。ZabbixのPHPフロントエンドについては、初期ユーザ名とパスワードは admin/zabbix。

この時点では何も監視していない。Configuration >> Hosts に"Zabbix Server" という"Not monitored" ステータスのホストが既に入っているはずなので、これをMonitoredとすれば自身を監視しはじめる。なお、この監視はlocalhostのagentに対するものだ。

参考

○ PHPの設定修正

デフォルトのphp.ini (Ubuntu 12.04 LTSなら /etc/php5/apache2/php.ini) ではZabbixのPHPフロントエンドが複数の警告を出力する。例えば私は以下の警告を受け取った。
  • PHP post max size 8M 16M is minimum size of PHP post
  • PHP max execution time 30 300 sec is a minimal limitation on execution time of PHP scripts
  • PHP max input time 60 300 sec is a minimal limitation on input parse time for PHP scripts
  • PHP timezone no Timezone for PHP is not set. Please set "date.timezone" option in php.ini
    これらは、Zabbixのdashboard画面でも赤文字を表示されて邪魔なので、修正しておいたほうが良い。数値については書いてあるとおりにすればとりあえず警告は消滅する。

    php.iniを変更してapache2を再起動する。なお、timezoneは日本であれば "Asia/Tokyo" となる。

    ○ 別ホストに agent を入れて監視する

    上記のデフォルトの監視対象に追加する形で、リモートのサーバを指定した設定を追加する (Web上からすぐできる)。対象のIPアドレスかホスト名かのいずれかを指定できる。ポートは標準の10050が見えてるのであればそのまま使えば良い (ファイアウォールとかがあるのなら別)。

    agent側に zabbix-agent のみを入れる。そして、 /etc/zabbix/zabbix_agentd.conf のServer行に監視ホストのIPアドレスを指定してzabbix-agentをリブートする。

    大体30秒程度待てば、レポートが上がってくる。

    ○ 動作を確認する

    監視対象となっているプロセスのどれかをstopさせたり、あるいはいっそ監視しているホストをリブートしてみたりすれば、Zabbixが気づくはずだ。

    ○ デフォルトの(Linux) テンプレートで得られる情報

    大体こんなところだろうか

    • CPU、メモリ、ディスク、ネットワーク等の使用量・率 (グラフとアラートがある)
    • プロセスの稼働状況 (稼働していない場合にアラートが上がる)
    • ログ監視?

    大規模ホスト「群」を相手にするのでなく、例えば数台のヘテロなホスト群を監視するのに便利、という印象を受ける。

    上記から明らかだが「ビッグデータ」という範囲を抑えるものではない。例えばSakuraで3台VPS契約してて個人でナンチャッテサービス立ててる時に「はうあ、ディスクが尽きてひどいことに!」とかなる前にZabbixが警告を吐いてくれるようにしとく、くらいには大変良い。

    ○ おまけ: Raspberry Pi で試す

    Debian wheezyにパッケージがない中、wheezyベースの現時点のRasbian には親切なことにzabbixのパッケージ群はちゃんとある (1.8系)

    zabbix-agentの動作は何の問題もない様子。問題はzabbix-serverで、動作はするが、関連するmysqld, apache2がCPUとメモリーを20%程度コンスタントに食い続けるように見えた。結果として別の作業を並行してCLIで行おうとするときに無視できない速度低下を見た。

    Webインターフェースについても (今日日のまともなホストで運用したケースと比較して) 目に見えて応答が遅いため、「がんばる」必要がある気がする。

    可能不可能という意味では全く可能。https://www.zabbix.com/documentation/jp/1.8/manual/installation のインストール要件等も確認してみるとよい。

    監視のみRPiで行い、管理インターフェースとSQLを別に持たせる、とか色々工夫すればなんとかなるのかもしれないが、だったらなんでRPiでやんだよゴルァ、という話になる気はする。

    agentはCPU/memoryともに0.2%程度食う、という感じなのでさほど気にならなかった印象 (RPintype B 512MBモデル)。しかし空のRPiを監視して何か嬉しいんだろうか。

    このブログの人気の投稿

    LibreOfficeで表紙、目次、本体でフッターのページ番号のスタイルを変える

    WiiUのコントローラが通信不良に陥った話

    技術書典2 あ-03 『もわねっとのPythonの本』