zabbix4系Zabbix 4.0.0alpha6をインストールしてみた。

最新のzabbix 4.0.0alpha6を試してみました。
zabbixを入れるサーバーのPHPのバージョンは以下

# php -v
PHP 7.2.5 (cli) (built: Apr 24 2018 19:12:06) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

zabbixの公式サイトからリポジトリをインストールしておきます。

# rpm -i https://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm

zabbix4をインストールします。

# yum install zabbix-server-mysql zabbix-proxy-mysql zabbix-web-mysql
読み込んだプラグイン:fastestmirror
略・・・・
--> 依存性解決を終了しました。
エラー: パッケージ: zabbix-web-mysql-4.0.0-1.1alpha5.el7.noarch (zabbix)
要求: php-mysql
利用可能: php-mysql-5.4.16-42.el7.x86_64 (base)
php-mysql = 5.4.16-42.el7
利用可能: php-mysql-5.4.16-43.el7_4.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4
利用可能: php-mysql-5.4.16-43.el7_4.1.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4.1
利用可能: php-mysqlnd-5.4.16-42.el7.x86_64 (base)
php-mysql = 5.4.16-42.el7
利用可能: php-mysqlnd-5.4.16-43.el7_4.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4
利用可能: php-mysqlnd-5.4.16-43.el7_4.1.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4.1
利用可能: php-pecl-mysql-1.0.0-0.17.20160812git230a828.el7.remi.7.2.x86_64 (remi-php72)
php-mysql = 1:1.0.0
利用可能: php-mysqlnd-7.2.4-1.el7.remi.x86_64 (remi-php72)
見つかりません
利用可能: php-mysqlnd-7.2.5-1.el7.remi.x86_64 (remi-php72)
見つかりません
問題を回避するために --skip-broken を用いることができます。
これらを試行できます: rpm -Va --nofiles --nodigest

こけました。。。
php-mysqlndでコケたので個別で入れてみます。

# yum install php-mysqlnd
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* elrepo: ftp.yz.yamagata-u.ac.jp
* epel: mirror.dmmlabs.jp
* extras: ftp.tsukuba.wide.ad.jp
* remi-php72: mirrors.thzhost.com

略・・・

インストール:
php-mysqlnd.x86_64 0:7.2.5-1.el7.remi

依存性関連をインストールしました:
php-pdo.x86_64 0:7.2.5-1.el7.remi

完了しました!

無事にインストールできたので再度zabbix4をインストールします。

# yum install zabbix-server-mysql zabbix-proxy-mysql zabbix-web-mysql
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* elrepo: ftp.yz.yamagata-u.ac.jp
* epel: ftp.tsukuba.wide.ad.jp

略・・・

エラー: パッケージ: zabbix-web-mysql-4.0.0-1.1alpha5.el7.noarch (zabbix)
要求: php-mysql
利用可能: php-mysql-5.4.16-42.el7.x86_64 (base)
php-mysql = 5.4.16-42.el7
利用可能: php-mysql-5.4.16-43.el7_4.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4
利用可能: php-mysql-5.4.16-43.el7_4.1.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4.1
利用可能: php-mysqlnd-5.4.16-42.el7.x86_64 (base)
php-mysql = 5.4.16-42.el7
利用可能: php-mysqlnd-5.4.16-43.el7_4.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4
利用可能: php-mysqlnd-5.4.16-43.el7_4.1.x86_64 (updates)
php-mysql = 5.4.16-43.el7_4.1
利用可能: php-pecl-mysql-1.0.0-0.17.20160812git230a828.el7.remi.7.2.x86_64 (remi-php72)
php-mysql = 1:1.0.0
インストール: php-mysqlnd-7.2.5-1.el7.remi.x86_64 (@remi-php72)
見つかりません
利用可能: php-mysqlnd-7.2.4-1.el7.remi.x86_64 (remi-php72)
見つかりません
問題を回避するために --skip-broken を用いることができます。
これらを試行できます: rpm -Va --nofiles --nodigest

またコケました今度はphp-mysqlの依存関係のようです。
php-mysqlを依存関係でインストールされないようexcludeにします。

# yum install zabbix-server-mysql zabbix-proxy-mysql zabbix-web-mysql --exclude=php-mysql*
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* elrepo: ftp.yz.yamagata-u.ac.jp
* epel: mirror.dmmlabs.jp

略・・・

インストール:
zabbix-proxy-mysql.x86_64 0:4.0.0-1.1alpha5.el7 zabbix-server-mysql.x86_64 0:4.0.0-1.1alpha5.el7 zabbix-web-mysql.noarch 0:4.0.0-1.1alpha5.el7

