Help us understand the problem. What is going on with this article?

[検証] zabbix-server4.0 から zabbix2.2系のzabbix-agentはそのまま使用できるのか?

More than 1 year has passed since last update.

概要

zabbix2系のagentをそのまま使用しzabbix-server4.0で値取得できるかの検証です。
今回はzabbix4.0のデフォルトであるテンプレート「Template OS Linux」を使用してます。

環境

OS: amazonlinux2
ミドルウェア
- nginx 1.16.1
- php 7.3
- mysql 8.0

結論

結論から言うと問題なく値取得できました!
- CPU
- RAM
- DISK(LLD)
- ネットワーク(LLD)
まだ検証途中なので、他検証した際に更新します。

以下環境構築に書いてますが、php7系だと「zabbix-web-mysql」をする際にyumからインストールができないので注意が必要です。

■検証結果

■agentバージョン
# zabbix_agent -V
Zabbix agent v2.2.23 (revision 83227) (30 July 2018)
Compilation time: Jul 30 2018 10:34:32

■zabbix4.0のGUI
image.png

環境構築

あぱーさんいつもお世話になってますmm!
参考: https://blog.apar.jp/zabbix/10640/

■nignx+php-fpm
参考: https://qiita.com/kyo662211/items/0a23f634a26472ad12ab
■nginx インストール[stable最新版]
amazon-linux-extras install nginx1

systemctl start nginx
systemctl enable nginx
■php7.3インストール
amazon-linux-extras install php7.3
----
=====================================================================================================
 Package              Arch            Version                       Repository                  Size
=====================================================================================================
Installing:
 php-cli              x86_64          7.3.11-1.amzn2.0.1            amzn2extra-php7.3          4.8 M
 php-fpm              x86_64          7.3.11-1.amzn2.0.1            amzn2extra-php7.3          1.7 M
 php-json             x86_64          7.3.11-1.amzn2.0.1            amzn2extra-php7.3           70 k
 php-mysqlnd          x86_64          7.3.11-1.amzn2.0.1            amzn2extra-php7.3          236 k
 php-pdo              x86_64          7.3.11-1.amzn2.0.1            amzn2extra-php7.3          130 k
Installing for dependencies:
 php-common           x86_64          7.3.11-1.amzn2.0.1            amzn2extra-php7.3          1.1 M
----
systemctl start php-fpm
systemctl enable php-fpm
yum  install php-opcache
yum  install php-apcu

sed -i "s|;date.timezone =|date.timezone = Asia/Tokyo|" /etc/php.ini
cp -a /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf_org
sed -i "s|user = apache|user = nginx|" /etc/php-fpm.d/www.conf
sed -i "s|group = apache|group = nginx|" /etc/php-fpm.d/www.conf

systemctl restart php-fpm

■mysql 8.0
参考: https://qiita.com/RayDoe/items/fb3e0ef69b9b4132e7f7
yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
yum install --enablerepo=mysql80-community mysql-community-server


vim /etc/my.cnf
----
default-authentication-plugin=mysql_native_password
----
systemctl start mysqld
systemctl enable mysqld

■一時パスワードの確認&初期設定
cat /var/log/mysqld.log | grep "temporary password"

mysql_secure_installation --use-default

■zabbix4.0インストール
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
----
Error: php-mysql conflicts with php-mysqlnd-7.3.11-1.amzn2.0.1.x86_64
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
----
参考: https://qiita.com/longunder/items/26ae871558e78b64c2f0

zabbix-web-mysqlをyumでインストールすると依存関係でphp-mysqlをインストールしようとするがphp7.3系では「php-mysql」は「php-mysqlnd」になったためconflictsしてしまう。
解決策「zabbix-web-mysql」パッケージは別でインストールする。「php-mysqlnd」が入っていれば問題なし。

■zabbix-web-mysqlを別にインストールする。
yum install zabbix-server-mysql zabbix-web-japanese

