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」を適用すれば完了です。