Ad Widget

Collapse

Странные вещи с портом Zabbix-сервер

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • rekby
    Member
    • Jul 2010
    • 91

    #1

    Странные вещи с портом Zabbix-сервер

    Сегодня два раза Zabbix-сервер начал слать оповещения о том, что все проверяемые сервера недоступны.

    Оба раза при попытке перезапустить Zabbix он не мог стартовать, потому что порт 10050 был занят.

    Первый раз netstat показывал, что порт занят скриптом внешней проверки (сам скрипт стучится скачивает с внешнего сервера страницу и проверяет в ней строку, так что как он мог занять порт вообще непонятно)

    Второй раз (сейчас) порт оказался занят Zabbix-агентом.

    # netstat -lnp

    tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 32300/zabbix_agentd


    После прибивания процессов занимающих порт сервер нормально перезапускается, тревоги снимает и продолжает работать.

    ОС
    # uname -a
    Linux vz5743 2.6.18-028stab056-aufs-teak21 #11 SMP Wed Mar 10 18:10:04 MSK 2010 i686 Intel(R) Xeon(R) CPU E5530 @ 2.40GHz GenuineIntel GNU/Linux

    Это виртуальная машина, виртуализация OpenVZ.
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Во первых, это проблема не с zabbix_server, а с zabbix_agentd. Суть проблемы, порождение процессов потомков производится в Linux клонированием родительского процесса и заменой исполняемого кода на исполняемый код потомка (таким образом производится наследование привилегий и других параметров от родительского процесса процессом-потомком). При завершении родительского процесса, все открытые порты переходят по наследству к потомкам, а это скрипты запущенные в это время из UserParameter и т.д. (т.к. речь про порт TCP 10050)
    Аналогичная проблема наблюдается с zabbix_server (порт TCP 10051), там открытый порт перходит процессам fping и скриптам внешних проверок.
    Last edited by dima_dm; 30-08-2010, 23:27.

    Comment

    • rekby
      Member
      • Jul 2010
      • 91

      #3
      Спасибо за подробное объяснение

      Comment

      • dima_dm
        Senior Member
        • Dec 2009
        • 2697

        #4
        Забыл добавить: Я решил проблему с рестартом zabbix_server добавлением в стартовый скрипт в раздел stop в самом конце команд
        killall -9 fping
        killall -9 имя_программы_внешней_проверки_1
        killall -9 имя_программы_внешней_проверки_2
        и т.д.
        Аналогично с zabbix_agentd
        Вообще это какой-то bug, т.к. при завершении родительского процесса, должны завершаться и его потомки.

        Comment

        Working...