Ad Widget

Collapse

Не стартует агент после обновления 3.0->3.2

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • zverek06
    Member
    • Oct 2016
    • 51

    #1

    Не стартует агент после обновления 3.0->3.2

    OS:
    Freebsd 10

    Был установлен агент 3.0.4 из пакетов. деинсталировал пакет, установил 3.2.0 и он перестал запускаться...
    работает, если запустить его с путем до конфига, а просто так - нет

    Code:
    # service zabbix_agentd start
    /usr/local/etc/rc.d/zabbix_agentd: WARNING: failed precmd routine for zabbix_agentd
    Code:
     # cat /usr/local/etc/rc.d/zabbix_agentd
    #!/bin/sh
    
    # PROVIDE: zabbix_agentd
    # REQUIRE: DAEMON
    # KEYWORD: shutdown
    #
    # Add the following lines to /etc/rc.conf.local or /etc/rc.conf to
    # enable zabbix_agentd:
    #
    # zabbix_agentd_enable (bool): Set to NO by default.  Set it to YES to
    #         enable zabbix_agentd.
    # zabbix_agentd_config (string): Set to the standard config file path by
    #         default.
    # zabbix_agentd_pidfile (string):    Location of the zabbix_agent pid file
    #                               Default is /var/run/zabbix/zabbix_agentd.pid
    #
    
    . /etc/rc.subr
    
    name="zabbix_agentd"
    rcvar=zabbix_agentd_enable
    
    load_rc_config $name
    
    : ${zabbix_agentd_enable:=NO}
    : ${zabbix_agentd_config:=/usr/local/etc/zabbix32/${name}.conf}
    : ${zabbix_agentd_pidfile:=/var/run/zabbix/zabbix_agentd.pid}
    
    command="/usr/local/sbin/${name}"
    required_files="${zabbix_agentd_config}"
    
    start_precmd=zabbix_agentd_precmd
    status_precmd=zabbix_agentd_precmd
    stop_precmd=zabbix_agentd_precmd
    
    zabbix_agentd_precmd()
    {
            if get_pidfile_from_conf PidFile ${zabbix_agentd_config}; then
                    pidfile="$_pidfile_from_conf"
            else
                    pidfile=${zabbix_agentd_pidfile}
                    local rundir=${zabbix_agentd_pidfile%/*}
                    if [ ! -d $rundir ] ; then
                            install -d -m 0755 -o zabbix -g zabbix $rundir
                    fi
            fi
    
            # This shouldn't be necessary with pidfile, but empirically it was the
            # only way to reap the parent PID instead of all PIDs from
            # check_process, which may leak SysV IPC objects and prevent restart
            # and/or race condition on restart.
            rc_pid=$(check_pidfile ${pidfile} ${command})
    }
    
    run_rc_command "$1"


    и заббикс сервер стартует, работает, но на запрос service zabbix_server status - отвечает - "zabbix_server is not running."
    То есть рестартануть я его не могу, только перегрузив весь железные сервер.... Фигня какая то после обновления на 3.2
    Last edited by zverek06; 02-11-2016, 08:12.
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Ну, если из командной строки с явным указанием конфига всё стартует - то, на мой взгляд, проблемы не с агентом или сервером, а со стартап-скриптами. Вероятнее всего, они не находят нужных конфиг-файлов (а для сервера, как следствие, - PID-файла, по которому определяется, запущен ли процесс).

    Из приведённого текста стартап-скрипта можно извлечь лишь следующее:
    • путь по умолчанию для конфиг-файла агента, где он пытается его искать: /usr/local/etc/zabbix32/zabbix_agentd.conf. А где он на самом деле у Вас находится?
    • есть комментарии в начале скрипта, в которых сказано, что и где можно прописать, если конфиг-файл лежит в другом месте;
    • есть также путь по умолчанию для PID-файла, но если найден конфиг-файл и в нём соответствующий параметр явно указан, то путь к PID-файлу должен браться оттуда;
    • как именно все эти проверки работают - из этого скрипта не видно, т.к. используются функции, определённые в другом скрипте (/etc/rc.subr), который лишь include-ится из этого скрипта.

    При желании можно посмотреть более подробно, что именно происходит, запуская каждый из стартап-скриптов командой
    Code:
    sh -x имя_скрипта start
    Но мне кажется, что достаточно указать правильный путь к конфиг-файлам:
    Originally posted by zverek06
    OS:
    Freebsd 10

    Был установлен агент 3.0.4 из пакетов. деинсталировал пакет, установил 3.2.0 и он перестал запускаться...
    работает, если запустить его с путем до конфига, а просто так - нет
    [...]
    Code:
     # cat /usr/local/etc/rc.d/zabbix_agentd
    # Add the following lines to /etc/rc.conf.local or /etc/rc.conf to
    # enable zabbix_agentd:
    [...]
    # zabbix_agentd_config (string): Set to the standard config file path by
    #         default.
    # zabbix_agentd_pidfile (string):    Location of the zabbix_agent pid file
    #                               Default is /var/run/zabbix/zabbix_agentd.pid
    #
    
    . /etc/rc.subr
    [...]
    и заббикс сервер стартует, работает, но на запрос service zabbix_server status - отвечает - "zabbix_server is not running."
    [...]

    Comment

    Working...