Новый Zabbix, семафоры и скрипт для спокойного сна

новый zabbix

новый

Сегодня вышел Zabbix-1.6.5. Новую версию ждали долго и с нетерпением, и в ней очень много багфиксов. Одним из неприятных багов, починка которого должна произойти, является “семафорный глюк”. Проявлялся он в версии zabbix-1.6.4, работавшей с postgres. В случае если zabbix сервер умер, остаётся неприбранным семафор и при попытке запустить новый процесс выдаётся сообщение наподобии такого:

/opt/zabbix/sbin/zabbix_server [2589]: Semaphore [0] error in semctl(SETVAL)
/opt/zabbix/sbin/zabbix_server [2589]: Unable to create mutex for log file

Вывод команды ipcs выглядит при этом так:

------ Semaphore Arrays --------
key semid owner perms nsems
0x00000000 0 wwwrun 600 1
0x00000000 5767169 wwwrun 600 1
0x0052e2c1 5275650 postgres 600 17
0x0052e2c2 5308419 postgres 600 17
0x0052e2c3 5341188 postgres 600 17
0x0052e2c4 5373957 postgres 600 17
0x0052e2c5 5406726 postgres 600 17
0x0052e2c6 5439495 postgres 600 17
0x0052e2c7 5472264 postgres 600 17
0x0052e2c8 5505033 postgres 600 17
0x0052e2c9 5537802 postgres 600 17
0x0052e2ca 5570571 postgres 600 17
0x0052e2cb 5603340 postgres 600 17
0x0052e2cc 5636109 postgres 600 17
0x0052e2cd 5668878 postgres 600 17
0x7a012475 1966095 zabbix 666 4
0x7a01b530 1605648 zabbix 666 3
0x7a016098 5701649 zabbix 666 4

В общем, мы приспособились, дописав в скрипт, который проверяет наличие процесса zabbix_server (скрипт мониторинга, так сказать, мониторинга) и запускает его в случае отсутствия, такие строки:

semo_key=`ipcs | '{if(n==1 && $3~/zabbix/)print $1;if(/Semaphore Arrays/)n=1}'`
semo_id=`ipcs |awk '{if(n==1 && $3~/zabbix/)print $2;if(/Semaphore Arrays/)n=1}'`
echo "semo_key=$semo_key id=$semo_id"
ipcrm -s $semo_id

Решение хотя и “наколенное”, но позволило матически поднимать сервер. Однако, теперь посмотрим, исправилась ли эта проблема в новой версии. Если не исправится — в общем, вы знаете, что делать! 😉

Новый Zabbix, семафоры и скрипт для спокойного сна: 3 комментария

  1. Как один из смотрителей планеты RuNIX, я не доволен объявлением в ней всех малых релизов заббикса. Планета — не список рассылки его пользователей.

    Поскольку способа взять ваш фид без заббикса я не вижу, то ваш фид из планеты временно убран.

    Когда создадите фид без заббикса — обращайтесь root@runix.org

  2. >Однако, теперь посмотрим, исправилась ли эта проблема в новой версии.

    Исправилась! Впрочем, Zabbix 1.6.5 с PostgreSQL не должен больше умирать.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *