Zabbix Server と Zabbix Agent のインストールの個人的なメモです。
目次
- Zabbix とは
- Zabbix Server をインストールした環境
- インストールした Zabbix Server と Zabbix Agent のバージョン
- Zabbix Server と Zabbix Agent のインストールの流れ
- Zabbix Agent のみをインストールする場合の流れ
- ポートの開放
- Zabbix Server に監視対象ホストを追加する
- アラートメールを送信する
- まとめ
Zabbix とは
サーバーを監視してグラフ化にしたり、障害やサーバーの状態に応じてメールなどで通知させる統合監視ソフトウェア。
似たような統合監視ソフトウェアで、私は Nagios しか使ったことがなかったんだけど、監視するサーバーが増えたり監視したい情報が増えたりしたときに、Nagios 力が低すぎてやりたいことがやれなかったのですが、Zabbix は基本的にはブラウザから設定するみたいだし、UI は日本語だし、日本語の情報も多いし、AWS 用の拡張ツールもあるみたいなので、Nagios から Zabbix に乗り換えることにしました。
参考
- ZABBIX-JP | Japanese Zabbix Community
- AWSを含めたハイブリッド環境の監視の実現 ~zabbixのクラウド対応モジュールHyClops~
- HyClops for Zabbix
Zabbix Server をインストールした環境
- OS: CentOS 6.6
- アーキテクチャ: i686
(x86_64なサーバーマシンが欲しいよぉおお)
インストールした Zabbix Server と Zabbix Agent のバージョン
$ zabbix_server -V
Zabbix server v2.4.3 (revision 51175) (15 December 2014)
$ zabbix_agent -V
Zabbix agent v2.4.3 (revision 51175) (15 December 2014)
Zabbix Server と Zabbix Agent のインストールの流れ
yumリポジトリの登録
$ rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/i386/zabbix-release-2.4-1.el6.noarch.rpm
x86_64アーキテクチャの場合は下記。
$ rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
Zabbix パッケージをインストール
$ yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent zabbix-get
Zabbix Sender のインストール
HyClopsプラグインを使用する場合に必要らしい。(HyClopsプラグインは使ってないので未確認)
$ yum -y install zabbix-sender
MySQLデータベースの初期化
$ mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '{パスワード}’;
mysql> exit
スキーマへのデータインポート
$ cd /usr/share/doc/zabbix-server-mysql-2.4.3/create
$ mysql -uroot zabbix < schema.sql
$ mysql -uroot zabbix < images.sql
$ mysql -uroot zabbix < data.sql
Zabbix Server の設定を修正
$ vi /etc/zabbix/zabbix_server.conf
# 修正箇所のみ表示
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword={パスワード}
Zabbix Server プロセスを開始
$ /etc/rc.d/init.d/zabbix-server start
Zabbix Server の自動起動
$ chkconfig zabbix-server --list
zabbix-server 0:off 1:off 2:off 3:off 4:off 5:off 6:off
$ chkconfig zabbix-server on
$ chkconfig zabbix-server --list
zabbix-server 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Apache の設定ファイルを修正
/etc/httpd/conf.d/zabbix.conf
が作られるので良しなに修正する。
Zabbix Server のインストール
http://example.com/zabbix
にアクセスすると Zabbix Server のインストール画面が表示されるので、順番に進めていけばOK。
※メモ: インストールの流れのスクリーンショット画像を撮り忘れたので、またインストールし直す機会にスリーンショット画像を差し替えたい
Zabbix Agent のみをインストールする場合の流れ
監視対象のサーバーでウェブのUI(Zabbix Server)が必要ない場合は Zabbix Agent だけをインストールすればOK。
yumリポジトリの登録
Zabbix Agent のインストール
$ yum -y install zabbix-agent
Zabbix Agent の設定を修正
$ vi /etc/zabbix/zabbix_agentd.conf
# 修正箇所のみ表示
Server={Zabbix Server のドメイン}
ServerActive={Zabbix Server のドメイン}
Hostname={ホスト名}
※1: Server
と ServerActive
の違いはよくわかってないけど、とりあえず同じにしておいた
※2: Hostname
はサーバーのホスト名と同じじゃなくてもいいと思うけど、とりあえず同じにしておいた
Zabbix Agent プロセスを開始
$ /etc/rc.d/init.d/zabbix-agent start
Zabbix Agent の自動起動
$ chkconfig zabbix-agent --list
zabbix-agent 0:off 1:off 2:off 3:off 4:off 5:off 6:off
$ chkconfig zabbix-agent on
$ chkconfig zabbix-agent --list
zabbix-agent 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ポートの開放
標準では、 Zabbix Agent は 10050 番ポートで Zabbix Server からのアクセスに応答し、 Zabbix Server は 10051 番ポートで Zabbix Agent からのアクセスに応答するので、それぞれのポートを開けてあげる必要がある。
Zabbix Server と Zabbix Agent 間の通信が全て許可されているような場合にはこの設定は気にしなくてよい。
Zabbix Agent 側のポート開放
$ iptables -A INPUT -p tcp --dport 10050 -j ACCEPT -s {Zabbix Server のグローバルIPアドレス}
Zabbix Server 側のポート開放
$ iptables -A INPUT -p tcp --dport 10051 -j ACCEPT -s {Zabbix Agent のグローバルIPアドレス}
ポートが正しく空いているか確認する
nmap コマンドでポートの開放状況を確認できる。
nmap コマンドが入っていない場合は、 yum -y install nmap
とかする。
$ nmap -p 10050 {Zabbix Server のグローバルIPアドレス、またはドメイン}
Starting Nmap 5.51 ( http://nmap.org ) at 2015-01-08 23:08 JST
Nmap scan report for {Zabbix Server のドメイン} ({Zabbix Server のグローバルIPアドレス})
Host is up (0.026s latency).
rDNS record for {Zabbix Server のグローバルIPアドレス}: {Zabbix Server のドメイン}
PORT STATE SERVICE
10050/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 0.34 seconds
10050 番ポートが空いていることを確認できた。
Zabbix Server に監視対象ホストを追加する
[ホスト] タブ
監視対象ホストの接続情報など。
http://example.com/zabbix
から Zabbix Server にログイン- [設定] -> [ホスト] の [ホストの作成] ボタンをクリック
- [ホスト名] [表示名] はよしなに
- [所属グループ] は任意でグループ分けできる機能なので、よしなに
- [エージェントのインターフェース] は [DNS名] を入力して、 [接続方法] は [DNS] を選択(ポートはデフォルトの「10050」でOK)
[テンプレート] タブ
テンプレートをリンクさせることで、そのホストに対して「何を監視するか」や「何の値がどれくらいになったらアラートメールを送信するか」などの設定を行う。
監視対象サーバーは Linux なので、 [Template OS Linux] テンプレートをリンクさせる。
- [新規テンプレートをリンク] の [選択] リンクをクリックすると、ポップアップでテンプレート一覧が表される
- [Template OS Linux] にチェックを入れて [選択] ボタンをクリック(もしくは [Template OS Linux] リンクをクリック)
- [新規テンプレートをリンク] に [Template OS Linux] が入力されていることを確認して [追加] リンクをクリック
入力が完了したら、 [追加] ボタンで監視対象ホストが追加される。
他のタブはよくわかっていないので、おいおい勉強していくことにする。
アラートメールを送信する
これを設定しないと障害や障害の予兆のような動作が発生しても Zabbix Server は何も知らせてくれない。
http://example.com/zabbix
にログインすれば状況を確認することができるけど、障害や障害の予兆のような動作があったときに何らかの方法でお知らせしてくれるようにしておきたい。
今回は管理ユーザーにメールアドレスを登録して、アラートメールが送信されるようにする。
管理ユーザーにメールアドレスを追加する
- [プロファイル] -> [メディア] タブの [追加] リンクをクリックすると ポップアップで [新規メディア] 追加画面が表示される
- [タイプ] は「Email」、[送信先] は自分のメールアドレス、[有効な時間] [指定した深刻度のときに使用] はよしなに、[ステータス] は有効にしておく
- [追加] ボタンをクリックする
- ポップアップウィンドウが閉じて [メディア] に上記で入力したメールアドレスが表示されていることを確認する
- [更新] ボタンで変更が更新される
アクションを設定する
アクションは設定した覚えがないので初めから設定されていた気がするけど、どうだったけかな…。
また Zabbix Server をインストールすることがあったらこの内容を更新する。
とりあえずスクリーンショット画像だけ貼っておく。
障害、または何らかのデータが閾値を超えるのを待つ
障害を待つのはダルいので、一旦、監視対象の Zabbix Agent の 10051 番ポートを閉じて Zabbix Server から Zabbix Agent に接続できない状況にして、この状態でアラートメールが送信されるか確認したりすればいいと思う。
まとめ
Zabbix はインストールが簡単だし、設定がブラウザからできるので初心者にもわかりやすいです。
今は Zabbix で安定したサーバー監視ができている状態になったので、Nagix は停止して Zabbix に完全移行することができました。
改訂版 Zabbix統合監視実践入門 ~障害通知、傾向分析、可視化による省力運用 (Software Design plus)