使ってみよう Zabbix① : インストール編

こんにちは。サイオステクノロジー OSS サポート担当 山本 です。

巷で噂の Zabbix 4.0 が、2018年10月に発表されました。しかし、「Zabbix is 何?」「結局、何ができるの?」と思っている方もまだまだたくさんいらっしゃるかと思います。(自分もそうでした。)

そのため、4.0 の公開に乗じて、数回に分けてインストールから基本的な簡単な監視設定を行うまで行なって、「Zabbixってどういう動作するの?」の一端をお話をしてみようかと思います。

まずは、概要とインストールのお話から!

■で、Zabbix って何?

設定した内容に従ってネットワークを経由してサーバなどから自動でデータを収集したり、設定した条件を満たすデータが検知された際にメールなどでの通知をしたりリモートコマンドを実行したりすることができるツールです。
例えば、エラーっぽいメッセージが出力されたりディスク使用率が高くなったらメールで通知するとか、あるいはリモートコマンドを駆使してサービスの再起動などを図ったりすることができます。単純に複数のサーバーから監視したい情報のみを、一つのツールでまとめて確認できる、というだけでも環境によってはかなり魅力的だと思います。

監視対象からデータを取得してデータベースに書き込んだり、設定した条件に合致するデータを受信した時に通知をするなどの役目を担う Zabbix サーバー

収集されたデータなどを閲覧したり、Zabbix で行なわせる監視の内容を設定したりできる WebGUI である Zabbix Web インターフェース

監視対象となるマシンにインストールすることで、Zabbix サーバーから監視対象のローカルな情報を収集することなどができるようになる Zabbix エージェント

の、主に3つの要素から構成されています。(Zabbix エージェントは必須ではありません。)

また、Zabbix の監視設定や取得したデータを保存するためのデータベースが別途必要になります。(データベースは Zabbix 社が提供するものではありません。)

それぞれの要素を別々のサーバーに配置することも可能ですが、今回は最も単純なお試し用の構成として、「監視対象も含めて全て同じ一つのサーバー」な構成でお話を進めていきます。データベースは RHEL7/CentOS7 で同梱版が存在している MariaDB を使用することにします。

なお、これらの他にも Zabbix サーバーが行う監視データの収集を代行し、負荷を分散する役目を担う Zabbix プロキシが存在しています。

■インストールしてみよう。

色々言ってみても、結局動かしてみるのが一番わかりやすいはずです。一先ず、早速インストールしてみましょう。

Zabbix のインストールの手順は公式サイトのダウンロードページに step-by-step な形で記載されておりますので、これに従ってインストールしましょう。

まず、「1,Zabbixサーバーのプラットフォームを選択」で使用している環境に合わせた項目を選択します。(※ ここでは MariaDB は MySQL と扱って大丈夫です。)

zabbix_downloadpage

選択した内容に合わせて、「2,Install and configure Zabbix server」の内容が表示されるので、表示されたコマンドを実行、またはファイルを編集していきましょう。

ここからの手順は本記事を投稿した時点での、「4.0 LTS」「CentOS」「7」「MySQL」を選択した時に表示された手順を実行したもの (+MariaDB のインストール) の手順となりますので、実際にインストールする際はダウンロードページでお使いの環境に合わせた設定を行なった際に表示されるコマンドをコピー&ペーストしてインストールしたほうがより確実です。
実行したコマンドについては色分けしておきます。

a, yum のリポジトリを登録するための rpm をインストールします。

# rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.Sae2Kj: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY

ここでの warning は基本的に無視しても大丈夫なものです。

b, yum を使って Zabbix をインストールします。途中、キーの確認がありますが、「y」と答えましょう。

# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
(中略)
Dependencies Resolved
=============================================================================================================
Package                        Arch          Version                      Repository                   Size
=============================================================================================================
Installing:
zabbix-agent                   x86_64        4.0.1-1.el7                  zabbix                      381 k
zabbix-server-mysql            x86_64        4.0.1-1.el7                  zabbix                      2.1 M
zabbix-web-mysql               noarch        4.0.1-1.el7                  zabbix                      7.8 k
Installing for dependencies:
OpenIPMI-libs                  x86_64        2.0.23-2.el7                 base                        521 k
OpenIPMI-modalias              x86_64        2.0.23-2.el7                 base                         16 k
apr                            x86_64        1.4.8-3.el7_4.1              base                        103 k
(中略)
Transaction Summary
=============================================================================================================
Install  3 Packages (+40 Dependent packages)
(中略)
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
Importing GPG key 0x79EA5ED4:
Userid     : "Zabbix SIA "
Fingerprint: fbab d5fb 2025 5eca b22e e194 d13d 58e4 79ea 5ed4
Package    : zabbix-release-4.0-1.el7.noarch (installed)
From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
Is this ok [y/N]: y
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
Importing GPG key 0xA14FE591:
Userid     : "Zabbix LLC "
Fingerprint: a184 8f53 52d0 22b9 471d 83d0 082a b56b a14f e591
Package    : zabbix-release-4.0-1.el7.noarch (installed)
From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
Is this ok [y/N]: y
(略)