依存性関連をインストールしました:
OpenIPMI-libs.x86_64 0:2.0.19-15.el7 OpenIPMI-modalias.x86_64 0:2.0.19-15.el7
dejavu-fonts-common.noarch 0:2.33-6.el7 dejavu-sans-fonts.noarch 0:2.33-6.el7
fontconfig.x86_64 0:2.10.95-11.el7 fontpackages-filesystem.noarch 0:1.44-8.el7
fping.x86_64 0:3.10-4.el7 gd-last.x86_64 0:2.2.5-2.el7.remi
iksemel.x86_64 0:1.4-6.el7 jbigkit-libs.x86_64 0:2.0-11.el7
libX11.x86_64 0:1.6.5-1.el7 libX11-common.noarch 0:1.6.5-1.el7
libXau.x86_64 0:1.0.8-2.1.el7 libXpm.x86_64 0:3.5.12-1.el7
libevent.x86_64 0:2.0.21-4.el7 libjpeg-turbo.x86_64 0:1.2.90-5.el7
libpng.x86_64 2:1.5.13-7.el7_2 libtiff.x86_64 0:4.0.3-27.el7_3
libtool-ltdl.x86_64 0:2.4.2-22.el7_3 libwebp.x86_64 0:0.3.0-7.el7
libxcb.x86_64 0:1.12-1.el7 libxslt.x86_64 0:1.1.28-5.el7
net-snmp-libs.x86_64 1:5.7.2-28.el7_4.1 php-bcmath.x86_64 0:7.2.5-1.el7.remi
php-gd.x86_64 0:7.2.5-1.el7.remi php-ldap.x86_64 0:7.2.5-1.el7.remi
php-mbstring.x86_64 0:7.2.5-1.el7.remi php-pecl-mysql.x86_64 0:1.0.0-0.17.20160812git230a828.el7.remi.7.2
php-xml.x86_64 0:7.2.5-1.el7.remi unixODBC.x86_64 0:2.3.1-11.el7
zabbix-web.noarch 0:4.0.0-1.1alpha5.el7

完了しました!

今度は無事に無事にインストールが完了しました。
zabbix4の機能を試すのがたのしみです。

phpのupdateをしたらzabbixが見れなくなったので対処

PHPのupdateを行った際、以下のエラーがログに出てzabbixのguiが見れなくなったので対処

2018/04/24 16:12:45 [error] 19731#19731: *1 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Exception: Cannot start session. in /usr/share/zabbix/include/classes/core/CSession.php:50
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 50" while reading response header from upstream, client: 192.168.0.2, server: tokyo-monitor_2, request: "GET /zabbix/setup.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm.sock:", host: "192.168.0.10"

PHPのupdateの際にphp-fpm関連の権限が変わったぽい

色々しらえると以下のパーミッションが怪しい

# ls -al /var/lib/php/
合計 4
drwxr-xr-x 5 root root 53 3月 25 02:21 .
drwxr-xr-x. 32 root root 4096 3月 25 11:12 ..
drwxrwx--- 2 root apache 6 3月 25 02:21 opcache
drwxrwx--- 2 root apache 6 3月 25 02:21 session
drwxrwx--- 2 root apache 6 3月 22 0:21 wsdlcache

このサーバーはngninxで動いているのでapache権限ではないので修正する。

# cd /var/lib/php/
# chown -R root:nginx ./*
# ls -al
合計 4
drwxr-xr-x 5 root root 53 3月 25 02:21 .
drwxr-xr-x. 32 root root 4096 3月 25 11:12 ..
drwxrwx--- 2 root nginx 6 3月 25 02:21 opcache
drwxrwx--- 2 root nginx 6 3月 25 02:21 session
drwxrwx--- 2 root nginx 6 3月 22 0:21 wsdlcache

nginxとphp-fpmを再起動して

#systemctl restart nginx ; systemctl restart php-fpm

見れるようになりました。

PHPをupdateするたびにやらなきゃいけません・・・

openmanageでセマフォの上限値に達して値が取れない対処

dellサーバーのopenmanageの値をzabbixで取得して物理機器の監視をしているのですが
セマフォの枯渇によって取得出来ない状況が度々でます。
zabbixで値が取得出来ない為、警告が出ているのでmessegesを見てみるとこんな感じ

Aug 4 13:26:52 hogege Server Administrator (Shared Library): 1235448 0 - Data Engine A semaphore set has to be created but the system limit for the maximum number of semaphore sets has been exceeded
Aug 4 13:26:53 hogege Server Administrator (Shared Library): 1566660 - Data Engine A semaphore set has to be created but the system limit for the maximum number of semaphore sets has been exceeded
Aug 4 13:26:53 hogege Server Administrator (Shared Library): 135430 - Data Engine A semaphore set has to be created but the system limit for the maximum number of semaphore sets has been exceeded

