LoginSignup
1
5

More than 5 years have passed since last update.

Zabbix 3.2 on Amazon Linux 体験記

Posted at

前提

インフラや運用の知識が乏しい人間が勉強メモとして書いている記事となります。セキュリティーや可用性など実運用に際して著しい欠陥がある場合がありますので、適用する際はご注意ください。

概要

  • Amazon LinuxにZabbixサーバーとエージェントをソースコードからインストール
  • WEBページから動作状況のモニタリング

Zabbix とは

logo.png

Zabbix は、サーバーモニタリング用GPLv2ライセンスのOSSツールとなります。
Zabbix サーバーがエージェントサーバー(運用しているWEBサーバーなど)から、動作状況を逐次収集し、WEBページからその状況を見ることができます。
テンプレートを組み合わせて監視対象のパラメーターを対象のサーバーに応じて簡単に変更することができます。
Zabbix 3.2 のドキュメントはこちら

環境

  • Zabbix 3.2
  • Amazon Linux 2016.09
  • PHP 5.6
  • Apache 2.4
  • Mysql 5.5

インストール

依存モジュールのインストール

まず、依存モジュールをインストールします。Requirementsによると、PHPは5.4以上が必須、Apacheは1.3.12以上でよいようですがPHPに合わせて2.4を今回は使用します。
データベースはだいたいなんでも使用できますが、今回は Mysql 5.5 を使用します。

yum install mysql-server httpd24 php56 php56-gd php56-mbstring php56-mysqlnd php56-bcmath

本体のインストール

ドキュメントのパッケージからインストールを参考に下記コマンドでインストールを行います。

rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-release-3.2-1.el6.noarch.rpm
yum install zabbix-server-mysql zabbix-web-mysql

ところが、下記のエラーが出て全くインストールが進みません。

Error: Package: zabbix-server-mysql-3.2.6-1.el7.x86_64 (zabbix)
           Requires: libnetsnmp.so.31()(64bit)
Error: Package: iksemel-1.4-2.el7.centos.x86_64 (zabbix-non-supported)
           Requires: libgnutls.so.28(GNUTLS_1_4)(64bit)
Error: Package: zabbix-server-mysql-3.2.6-1.el7.x86_64 (zabbix)
           Requires: systemd
