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.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) テンプレートで得られる情報
大体こんなところだろうか
大規模ホスト「群」を相手にするのでなく、例えば数台のヘテロなホスト群を監視するのに便利、という印象を受ける。
上記から明らかだが「ビッグデータ」という範囲を抑えるものではない。例えば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を監視して何か嬉しいんだろうか。
とりあえず最初に簡単に試せるのが 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
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を監視して何か嬉しいんだろうか。