wget https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-web-mysql-4.0.5-1.el7.noarch.rpm
rpm -ivh --nodeps zabbix-web-mysql-4.0.5-1.el7.noarch.rpm
■phpモジュール確認
rpm -qa | grep php
----
php-gd-7.3.11-1.amzn2.0.1.x86_64
php-mbstring-7.3.11-1.amzn2.0.1.x86_64
php-pecl-apcu-5.1.12-3.amzn2.0.2.x86_64
php-mysqlnd-7.3.11-1.amzn2.0.1.x86_64
php-bcmath-7.3.11-1.amzn2.0.1.x86_64
php-xml-7.3.11-1.amzn2.0.1.x86_64
php-ldap-7.3.11-1.amzn2.0.1.x86_64
php-pgsql-7.3.11-1.amzn2.0.1.x86_64
php-json-7.3.11-1.amzn2.0.1.x86_64
php-pdo-7.3.11-1.amzn2.0.1.x86_64
php-fpm-7.3.11-1.amzn2.0.1.x86_64
php-opcache-7.3.11-1.amzn2.0.1.x86_64
php-7.3.11-1.amzn2.0.1.x86_64
php-common-7.3.11-1.amzn2.0.1.x86_64
php-cli-7.3.11-1.amzn2.0.1.x86_64
----
rpm -qa | grep zabbix
----
zabbix-web-4.0.14-1.el7.noarch
zabbix-web-mysql-4.0.5-1.el7.noarch
zabbix-web-pgsql-4.0.14-1.el7.noarch
zabbix-web-japanese-4.0.14-1.el7.noarch
zabbix-release-4.0-1.el7.noarch
zabbix-server-mysql-4.0.14-1.el7.x86_64
----
yum -y install zabbix-agent
yum -y install zabbix-get

■mysql zabbix user作成
mysql -u root -p

CREATE DATABASE zabbix character set utf8 collate utf8_bin;

CREATE USER zabbix@localhost IDENTIFIED BY '<zabbixpassword>';
GRANT ALL ON zabbix.* TO zabbix@localhost;
quit;

cd /usr/share/doc/zabbix-server-mysql-4.0.14/
zcat create.sql.gz | mysql -u zabbix -p zabbix

vim /etc/zabbix/zabbix_server.conf
----
DBPassword=<zabbixpassword>
----

systemctl start zabbix-server
systemctl enable zabbix-server

systemctl start zabbix-agent
systemctl enable zabbix-agent
■動作確認
zabbix_get -s 127.0.0.1 -k agent.version
----
4.0.14
----
■ドキュメントルート設定
ln -s /usr/share/zabbix /var/www/html/
vim /etc/nginx/conf.d/zabbix.conf
----
server {
        listen 80;
        server_name zbx40-test.com;

        root        /var/www/html;
        index       index.html index.php;
        access_log  /var/log/nginx/access_zabbix.log main;
        error_log   /var/log/nginx/error_zabbix.log error;

        location /zabbix {
        try_files $uri $uri/ /index.html index.php;
        index index.php;
        }
        location ~ \.php {
                fastcgi_pass    unix:/run/php-fpm/www.sock;
                fastcgi_index   index.php;
                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}
-----
chown -R nginx: /etc/zabbix/web/

■表示確認するとエラーが出たので調査
----
==> /var/log/nginx/error_zabbix.log <==
2019/11/15 20:51:54 [error] 10133#0: *6 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Exception: Cannot start session. in /usr/share/zabbix/include/classes/core/CSession.php:46
Stack trace:
#0 /usr/share/zabbix/setup.php(60): CSession::start()
#1 {main}
  thrown in /usr/share/zabbix/include/classes/core/CSession.php on line 46" while reading response header from upstream, client: 111.111.111.111, server: zbx40-test.com, request: "GET /setup.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "zbx40-test.com"

==> /var/log/nginx/access_zabbix.log <==
111.111.111.111 - - [15/Nov/2019:20:51:54 +0900] "GET /setup.php HTTP/1.1" 500 5 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:70.0) Gecko/20100101 Firefox/70.0" "-"
----
■権限の問題
[root@zbx40-test ~]# ll /var/lib/php/
total 0
drwxrwx--- 2 root apache  6 Nov  1 04:34 opcache
drwxr-xr-x 2 root root   31 Nov 14 08:35 peclxml
drwxrwx--- 2 root apache  6 Nov  1 04:34 session
drwxrwx--- 2 root apache  6 Nov  1 04:34 wsdlcache
----
■Apacheユーザーになっているのでnginxへ変更
chown -R root:nginx /var/lib/php/*

■zabbixをインストールする際に以下の編集が必要
vi /etc/php.ini
----
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
----
systemctl restart php-fpm

http://zbx40-test.com
■ログイン後管理ユーザのパスワード変更
Username:Admin
Password:zabbix

あとは、あぱーさんの記事の通りですね!

参考:
https://blog.apar.jp/zabbix/10640/
https://qiita.com/kyo662211/items/0a23f634a26472ad12ab
https://qiita.com/longunder/items/26ae871558e78b64c2f0

kaba-chan
かばちゃんと呼ばれてます。 よろしくお願いします。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away