このままではいかんので対処しました。

セマフォを使ってるのはzabbixでした。

# ipcs -s | grep zabbix | wc -l
93

ipcs -sの値はログを取り忘れました・・。

サーバーの設定を確認した所このような感じ

# ipcs -ls
------ セマフォの制限 --------
最大配列数 = 128
配列毎の最大セマフォ数 = 250
システム全体の最大セマフォ数 = 32000
semop 呼び出し毎の最大命令数 = 32
セマフォ最大値 = 32767

なのでzabbixの使用してるセマフォを解放します。
まずは、サービス停止

# systemctl stop zabbix-sever

次にzabbixのセマフォを解放

for i in `ipcs -s |grep zabbix | awk '{print $2}'`; do ipcrm -s $i; done

確認

# ipcs -s
------ セマフォ配列 --------
キー semid 所有者 権限 nsems
0x00000000 0 root 600 1
0x00000000 65537 root 600 1
0x00000000 1384480771 root 600 1
0x00000000 1384644612 root 600 1
0x00000000 1384906757 root 600 1
0x00000000 1384873990 root 600 1
0x00000000 1384742919 root 600 1
0x00000000 1384775688 root 600 1
0x00000000 1384808457 root 600 1
0x00000000 1384841226 root 600 1
0x00000000 1384939531 root 600 1
0x00000000 1384972300 root 600 1
0x00000000 1385005069 root 600 1
0x00000000 1385037838 root 600 1
0x00000000 1385070607 root 600 1
0x00000000 1385168912 root 600 1
0x00000000 1385201681 root 600 1
0x00000000 1385234450 root 600 1
0x00000000 1385299987 root 600 1
0x00000000 1385332756 root 600 1
0x00000000 1385365525 root 600 1
0x00000000 1385398294 root 600 1
0x00000000 1385431063 root 600 1
0x00000000 1385463832 root 600 1
0x00000000 1385496601 root 600 1
0x00000000 1385529370 root 600 1
0x00000000 1385562139 root 600 1
0x00000000 1385594908 root 600 1
0x00000000 1385627677 root 666 1
0x00000000 1385660446 root 600 1
0x00000000 1385693215 root 600 1
0xd95b59b9 14254112 root 666 2
0x11016565 17465377 root 644 2
0x000003d4 14319650 root 644 1

zabbixのセマフォ使用が消えました。

zabbix再起動

# systemctl start zabbix-sever

openmanageのGUIやzabbix_getでみて値が返ってくれば成功です。

zabbix 3.0.10から3.4.1へupgradeした。

久々にまじめな調べ物をしていたらzabbixのバージョンが上がっていたのでupgradeしてみた。

環境はcent7 nginx php7です。

現在のバージョン

# zabbix_server -V
zabbix_server (Zabbix) 3.0.10

現在はzabbix 3.0.10を使用中
こちらのサイトに上がっているrpmを使用して上げます。
サイトには↓の二つのrpmが上がっています。
zabbix-release-3.4-1.el7.centos.noarch.rpm
zabbix-release-3.4-2.el7.noarch.rpm
今回は珍しくzabbix公式サイトの手順に沿ってやりました。

まずはzabbix関連のファイルと念のためnginxのconfをバックアップ

# cp /etc/zabbix/zabbix_server.conf /root/work/zabbix-backup/
# cp /etc/nginx/conf.d/default.conf /root/work/zabbix-backup/
# cp -R /usr/share/zabbix/ /root/back/zabbix-backup/
# cp -R /usr/share/doc/zabbix-* /root/back/zabbix-backup/

作業開始です。
zabbix関連のサービスを止めます。

# systemctl stop zabbix-server
# systemctl stop zabbix-agent

まずはzabbix 3.4.1のrepoにupdateします。

# rpm -Uvh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm を取得中
準備しています... ################################# [100%]
更新中 / インストール中...
1:zabbix-release-3.4-1.el7.centos ################################# [ 50%]
整理中 / 削除中...
2:zabbix-release-3.0-1.el7 ################################# [100%]

手順書によるとyum updateではなくupgradeを使えとなっているのでその通りに

# yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* extras: www.ftp.ne.jp
* remi-php71: mirrors.tuna.tsinghua.edu.cn
No packages marked for update

コケました。

ならばいつも通りのupdateで
まずは読み込んでいるrepoを綺麗にお掃除

# yum clean all

updateされるパッケージ確認

# yum check-update

