Akira's Tech Notes

Java/JVM | GNU/Linux | Emacs/Lisp | 知的好奇心駆動

header-icon
ネイティブでない日本語で思い付くことや気になることをダラダラ書く、体裁とかは気にしない。読みづらいと感じた時に随時更新する。

[メモ]Zabbix導入記録

Zabbix2.4、CentOS7用のrpmが見つからなかったので手動ビルドすることにした。

1 構成

                            +---------------+
                            | Apache 2.4    +---+
                            +---------------+   |         +---------------+
                                                +---------+   Zabbix DB   |
                                                |         +---------------+
              10050       10051                 |         |   PostgreSQL  |
+--------------+            +---------------+   |         +---------------+
| Zabbix Agent +------------+ Zabbix Server +---+
+--------------+            +---------------+

2 インストール

必要なパッケージのインストール。

$ sudo yum install postgresql-devel
$ sudo yum install libxml2 libxml2-devel
$ sudo yum install net-snmp net-snmp-agent  net-snmp-libs net-snmp-devel
$ sudo yum install libcurl libcurl-devel
$ sudo yum install php-bcmath

ソースコードをダウンロードし、ビルドする。

$ wget http://downloads.sourceforge.net/sourceforge/zabbix/zabbix-2.4.1.tar.gz
$ tar xzvf zabbix-2.4.1.tar.gz
$ cd zabbix-2.4.1/
$ ./configure --enable-server --enable-agent  --with-postgresql --with-net-snmp --with-libcurl --with-libxml2 --enable-java --sysconfdir=/etc/zabbix
$ sudo make install

Zabbix設定ファイル、DB初期化用SQLを格納用のディレクトリの作成とファイルのコピー。

$ sudo mkdir -p /etc/zabbix/database/postgresql
$ sudo mkdir -p /etc/zabbix/database/postgresql/upgrade/2.0

