Zabbix インストール CentOS7 ソースインストール編

Zabbixのインストール履歴です。CentOS7に最新版を、ソースでインストールします。

Zabbixとは

ZabbixはITインフラストラクチャ・コンポーネントの可用性やパフォーマンスを監視するためのエンタープライス向けソフトウェアです。
Zabbixはオープンソース・ソフトウェアとして開発されており、無料でダウンロードいただくことが可能です。
Zabbixとは

より

Zabbixでは、サーバーの状態監視と、異常検出を行います。

サーバーの状態監視は、
・MRTG
・Cacti
・Munin
などの無料ツールがあります。
流石に、MRTGは、過去の産物でしょう・・・

いずれも、Zabbixと同様に、SNMPの情報をサーバーから取得して、見やすいようにグラフ化をします。

Zabbixサーバーとして1台のサーバーが必要です。
その他監視したいサーバーに「Zabbix Agent」をインストールします。

Zabbixサーバーでは、MySQL(もしくは、PostgreSQL)、Web(Apapche、もしくはNginx)が必要です。

Zabbix CentOS版

この原稿作成時点で、Zabbix 5.2 が最新版(安定版)です。

CentOS7にyum でインストールできる最新版は、Zabbix 5.0です。
最新版の、Zabbix 5.2 を、yumでインストールできるのは、CentOS8になります。
つまり、CentOS7では、前のバージョンの、Zabbix 5.0しかありません。
Zabbix 5.2の最新版を、CentOS7に入れるには、ソースからインストールするしかありません。

Zabbix インストール CentOS7 yum編
Zabbixのインストール履歴です。CentOS7のyum版です。 Zabbixとは ZabbixはITインフラストラクチャ・コンポーネントの可用性やパフォーマンスを監視するためのエンタープライス向けソフトウェアです。 Zabbixは...

CentOS7に、yumで入れるバージョンの記録は、↑になります。

今回、ソースで、最新版を入れてみます。

zabbix agenet(エージェント)の設定
zabbixのagent設定の覚え書きです。 ソースインストールをします。 ↑ 最新版「Zabbix Agent2」は、上記へ zabbix agent(エージェント)基本インストール # groupadd --syst...

↑ 「Zabbix Agent」の設定

Zabbix 環境設定 / インストール

ここでは、
・対象は、CentOS7、MySQLバージョン(PostgreSQLバージョンもあります)
・MySQL 5.7 では、既に稼働中
・WEBシステムは、既に稼働中
という前提です。

# groupadd --system zabbix
# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
# mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
# chown zabbix:zabbix /usr/lib/zabbix

↑ ユーザ、グループ、ホームを設定します。

# wget https://cdn.zabbix.com/zabbix/sources/stable/5.2/zabbix-5.2.5.tar.gz
# tar xzvf zabbix-5.2.5.tar.gz 
# cd zabbix-5.2.5

↑ ソースをダウンロードして、解凍をします。

# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

checking for libevent support... no
configure: error: Unable to use libevent (libevent check failed)

↑ エラーとなりました

# yum install libevent libevent-devel

↑ 必要ライブラリを入れます。

# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