zabbix-agent.x86_64 3.4.1-1.el7 zabbix
zabbix-get.x86_64 3.4.1-1.el7 zabbix
zabbix-release.noarch 3.4-2.el7 zabbix
zabbix-server-mysql.x86_64 3.4.1-1.el7 zabbix
zabbix-web.noarch 3.4.1-1.el7 zabbix
zabbix-web-japanese.noarch 3.4.1-1.el7 zabbix
zabbix-web-mysql.noarch 3.4.1-1.el7 zabbix

出てきました。
update対象がzabbix関連のみなのでそのままupdateかけます。

# yum -y update
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* extras: ftp.yz.yamagata-u.ac.jp
* remi-php71: mirrors.tuna.tsinghua.edu.cn
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ zabbix-agent.x86_64 0:3.0.10-1.el7 を 更新
---> パッケージ zabbix-agent.x86_64 0:3.4.1-1.el7 を アップデート
---> パッケージ zabbix-get.x86_64 0:3.0.10-1.el7 を 更新
---> パッケージ zabbix-get.x86_64 0:3.4.1-1.el7 を アップデート
---> パッケージ zabbix-release.noarch 0:3.4-1.el7.centos を 更新
---> パッケージ zabbix-release.noarch 0:3.4-2.el7 を アップデート
---> パッケージ zabbix-server-mysql.x86_64 0:3.0.10-1.el7 を 更新
---> パッケージ zabbix-server-mysql.x86_64 0:3.4.1-1.el7 を アップデート
---> パッケージ zabbix-web.noarch 0:3.0.10-1.el7 を 更新
---> パッケージ zabbix-web.noarch 0:3.4.1-1.el7 を アップデート
---> パッケージ zabbix-web-japanese.noarch 0:3.0.10-1.el7 を 更新
---> パッケージ zabbix-web-japanese.noarch 0:3.4.1-1.el7 を アップデート
---> パッケージ zabbix-web-mysql.noarch 0:3.0.10-1.el7 を 更新
---> パッケージ zabbix-web-mysql.noarch 0:3.4.1-1.el7 を アップデート
--> 依存性解決を終了しました。
以下略・・・・
完了しました!

成功したようですのでサービスを起動します。

# systemctl start zabbix-serve
# systemctl start zabbix-agent

updateが成功したのかヴァージョンを確認します。

# zabbix_server -V
zabbix_server (Zabbix) 3.4.1

どうやら無事成功のようです。

お次にブラウザで表示確認です。

zabbix 3.4.1にupgradeした
zabbix 3.4.1 upgrade

無事にupgrade出来たようです。
インターフェースも変わってかっこよくなりましたね。

zabbixでmysql(MariaDB)のステータスを取得する。

zabbixでmysql(MariaDB)のステータス取得をやったのでメモ
別にmysqlとMariaDBでのエージェント側での設定の違いはありませんです。

まずはエージェント側にconfを作ります。

# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

↓コメント解除
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | awk '{print $$2}'
#追記
UserParameter=mysql.size[*],echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema='$1'")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name='$2'");" | HOME=/var/lib/zabbix mysql -N
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V

次にzabbix agent がmysqlコマンドを使えるようにします。

# vim /var/lib/zabbix/.my.cnf
[client]
user = zabbixagent
password = password

次にmysql(MariaDB)にzabbixagentユーザーを追加します。

# mysql -u root -p
use mysql
grant process on *.* to zabbixagent@localhost identified by 'password';
grant REPLICATION CLIENT on *.* to zabbixagent@localhost;
show grants for 'zabbixagent'@'localhost';

権限を確認します。

MariaDB [(none)]> show grants for 'zabbixagent'@'localhost';
+----------------------------------------------------------------------------------------------------------------------+
| Grants for zabbixagent@localhost |
+----------------------------------------------------------------------------------------------------------------------+
| GRANT PROCESS ON *.* TO 'zabbixagent'@'localhost' IDENTIFIED BY PASSWORD '*hogehogehogehogehogehoge' |
+----------------------------------------------------------------------------------------------------------------------+

設定が正しいかエージェントサーバーで確認

# mysqladmin --defaults-extra-file=/var/lib/zabbix/.my.cnf ping
mysqld is alive

次に正しくzabbixサーバー側で値が取れるか確認

# zabbix_get -s エージェントのIP -k mysql.version
mysql Ver 15.1 Distrib 10.0.11-MariaDB, for Linux (x86_64) using readline 5.1

ここまで確認出来たら次はzabbixサーバー側でのguiの設定を行います。
zabbixの管理画面で対象のサーバーに「Template App MySQL」を適用すれば完了です。