Edited at

[Zabbix 3.2][Ubuntu 16.04] Zabbix環境構築手順まとめ

More than 1 year has passed since last update.

サーバーの監視用途にZabbix環境を作成したため、手順をメモ


Zabbix公式

Zabbixオフィシャル日本語サイト :: エンタープライズクラスの分散監視オープンソースソリューション

ドキュメント:

Zabbix documentation [Zabbix Documentation 3.2]


Zabbix Server セットアップ手順

今回は以下の環境で作成しました。(実際はVagrantで作成した仮想マシン上のUbuntuですが手順は省略します)

項目
詳細

OS
Ubuntu 16.04 LTS / 64bit

Zabbix
3.2

PostgreSQL
9.5


[Option] 日本語化対応

ZabbixのWebUIの日本語化の際に、localeの選択ができるようになっている必要があります。


日本語化対応

$ sudo apt-get install language-pack-ja



Zabbixのリポジトリの設定

Ubuntu16.04のデフォルトでもzabbixを取得することはできますが、2.xと古いため、今回は3.2をインストールします。

(マイナーバージョンが上がっていることが考えられるため、以下のリンク先から取得して下さい)

1 Repository installation [Zabbix Documentation 3.2]

$ wget http://repo.zabbix.com/zabbix/3.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.2-1+xenial_all.deb

$ sudo dpkg -i zabbix-release_3.2-1+xenial_all.deb
$ sudo apt-get update


Zabbix(PostgreSQL)向けパッケージのインストール

データの保存先として、MySQLまたはPostgreSQLを選択することができます。

2 Server installation with MySQL database [Zabbix Documentation 3.2]

3 Server installation with PostgreSQL database [Zabbix Documentation 3.2]

本記事では、3のPostgreSQLを利用した環境作成で検証した結果を記載します。


zabbix-serverとwebフロントエンドのインストール

$ sudo apt-get install zabbix-server-pgsql zabbix-frontend-php


Zabbixが稼働しているサーバーも監視対象にするため、zabbix-agentもインストールします。


zabbix-agentのインストール

$ sudo apt-get install zabbix-agent



依存パッケージのインストール

後の手順でパッケージが不足していると言われたため、以下を追加でインストールします、

$ sudo apt-get install php7.0-bcmath php7.0-xml php7.0-mbstring php7.0-pgsql fonts-vlgothic

php7.0-pgsql => これがないと初期設定でPostgreSQLが認識されない。

fonts-vlgothic => 日本語フォント。グラフのレンダリング時に日本語を使用する場合に必要。


zabbix 用のDBの作成

以下は作成例です。PostgreSQLの認証方式に関しては使用している環境に合わせて適切に設定して下さい。


PostgreSQLの設定

$ sudo sed -i -e '/^local.*all.*all.*/s/peer/trust/' /etc/postgresql/9.5/main/pg_hba.conf

$ sudo -u postgres createuser -a -U postgres -P zabbix
Enter password for new role:
Enter it again:

$ sudo -u postgres psql

postgres=# create database zabbix owner zabbix encoding UTF8;
postgres=# \q



作成したDBの初期化

DBの作成後、作成したDBをZabbix用に初期化します。

$ zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | psql -U postgres zabbix


/etc/zabbix/zabbix_server.conf の変更

作成したDBに合わせてzabbix-server設定ファイルを修正します。

$ vi /etc/zabbix/zabbix_server.conf

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=<zabbix db user password>
DBPort=5432

DBName, DBUser, DBPasswordは前段で作成したDBの設定に合わせて設定して下さい。

DBPortの5432はPostgreSQLのデフォルト値になります。

こちらの設定はZabbixのWebからの初期設定時にデフォルト値にもなりますが、Web画面で設定する内容はあくまでも zabbix-frontend 向けの設定のため、zabbix_server.conf 自体もちゃんと設定しておかないと後々エラーになりますので必ず設定して下さい。


zabbixのサービスの起動

systemdからzabbix-serverを起動します。(Ubuntu15.04よりupstartからsystemdに変わっています)

$ sudo service zabbix-server start

$ sudo update-rc.d zabbix-server enable


/etc/zabbix/apache.conf の date.timezone を変更する

date.timezoneの箇所のみコメントアウトしてありますので、環境に合わせて変更します。

基本的には Asia/Tokyo にするかとは思うんですが、その他にする必要がある場合の設定値は以下で確認できます。

PHP: List of Supported Timezones - Manual


/etc/zabbix/apache.conf

    <IfModule mod_php5.c>

php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Tokyo
</IfModule>
<IfModule mod_php7.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Tokyo
</IfModule>


apacheのサービスの再起動

$ sudo service apache2 restart


サービスの起動確認

ブラウザから http://<serverのip>/zabbix にアクセスします。

image.png

残りの手順は以下のページを参照して下さい。(上記の設定が行われていれば基本的に次へなどを押すだけのはず)

3 Installation from sources [Zabbix Documentation 3.2]

初期パスワードでログインします。(初回ログイン後にパスワードは変更して下さい)

Username
Password

Admin
zabbix

初回にWebUIで行った設定は以下で変更できます。


/etc/zabbix/web/zabbix.conf.php

<?php

// Zabbix GUI configuration file.
global $DB;

$DB['TYPE'] = 'POSTGRESQL';
$DB['SERVER'] = 'localhost';
$DB['PORT'] = '5432';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'zabbixuserpass';

// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';

$ZBX_SERVER = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = '';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;



[Option] WebUIの日本語化

WebUIを日本語化する場合は以下のようにします。

Administration => Users => Admin => LanguageでJapanese(ja_JP)を選択

image.png


Zabbix Agentの設定


Zabbix Server自身の設定(Ubuntu)

Zabbixが稼働しているサーバー自体も監視対象にする。

基本的には zabbix-agent をインストール後、zabbix-serverと同様にserviceを立ち上げれば良いです。

初期状態だとZabbix Serverからのアクセスが無効化されているため、有効化する必要があります。

Configuration => Hosts => 「Zabbix server」のStatusがDisabledになっているのでクリックして有効化


Linux

注意点として、ファイヤーウォールの設定等でZabbix AgentがServerに接続する際に使用するポート10050(デフォルト値)を遮断しないようにする必要がある。


Ubuntu

bash:自動起動設定(Ubuntu 16.04 ~)

$ sudo systemctl enable zabbix-agent.service


CentOS

Zabbixエージェントの設定 (CentOS編) - Qiita


Windows

注意点として、ファイヤーウォールの設定等でZabbix AgentがServerに接続する際に使用するポート10050(デフォルト値)を遮断しないようにする必要があります。ファイヤーウォールの受信の規則で10050を許可して下さい。


パッケージ

Zabbixダウンロード


設定手順(公式)

2 Zabbix agent on Microsoft Windows [Zabbix Documentation 3.2]


参考

Zabbixエージェントの設定 (Windows Server編) - Qiita


参考

統合監視ツール「Zabbix」によるサーバー監視 - さくらのナレッジ - Part 2

Ubuntu 16.04にZabbix 3.2(PostgreSQL)をインストールする。 - truffe093のブログ

Zabbix 3.0をCentOS 7にインストール(PostgreSQL編) - Qiita

【連載Zabbix】Zabbix 3.0/3.2 基礎構築手順【Zabbix Advent Calendar 2016】 – サーバーワークスエンジニアブログ

Zabbix3.2サーバのインストール - JunkBoxWiki