Error: Package: iksemel-1.4-2.el7.centos.x86_64 (zabbix-non-supported)
           Requires: libgnutls.so.28()(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

ざっくり調べてみた感じですと、Amazon Linuxにはsystemdがインストールできないようで、諦めて今回はソースコードからのインストールを行うことにしました。

ドキュメントのソースコードからのインストールを参考に、ソースコードの取得、ビルド用のモジュールのインストール、ビルドを行います。

wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz
tar -zxvf zabbix-3.2.6.tar.gz

# ビルド用モジュールのインストール
sudo yum install gcc mysql56-devel libxml2-devel net-snmp-devel libcurl-devel

# ビルド&インストール
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make install

上記のコマンドが成功すると、/usr/local/etc/zabbix_server.confに設定ファイルが作られ、zabbix_serverコマンドが実行できるようになっているはずです。

とりあえず、ドキュメントに従ってzabbix_serverzabbix_agentdでZabbixサーバーとエージェントプロセスを起動します。

WEBページの表示とZabbixの設定

ZabbixではWEBページ上からシステム設定の確認や、Zabbixの設定を行うことができます。ページを表示するには、環境のhtdocsフォルダにfrontends/phpをコピーする必要があります。
RHEL系だと下記のような処理になります。

mkdir /var/www/html/zabbix
cd frontends/php
cp -a . /var/www/html/zabbix

ここまでくれば、http://<server_ip_or_name>/zabbixにアクセスすると、Zabbixのウェルカムページが表示されるはずです。

「Next Step」に進むと、PHP の設定確認ページが表示されます。Failになっている項目があると次の処理に進めませんので、要求されている内容に設定を変更する必要があります。

PHPの設定が終わると、次はデータベースの設定を行う必要があります。データベースは自動生成をしてくれるわけではなく、ユーザーやデータベースの作成だけでなく、テーブルの作成まで行う必要があります。
Zabbix用のユーザーとデータベースを作成後、Zabbixソースフォルダ直下の以下のファイルを順番に適用しテーブルの作成までを行います。

database/mysql/schema.sql
database/mysql/images.sql
database/mysql/data.sql

データベースの設定後、Zabbixのサーバーの設定(今回は同じサーバー内なのでそのまま)、設定ファイルの保存(特に何も操作していない状態では書き込めない旨のエラーが出るので、適当に指定のパスに保存してください)を行うと設定は完了です!

ログインページが表示され、ユーザー名に「Admin」パスワードに「zabbix」を入力すると、やっとコンソールを確認できるようになります!パスワードは忘れないうちにさっさと変えてしまいましょう。

設定ファイルの変更

うまいことWEBページが表示できたとしても、Zabbixサーバーおよびクライアントが正常に動作しているとは限りません。例えば、下記の正常動作している状態とは異なり、Zabbix サーバーの起動状態が「No」、ホストステータスに何も表示されない場合があります。

スクリーンショット 2017-07-16 10.48.58.png

スクリーンショット 2017-07-16 10.51.29.png

これは、/usr/local/etc/zabbix_server.confおよび/usr/local/etc/zabbix_agentd.conf設定と、上記のWEBコンソール上での設定が食い違っている場合に発生します。
それぞれ主なパラメーターを以下のように変更する必要があります。場合によってはさらにパラメーターを変更する必要があることもあるかと思います。

/usr/local/etc/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=設定したパスワード
/usr/local/etc/zabbix_agentd.conf
Server=127.0.0.1  # 今回はlocalhostのみ
Hostname=Zabbix server  # WEBコンソールの「設定」→「ホスト」に設定されている一覧から「有効」になっているホスト名を設定

監視を行う

監視データの閲覧

監視設定まで完了すると、あとはZabbixがデータの収集を自動で行ってくれています。
「監視データ」→「最新データ」から登録したホストの最新のデータを下記のような感じで確認することができます。

スクリーンショット 2017-07-16 11.13.53.png

「監視データ」→「グラフ」では過去の状態を含めて、グラフで各ホストのシステム状態を確認することができます。

例えば、Linux OSのテンプレートを設定したホストでは、CPU使用率やメモリ使用率など一般的な指標を簡単に確認することができます。

スクリーンショット 2017-07-16 11.17.02.png

WEBページのパフォーマンスの測定

「設定」→「ホスト」→「WEBシナリオ」からWEBシナリオの作成を行うことができます。「シナリオ」で更新間隔や回数・プロキシの設定、「ステップ」でアクセスURLや変数・ステータスコードを設定することで、該当URLのパフォーマンスを確認することができます。

「監視データ」→「Web」から取得したデータを確認することができます。以下は、一時的にApacheを停止させた際のログになります。サーバーが止まっていた間ログが欠けていることを確認することができます。

スクリーンショット 2017-07-16 11.57.08.png

トリガーの設定

「設定」→「ホスト」→「トリガー」からトリガーの作成を行うことができます。深刻度と「追加」から条件式をUIから設定し、有効にすることでトリガーを設定することができます。

トリガーを設定しておくと、WEBのトップページから障害状況を確認することができます。また、「監視データ」→「トリガー」より障害発生履歴を確認することができます。

スクリーンショット 2017-07-16 12.57.17.png

おわりに

今回は、ZabbixのインストールとWEBコンソールから状態を確認してみました。数あるサーバーの状態監視を一箇所に集約できるのは当たり前ですが便利だなと感じました。
アラートをメールで送ることも可能ですので運用時も重宝しそうです。
次の機会にどんなデータが取得できるか、トリガーをどう使っていくのが良さそうかを調べてみたいと思います。

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5