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でみて値が返ってくれば成功です。