依存性により、同時に多数のパッケージがインストールされるかと思います。これらは Zabbix の動作に必要なパッケージです。

c, の手順を行うにはデータベースが必要なため、先にデータベースをインストールします。今回は MariaDB を使用します。

# yum install mariadb-server
(中略)
Dependencies Resolved
=============================================================================================================
Package                        Arch          Version                      Repository                   Size
=============================================================================================================
Installing:
mariadb-server                 x86_64        1:5.5.60-1.el7_5             updates                      11 M
Installing for dependencies:
libaio                         x86_64        0.3.109-13.el7               base                         24 k
mariadb                        x86_64        1:5.5.60-1.el7_5             updates                     8.9 M
perl                           x86_64        4:5.16.3-292.el7             base                        8.0 M
(中略)
Transaction Summary
=============================================================================================================
Install  1 Package  (+37 Dependent packages)
Upgrade             (  1 Dependent package)

c, の手順を行う前に、インストールした MariaDB を起動します、

# systemctl start mariadb
# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

c, MySQL (今回は MariaDB) で Zabbix 用のユーザーを作成します。MariaDB を使用する場合でも、この手順に変更は不要です。
パスワードは任意で変更可能なので、今回は「hogehoge」にしてみました。

# mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is x
Server version: x.x.x-MariaDB MariaDB Server
Copyright (c) 2000, xxxx, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'hogehoge';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> quit
Bye

c, Zabbix 用のデータベースとして扱えるよう、データベースにデータを流し込みます。
「Enter password:」と表示されたら、先ほどパスワードとして設定した “hogehoge” を入力します。

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password:

d, Zabbix サーバーからデータベースが参照できるように、Zabbix サーバーの設定ファイルを編集してデータベースのパスワード (今回の例では “hogehoge“) を書き込みます。
/etc/zabbix/zabbix_server.conf

119 ### Option: DBPassword
120 #       Database password. Ignored for SQLite.
121 #       Comment this line if no password is used.
122 #
123 # Mandatory: no
124 # Default:
125 # DBPassword=
126
    127 DBPassword=hogehoge

Zabbix の設定ファイルはこのように設定できる項目それぞれについて「項目名」「項目の役割」「設定必須か否か」「デフォルト値」といった情報が記載されています。
元々コメントアウトされている部分を利用して設定してもよいのですが、後で見た時に「デフォルト値って何だったっけ…?」とならないように、新しく行を追加して設定を記述するのがオススメです。
また、この設定は何行目に記述しても大丈夫ですが、後でどこに書いたか、書いていないのかわからなくならないように、説明書きの直後の行に設定を記述することをオススメします。

e, httpd の設定ファイルを編集し、Zabbix Web インターフェースの標準時を設定します、
先頭の「#」の消し忘れに注意しましょう。
/etc/httpd/conf.d/zabbix.conf

     20         php_value date.timezone Asia/Tokyo

勿論、Asia/Tokyo でなくても問題ありません。America/New_York だったり Antarctica/Syowa だったり Europe/Rome など、都合の良い標準時を選んでください。

f, Zabbix サーバーと Zabbix エージェント、Web インターフェースにアクセスするための httpd を起動します。

# systemctl restart zabbix-server zabbix-agent httpd
# systemctl enable zabbix-server zabbix-agent httpd

ここまでで、コマンドラインで行うべき初期設定は終わりです。

■Web インターフェースを設定しよう。

上記のダウンロードページの手順では、「http://(サーバ名またはIPアドレス)/zabbix」に接続して終わっていますが、アクセスした後も Web インターフェースの設定が必要です。
(詳細は同じセクションに貼られているリンクから見ることができます)

と言っても、今回のように
 ・パッケージを使用していて
 ・Zabbix サーバー・データベース・Zabbix Web インターフェースを同一のサーバーにインストールしている
場合には、基本的には右下の青いボタンを押下していけば大丈夫です。

ただし、3番目の画面では設定した DB のパスワード (今回の例では “hogehoge“) を入力する必要があります。

setting1
setting2
setting3
setting4
setting5
setting6

■設定完了!

zlogin

無事、設定を終えることができると上記のようなページが表示されるはずです。殆どダウンロードページ記載の手順をなぞるだけとなってしまいましたが、これで Zabbix を使う準備が整いました!
デフォルトではユーザー名「Admin」パスワード「zabbix」でログインできるはずですので、試してみてください。

次回以降はこの Zabbix Web インターフェースを使って、簡単な監視の設定の手順を確認していきましょう。

関連記事

・使ってみよう Zabbix① : インストール編 (※今回)
使ってみよう Zabbix② : ユーザー設定編

ZabbixはZabbix LLCの登録商標です。

ご覧いただきありがとうございます! この投稿は役に立ちましたか? 役に立った 役に立たなかった

Be the first to comment

コメント投稿

Your email address will not be published.


*