Configuration:

  Detected OS:           linux-gnu
  Install path:          /usr/local
  Compilation arch:      linux

  Compiler:              cc
  Compiler flags:         -g -O2  

  Library-specific flags:
    database:              -I/usr/include/mysql -m64    
    libXML2:               -I/usr/include/libxml2  
    Net-SNMP:               -I/usr/local/include -I/usr/lib64/perl5/CORE -I. -I/usr/include

  Enable server:         yes
  Server details:
    With database:         MySQL
    WEB Monitoring:        cURL
      SSL certificates:      /usr/local/share/zabbix/ssl/certs
      SSL keys:              /usr/local/share/zabbix/ssl/keys
    SNMP:                  yes
    IPMI:                  no
    SSH:                   no
    TLS:                   no
    ODBC:                  no
    Linker flags:            -L/usr/lib64/mysql       -L/usr/lib64          -rdynamic    
    Libraries:              -lmysqlclient  -lpthread -lm -lrt -ldl    -lxml2    -lnetsnmp    -lz -lpthread -levent    -lcurl -lm -ldl  -lresolv  -lpcre 
    Configuration file:    /usr/local/etc/zabbix_server.conf
    External scripts:      /usr/local/share/zabbix/externalscripts
    Alert scripts:         /usr/local/share/zabbix/alertscripts
    Modules:               /usr/local/lib/modules

  Enable proxy:          no

  Enable agent:          yes
  Agent details:
    TLS:                   no
    Modbus:                no
    Linker flags:                -rdynamic    
    Libraries:              -lz -lpthread    -lcurl -lm -ldl  -lresolv  -lpcre 
    Configuration file:    /usr/local/etc/zabbix_agentd.conf
    Modules:               /usr/local/lib/modules

  Enable agent 2:        no

  Enable Java gateway:   no

  LDAP support:          no
  IPv6 support:          yes

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************

↑「configure」が通りました。

