突然ですが、サーバーの監視はNagiosとCactiでやってます。やってますと言っても今までに何かトラブルが起こっていて、たけけんのもとにメールが来たのは1回だけです。
だからと言って何もしないのもあれですし、生命保険のように万が一のじたいに備えてやっとくんすよ。
そしてよく使うわけでもないので、同じツールをずっと使っているというのもとてもつまらないものです。
なので、そろそろ監視ソフトを変えてみようと思ったわけだ。
まずZabbixを選んだ理由としては
1.今はNagiosとCactiの2個を使ってるけど、Zabbixなら1個で済む。
2.Nagiosグラフというのを使えば1個で済むんだけど、いかんせん情報が少ない。いろいろめんどくさそう。
おそらくあまり使われていない。
3.ウィキペディアによると、Zabbixはリアルタイム通知メカニズムがあるらしい、なんだそれ!!使ってみてえー!!という事が大きい。
4.Zabbixは情報がソコソコ多い。困ったら調べれば済む。
ならばどこかで使う事も多いかもしれないので役に立つ。
5.悩むところは名前はNagiosの方が好みなのだけど、うーん、名前で決めていいのか。
こんな感じです。
昔話をちょこっとすると、たけけんはPHPのアクセラレータに、ApacheモジュールでGoogleのmod_pagespeedを使ってるんだけど、監視グラフでCactiの前は同じくrrd_toolのMuninを使っていたのだが、おそらくmod_pagespeedの影響でMuninのグラフが出なくなったのさ。
なんとかしようという事でCactiならグラフが出たので使っていたという経緯で使っていたのだが、もしかしてZabbixでもまたグラフが出なくなるかもというリスクがある。
まあ、先に言っておくと、その通りグラフは出なかったんです。
だけどなんと、何の情報もなかったけど解決できたのだ。
やるじゃな~い。
でも多分そこまで書くと長くなるので、その辺はパート2でやろうと思う。
とりあえずはローカル環境からインストールして、本番環境のためのインストールメモとして残しておく。
まずはZabbixのServerとDatabaseをインストール。
インストールはyumで可能だけど、epelのリポジトリを入れる必要があります。
epelが利用できるようになてからzabbix-server zabbix-server-mysqlをインストールする。
ちなみにZabbixのリポジトリがあるらしく、Zabbixのインストール方法は多岐にわたります。
rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm yum --enablerepo=epel install zabbix-server zabbix-server-mysql Installed: zabbix-server.x86_64 0:1.8.18-1.el6 zabbix-server-mysql.x86_64 0:1.8.18-1.el6 Dependency Installed: OpenIPMI-libs.x86_64 0:2.0.16-14.el6 iksemel.x86_64 0:1.4-2.el6 libtool-ltdl.x86_64 0:2.2.6-15.5.el6 unixODBC.x86_64 0:2.2.14-12.el6_3 zabbix.x86_64 0:1.8.18-1.el6 Complete!
続いてデータベースを作ろう。
sqliteやオラクルなどいろいろ使えるみたいだけど、うちはMySQLで作成します。
※ローカル環境で試す場合はMySQLインストールからやろう。
yum install mysql service mysqld start mysql_secure_installation
mysql -u root -p mysql> CREATE USER zabbix; Query OK, 0 rows affected (0.00 sec) mysql> CREATE DATABASE zabbix; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'パスワード'; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
MySQLから抜けてBashからデータベースを設定する。
時期によってはバージョンが異なってたりするので(参考サイトも違う)環境によってパスは変える。
mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-1.8.18/create/schema/mysql.sql Enter password: # mysql -u zabbix -p zabbix2 < /usr/share/doc/zabbix-server-mysql-1.8.18/create/data/data.sql Enter password: # mysql -u zabbix -p zabbix2 < /usr/share/doc/zabbix-server-mysql-1.8.18/create/data/images_mysql.sql Enter password:
続いてServer側のコンフィグファイルの設定をする。変更点は3点。
vi /etc/zabbix/zabbix_server.conf DBName=zabbix DBUser=zabbix DBPassword=パスワード
起動と起動設定をしとこう。
service zabbix-server start Starting ZABBIX server: [ OK ] chkconfig zabbix-server on chkconfig zabbix-server --list zabbix-server 0:off 1:off 2:on 3:on 4:on 5:on 6:off
続いて監視用のWeb関連をインストールとPHPのiniファイルを修正。
yum --enablerepo=epel install zabbix-web-mysql Installed: zabbix-web-mysql.noarch 0:1.8.18-1.el6 Dependency Installed: dejavu-sans-fonts.noarch 0:2.30-2.el6 libxslt.x86_64 0:1.1.26-2.el6_3.1 php-bcmath.x86_64 0:5.3.3-23.el6_4 php-xml.x86_64 0:5.3.3-23.el6_4 zabbix-web.noarch 0:1.8.18-1.el6 Complete!
# vi /etc/php.ini date.timezone = Asia/Tokyo post_max_size = 32M max_execution_time = 600 max_input_time = 600 memory_limit = 256M upload_max_filesize = 16M service httpd restart
この辺はWordpressとか、Webminなんかでもおなじみの方式。
ブラウザで http://ドメイン/zabbix へアクセスして設定するべし。
全部で8項目あって、英語だけど入力するのはサーバーの情報だし、単語をひろっていけば全然もんだいないです。
どこかに問題があればNGが出るはず、出たらPHP.iniファイルを修正しよう。
全部OKだったらそのまま進んで問題なし。
データベースのログインに関する情報を入れます。ここも設定したものを入力するだけでした。
問題ないですね。
これで終わりです。
やってみた感想は、今までのツールに比べてインストールがかなり簡単になった感じがします。
CMSがかなり広まっているし、似てるので設定が上手くいってればこのあたりは問題ないでしょう。
それでいて設定もいろいろ出来てしまうのがすごい。
OSSの時代だしね、これからどんどんこういう感じになっていくのでしょう。
インストールが終わったら、ログインですが最初は admin zabbix でログインできるので、ログインした後にパスワードを変更してしまおう、びっくりしたがなんと日本語にも対応しているようになっている。
上の画像の一番下のAdminをクリックすると、Adminユーザーの設定画面、中ほどにLanguageが見えると思うけど、ここで変更が可能になっています。
それでは最後にエージェント側(監視される)をインストールします。
yum –enablerepo=epel install zabbix-agent Installed: zabbix-agent.x86_64 0:1.8.18-1.el6 Complete!
service zabbix-agent start Starting ZABBIX agent: [ OK ] chkconfig zabbix-agent on chkconfig zabbix-agent --list zabbix-agent 0:off 1:off 2:on 3:on 4:on 5:on 6:off
vi /etc/zabbix/zabbix_agentd.conf Server=192.168.1.100 Hostname=localhost
サーバーとエージェントが同じ場合はこれで十分でした。
インストール関係はだいたい終わりで、環境は整いました。
あとはWebから監視ホストを追加して、監視をするテンプレートを追加したら自動的に監視が始まります。
テンプレートの中には感知できないものもあり、誤検知の原因になってしまうので、無効にしたりうまい事設定を変えておこう。
監視は勝手にやってくるけど、グラフと障害発生時のメール設定とかは自分で作成する必要がありますが、設定したらもう使えるので、かなり楽ちんぽんです。
Zabbixはグラフだけの画面ではなくて、グラフとは別にシステムの状態や起こっている障害の状態なども、スクリーンという一覧表で作成できるようになっています。
MuninとかCactiみたいな画面も作れます、というかもっとカスタマイズしたものが作成できます。
んでな、実際にやってみると分かるようにグラフの日本語が四角に文字化けてるので、フォントをインストールする必要があります。
下に改善策を載せます。手順としては、フォントを入れてシンボリックリンクを張る。
そしてZabbixの設定です。
yum -y install ipa-pgothic-fonts.noarch ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf /usr/share/fonts/dejavu/ipagp.ttf vi /usr/share/zabbix/include/defines.inc.php define('ZBX_FONTPATH', '/usr/share/fonts/dejavu'); // where to search for font (GD > 2.0.18) define('ZBX_GRAPH_FONT_NAME', 'ipagp'); // font file name
これでOK。IPAのきれいなフォントが出てくれます。
これでローカルサーバーでのZabbixインストールの検証とインストールメモが完成しますた。
メモを使って本番環境にインストールしましょう。
最後に監視ホストを増やしてみよう。
本番環境へのインストールは完成しているので、監視サーバーへ、自宅の仮想サーバーを監視対象に入れてみます。
まずはVPSから自宅のCentOSとコネクションできるように、CTUのポート変換とファイアウォールの設定を少し変えます。
できたらPingとかでレスポンスがあるか確認してみます。
続いてホスト側で設定します。
vim /etc/zabbix/zabbix_agent.conf Server=VPSのIPアドレス vim /etc/zabbix/zabbix_agentd.conf Server=VPSのIPアドレス Hostname=ホスト名 ListenIP=監視対象となるIPアドレス、静的NATをしてるならここにはローカルIPが入ります。 /etc/init.d/zabbix-agent restart
これで疎通は取れるので、監視サーバーのWebへログインして監視対象を増やします。
設定>ホスト>ホストの設定
名前にはさっき決めたホスト名を入れて、新規ホストグループとDNS名は空白でもOKでした。
ホストのIPアドレスを入れます。問題がなかったら、作成してからしばらくするとグリーンになり、ホストが増えます。
自宅の仮想サーバーの方はsabaという名前にしています(笑)
グラフも簡単に出来上がりました。
次回は本番サーバーに入れたときのmod_pagespeedの改善点をやります。
参考サイト
さくらのナレッジ