Zabbixを入れてみた パート1

突然ですが、サーバーの監視は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項目あって、英語だけど入力するのはサーバーの情報だし、単語をひろっていけば全然もんだいないです。

zab1

zab2

どこかに問題があればNGが出るはず、出たらPHP.iniファイルを修正しよう。
全部OKだったらそのまま進んで問題なし。

zab3

データベースのログインに関する情報を入れます。ここも設定したものを入力するだけでした。

zab4

問題ないですね。

zab6

これで終わりです。

 

zab7

zab8

やってみた感想は、今までのツールに比べてインストールがかなり簡単になった感じがします。
CMSがかなり広まっているし、似てるので設定が上手くいってればこのあたりは問題ないでしょう。
それでいて設定もいろいろ出来てしまうのがすごい。
OSSの時代だしね、これからどんどんこういう感じになっていくのでしょう。

 

インストールが終わったら、ログインですが最初は admin zabbix でログインできるので、ログインした後にパスワードを変更してしまおう、びっくりしたがなんと日本語にも対応しているようになっている。

zab9

zab10

上の画像の一番下のAdminをクリックすると、Adminユーザーの設定画面、中ほどにLanguageが見えると思うけど、ここで変更が可能になっています。

zab11

 

それでは最後にエージェント側(監視される)をインストールします。

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のきれいなフォントが出てくれます。

zab17

これでローカルサーバーでの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アドレスを入れます。問題がなかったら、作成してからしばらくするとグリーンになり、ホストが増えます。

zab19

自宅の仮想サーバーの方はsabaという名前にしています(笑)

グラフも簡単に出来上がりました。
次回は本番サーバーに入れたときのmod_pagespeedの改善点をやります。

zab18

 

参考サイト

さくらのナレッジ

統合監視ツール「Zabbix」によるサーバー監視

 

Similar Posts:


Leave a Reply

Your email address will not be published. Required fields are marked *