# make install
Making install in src
make[1]: Entering directory `/home/xxxx/src/zabbix-5.2.5/src'
Making install in libs
make[2]: Entering directory `/home/xxxx/src/zabbix-5.2.5/src/libs'
Making install in zbxcrypto
make[3]: Entering directory `/home/xxxx/src/zabbix-5.2.5/src/libs/zbxcrypto'

(略)

make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/home/xxxx/src/zabbix-5.2.5/misc'
make[1]: Leaving directory `/home/xxxx/src/zabbix-5.2.5/misc'
make[1]: Entering directory `/home/xxxx/src/zabbix-5.2.5'
make[2]: Entering directory `/home/xxxx/src/zabbix-5.2.5'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/home/xxxx/src/zabbix-5.2.5'
make[1]: Leaving directory `/home/xxxx/src/zabbix-5.2.5'

↑ インストール完了しました

Zabbix 用 MySQL設定

CREATE DATABASE zabbix_db character set utf8 collate utf8_bin;

↑ DBを作成します。「character set utf8 collate utf8_bin」は重要です。
違う文字コードを指定した場合、

Zabbix supports only "utf8_bin" collation. Database "zabbix_db" has default collation "utf8_general_ci"
character set name or collation name that is not supported by Zabbix found in 442 column(s) of database "zabbix_db"
only character set "utf8" and collation "utf8_bin" should be used in database

↑ というエラーが出てきます。

insert into db (host,db,user) values ('localhost','zabbix_db','zabbix_user');

update db set Select_priv='Y',Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_priv='Y',Drop_priv='Y',Grant_priv='Y',References_priv='Y',Index_priv='Y',Alter_priv='Y',Create_tmp_table_priv='Y',Lock_tables_priv='Y',Create_view_priv='Y',Show_view_priv='Y',Create_routine_priv='Y',Alter_routine_priv='Y',Execute_priv='Y',Event_priv='Y',Trigger_priv='Y' where db='zabbix_db';

insert into user (host,User,authentication_string,ssl_cipher,x509_issuer,x509_subject) values ('localhost','zabbix_user',password('(パスワード)'),'','','');

↑ DBの設定を行います。

# mysql -u zabbix_user -p zabbix_db < database/mysql/schema.sql
Enter password: 
# mysql -u zabbix_user -p zabbix_db < database/mysql/images.sql
Enter password: 
# mysql -u zabbix_user -p zabbix_db < database/mysql/data.sql
Enter password: 
#

↑ zabbix用のDBをインストールします。

# vi /usr/local/etc/zabbix_server.conf

#DBName=zabbix
DBName=zabbix_db

#DBUser=zabbix
DBUser=zabbix_user

# DBPassword=
DBPassword=(パスワード)


# DBSocket=
DBSocket=/var/lib/mysql/mysql.sock

# PidFile=/tmp/zabbix_server.pid
PidFile=/tmp/zabbix_server.pid

↑  Zabbix-server用の設定を書き込みます。

zabbix-Server、起動

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

--------------------------------------------------------------------

[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
After=mysql.service
After=mysqld.service

[Service]
Environment="CONFFILE=/usr/local/etc/zabbix_server.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0

[Install]
WantedBy=multi-user.target

 
--------------------------------------------------------------------

↑ Zabbix-Serverの起動ファイルを作成します。

# systemctl start zabbix-server

# systemctl status zabbix-server
● zabbix-server.service - Zabbix Server
   Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-XX-XX XX:XX:XX JST;
  Process: 28842 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 28845 ExecStart=/usr/local/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
 Main PID: 28847 (zabbix_server)
   CGroup: /system.slice/zabbix-server.service

↑ Zabbix-Serverが起動しました。

systemd: zabbix-server.service holdoff time over, scheduling restart.
systemd: Stopped Zabbix Server.
systemd: Starting Zabbix Server...
systemd: Can't open PID file /run/zabbix/zabbix_server.pid (yet?) after start: No such file or directory
systemd: zabbix-server.service never wrote its PID file. Failing.
systemd: Failed to start Zabbix Server.
systemd: Unit zabbix-server.service entered failed state.
systemd: zabbix-server.service failed.

↑ というよう「Failed to start Zabbix Server」となって、起動しなかった場合、

/usr/lib/systemd/system/zabbix-server.service
で指定している、PIDと、
/usr/local/etc/zabbix_server.conf
で指定している、PIDが食い違っていることがあります。
両者のPIDを一致させましょう。

Zabbix-Agent、起動

# vi /usr/local/etc/zabbix_agentd.conf

Hostname=Zabbix server
↓
Hostname=(ホスト名)

Server=127.0.0.1
↑zabbix_serverが起動しているIPを指定します。
vi /usr/lib/systemd/system/zabbix-agent.service

---------------------------------------------------------------
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/usr/local/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target
---------------------------------------------------------------

↑ Zabbix-agent の起動スクリプトを作成します。

# systemctl start zabbix-agent

# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-XX-XX XX:XX:XX JST;
  Process: 28907 ExecStop=/bin/kill -SIGTERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 28910 ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
 Main PID: 28912 (zabbix_agentd)

↑ Zabbix-Agentが起動しました。

Zabbix用WEBコンテンツと設定

zabbix用コンテンツは、
「zabbix-5.2.5/ui/」
に入っています。

/home/zabbix/web/
など、「docroot」にコピーします。(例)

ブラウザからアクセスをします。

↑ Zabbix 5.2が起動しています。

↑ デフォルトの言語を「日本語」にします。

↑ phpの設定が、Zabbixの要件に合っていないです。

PHPスクリプトの実行時間の最小値は300です ("max_execution_time"設定オプション)。
PHPスクリプトの入力パース時間の最小値は300です("max_input_time"設定オプション)。
PHP bcmathモジュールが存在しません (PHPのconfigure時のパラメータ --enable-bcmath)。

↑ 今回、3つ設定が違っています。

max_execution_time = 30
 ↓
max_execution_time = 300

max_input_time = 60
 ↓
max_input_time = 300

↑「php.ini」の設定を変更します。

./configure (略)--enable-bcmath

↑ 今回の、phpは、ソースインストールをしたので、「configure」で「–enable-bcmatch」を指定して、コンパイルをしなおします。

↑  再読込を行うと、チェックに合格しています。

↑ DB情報を入れます。画面では、「socket」を指定するところがありません。

「php.ini」で、

mysqli.default_socket =
 ↓
mysqli.default_socket =/var/lib/mysql/mysql.sock

↑ と設定をします。

↑ このまま「次のステップ」を押します。

↑ こちらも、このまま「次のステップ」を押します。

↑ 設定内容を確認のうえ、「次のステップ」を押します。

↑ インストールが完了しました。「終了」を押します。

↑ 初期設定のユーザ名/パスワードを入れます。「Admin」と「zabbix」になります。

↑ ダッシュボードの画面です。

↑ 右下、「ステータス」が「有効」となっていれば、インストール成功です。

 

タイトルとURLをコピーしました