$ sudo cp -v ./database/postgresql/*.sql /etc/zabbix/database/postgresql
$ sudo cp -v ./upgrades/dbpatches/2.0/postgresql/patch.sql /etc/zabbix/database/postgresql/upgrade/2.0

$ sudo chmod 0444 /etc/zabbix/database/postgresql/*.sql
$ sudo chmod 0444 /etc/zabbix/database/postgresql/upgrade/2.0/*.sql

Zabbixログ格納用ディレクトリの作成。

$ sudo mkdir -m 0750 /var/log/zabbix

Zabbixプロセス実行ユーザの登録、ディレクトリ権限の付与。

$ sudo groupadd -r zabbix
$ sudo useradd -r -g zabbix -d /dev/null zabbix -s /sbin/nologin
$ sudo chown -R zabbix:zabbix /var/log/zabbix
$ sudo chown -R zabbix:zabbix /etc/zabbix
$ sudo chown -R zabbix:zabbix /usr/local/share/zabbix

Zabbixサーバ設定ファイルにPIDの格納場所を指定する。

$ sudo chmod 0640 /etc/zabbix/zabbix_server.conf
$ sudo sed -i 's:# PidFile=.*:PidFile=/run/zabbix/zabbix_server.pid:' /etc/zabbix/zabbix_server.conf

Zabbixサーバ設定ファイルにログの格納場所を指定する

$ sudo sed -i 's:^LogFile=.*:LogFile=/var/log/zabbix/zabbix_server.log:' /etc/zabbix/zabbix_server.conf

監視結果データ及び監視項目設定データを格納するためのDBを作成する。

# su - postgresql
-bash-4.2$ createuser --pwprompt zabbix      ★接続ユーザの作成
-bash-4.2$ createdb --owner=zabbix zabbix    ★データベース作成

作成したデータベースにスキーマを初期化する。

$ cd /etc/zabbix/database/postgresql
$ psql -U zabbix zabbix < schema.sql
$ psql -U zabbix zabbix < images.sql
$ psql -U zabbix zabbix < data.sql

Zabbixサーバ設定ファイルにDB接続情報を変更する。

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=******
DBPort=5432

PIDファイルの親ディレクトリをtmp領域に作成するため、 systemd-tmpfiles 機能でOS起 動時に予め作成するようにする。

/usr/lib/tmpfiles.d/zabbix-server.conf

d /run/zabbix 0755 zabbix zabbix -

systemd-tmpfiles 手動実行で、ディレクトリを作成する。OS再起動する場合、この手順は不 要です。

$ sudo systemd-tmpfiles --create /usr/lib/tmpfiles.d/zabbix-server.conf

systemd から起動停止できるように zabbix-server.service を作成する。

/usr/lib/systemd/system/zabbix-server.service

[Unit]
Description=Zabbix server
After=syslog.target network.target postgresql.service

[Service]
Type=forking
User=root
ExecStart=/usr/local/sbin/zabbix_server
PIDFile=/run/zabbix/zabbix_server.pid

[Install]
WantedBy=multi-user.target

3 zabbixの起動

systemctl コマンドで起動する。

$ sudo systemctl enable zabbix-server.service
$ sudo systemctl start zabbix-server.service

ポート確認

$ sudo netstat -nutpl | grep zabbix
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      23765/zabbix_server

ログ確認

# cat zabbix_server.log
 23765:20141016:231838.117 Starting Zabbix Server. Zabbix 2.4.1 (revision 49643).
 23765:20141016:231838.118 ****** Enabled features ******
 23765:20141016:231838.118 SNMP monitoring:           YES
 23765:20141016:231838.118 IPMI monitoring:            NO
 23765:20141016:231838.118 WEB monitoring:            YES
 23765:20141016:231838.118 VMware monitoring:         YES
 23765:20141016:231838.118 Jabber notifications:       NO
 23765:20141016:231838.118 Ez Texting notifications:  YES
 23765:20141016:231838.118 ODBC:                       NO
 23765:20141016:231838.118 SSH2 support:               NO
 23765:20141016:231838.118 IPv6 support:               NO
 23765:20141016:231838.118 ******************************
 23765:20141016:231838.118 using configuration file: /etc/zabbix/zabbix_server.conf
 23765:20141016:231838.157 current database version (mandatory/optional): 02040000/02040000
 23765:20141016:231838.157 required mandatory version: 02040000
 23765:20141016:231838.190 server #0 started [main process]
 23775:20141016:231838.191 server #1 started [configuration syncer #1]
 23776:20141016:231838.191 server #2 started [db watchdog #1]
 23777:20141016:231838.191 server #3 started [poller #1]
 23781:20141016:231838.193 server #5 started [poller #3]
 23783:20141016:231838.195 server #7 started [poller #5]
 23782:20141016:231838.201 server #6 started [poller #4]
 23789:20141016:231838.201 server #12 started [trapper #4]
 23786:20141016:231838.202 server #9 started [trapper #1]
 23788:20141016:231838.203 server #11 started [trapper #3]
 23790:20141016:231838.203 server #13 started [trapper #5]
 23794:20141016:231838.204 server #17 started [timer #1]
 23791:20141016:231838.204 server #14 started [icmp pinger #1]
 23787:20141016:231838.204 server #10 started [trapper #2]
 23792:20141016:231838.204 server #15 started [alerter #1]
 23784:20141016:231838.207 server #8 started [unreachable poller #1]
 23795:20141016:231838.208 server #18 started [http poller #1]
 23799:20141016:231838.208 server #21 started [history syncer #2]
 23806:20141016:231838.209 server #23 started [history syncer #4]
 23809:20141016:231838.209 server #26 started [self-monitoring #1]
 23780:20141016:231838.210 server #4 started [poller #2]
 23801:20141016:231838.211 server #22 started [history syncer #3]
 23793:20141016:231838.211 server #16 started [housekeeper #1]
 23797:20141016:231838.211 server #20 started [history syncer #1]
 23807:20141016:231838.214 server #24 started [escalator #1]
 23808:20141016:231838.215 server #25 started [proxy poller #1]
 23796:20141016:231838.309 server #19 started [discoverer #1]

4 Zabbix フロントエンドのインストール

phpコンテンツ格納するディレクトリの作成とコンテンツ実体の格納。

$ sudo mkdir -p /var/www/zabbix
$ sudo cp -r frontends/php/* /var/www/zabbix
$ sudo chown -R apache:apache /var/www/zabbix
$ sudo chmod -R u=rwX,g=rX,o= /var/www/zabbix

/etc/php.ini にてphp実行時パラメータを変更する。

max_execution_time = 300     ★変更
max_input_time = 300         ★変更
post_max_size = 16M          ★変更
memory_limit = 128M
upload_max_filesize = 2M
session.auto_start = 0
date.timezone = "Asia/Tokyo" ★変更

フラフの日本語表示対応

$ sudo yum install ipa-gothic-fonts ipa-pgothic-fonts vlgothic-fonts vlgothic-p-fonts
$ sudo -u apache cp /usr/share/fonts/ipa-gothic/ipag.ttf /var/www/zabbix/fonts/

/var/www/zabbix/include/defines.inc.php

変更前
define('ZBX_GRAPH_FONT_NAME',           'DejaVuSans'); // font file name

変更後
define('ZBX_GRAPH_FONT_NAME',           'ipag'); // font file name

Apache設定内容 /etc/httpd/conf.d/httpd-zabbix.conf

Alias /zabbix /var/www/zabbix
<Location /zabbix>
    # Apache 2.4
    Require local
    #Require host example.com
</Location>

/etc/httpd/conf/httpd.conf

IncludeOptional conf.d/httpd-zabbix.conf

画面を起動する。

ウィザードで生成しれたファイルの内容 /var/www/zabbix/conf/zabbix.conf.php

<?php
// Zabbix GUI configuration file
global $DB;

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

// SCHEMA is relevant only for IBM_DB2 database
$DB['SCHEMA'] = '';

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

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
?>

5 Zabbix エージェントのインストール

Zabbix AgentプロセスのPID格納用ディレクトリの初期化。 /usr/lib/tmpfiles.d/zabbix-agentd.conf

$ sudo touch /usr/lib/tmpfiles.d/zabbix-agentd.conf
$ sudo nano /usr/lib/tmpfiles.d/zabbix-agentd.conf
d /run/zabbix 0755 zabbix zabbix -
$ sudo systemd-tmpfiles --create /usr/lib/tmpfiles.d/zabbix-agentd.conf

Zabbix Agentサービス起動・停止用のファイル /usr/lib/systemd/system/zabbix-agentd.service

[Unit]
Description=Zabbix agent daemon
After=network.target

[Service]
Type=forking
User=root
ExecStart=/usr/local/sbin/zabbix_agentd
PIDFile=/run/zabbix/zabbix_agentd.pid

[Install]
WantedBy=multi-user.target

Zabbix Agent設定ファイルに、PID及びログ出力先を変更する。

$ sudo -u zabbix sed -i 's:# PidFile=.*:PidFile=/run/zabbix/zabbix_agentd.pid:' /etc/zabbix/zabbix_agentd.conf
$ sudo -u zabbix sed -i 's:^LogFile=.*:LogFile=/var/log/zabbix/zabbix_agentd.log:' /etc/zabbix/zabbix_agentd.conf

Zabbix Agent設定ファイルに、Zabbix Serverの情報と監視ホスト名を指定する。

Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=testhost

ポートの確認

$ sudo netstat -nutpl | grep zabbix
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      17764/zabbix_agentd

6 Zabbixのアンインストール

$ sudo userdel zabbix

※未完成

Comments