В качестве системы мониторинга у нас используется zabbix. Недавно один из клиентов обратился с просьбой/вопросом может ли подключить сервера еще и к его zabbix серверу.

Чтение документации подсказало, что очевидного решения нету и один клиент может принимать запросы только от одного сервера. Но нет ничего невозможного. Немного поразмыслив и понаблюдав за работой zabbix агента было принято решение запускать 2 агента на одном хосте, с использованием одних и тех же бинарников и разными конфигурационными файлами.


Осталось только сделать второй набор конфигурационных файлов. Второй экземпляр zabbix агента настроить на нужный сервер и настроить его на другой порт, немного подправить скрипт автозапуска и запустить второй zabbix агент.

В скрипт автозапуска было добавлено:

init.d/zabbix-agent
conf_c=/etc/zabbix_client/zabbix_zgentd.conf
lockfile_c=/var/lock/subsys/zabbix-agent_c
....................................................................

start()
{
    echo -n $"Starting Zabbix agent: "
    daemon $exec -c $conf
    rv=$?
    echo
    [ $rv -eq 0 ] && touch $lockfile
    return $rv
    echo -n $"Starting client Zabbix agent : "
    daemon $exec -c $conf_c
    rv=$?
    echo
    [ $rv -eq 0 ] && touch $lockfile_c
    return $rv
}



В такой конфигурации все работает прекрасно.

P.S.: Изначально был вариант иметь два отдельных init скрипта, но выяснилось, что для stop там прописано killall и это приводило к остановки обоих агентов. В случае рестарта, получалось, что останавливались оба агента, а запускался только один.

Автор: Magvai69


UPD
Ошибочка вышла.
Правильно делать через
Server=192.168.0.1,192.168.0.2
ServerActive=192.168.0.1,192.168.0.2
Спасибо! )

Комментарии (6)


  1. Daimos
    04.06.2015 11:27

    Разве такая строка в конфиге не работает?
    Server=192.168.0.1,192.168.0.2
    ServerActive=192.168.0.1,192.168.0.2


    1. EvilMause
      04.06.2015 13:19

      раньше работала, в 1,8 так точно.


      1. Daimos
        04.06.2015 13:21

        У меня так и на 2.4 работает до сих пор.


  1. mcleod095
    04.06.2015 11:32

    Открывая статью думал увидеть что-то интересное, или необычное. А тут такое.
    Вы хотя бы прочитали немного документацию. Вот просто выдержка из файла конфигурации агента.

    ### Option: Server
    #       List of comma delimited IP addresses (or hostnames) of Zabbix servers.
    #       No spaces allowed. If ServerActive is not specified, the first entry is used
    #       for receiving list of and sending active checks.
    #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
    #
    # Mandatory: yes
    # Default:
    # Server=
    
    Server=
    
    ### Option: ServerActive
    #       Comma-separated list of host:port pairs of Zabbix servers for active checks.
    #       If ServerActive is specified, first host in the Server option is not used for active checks, only for passive checks.
    #       If the port is not specified, ServerPort port is used for that host. If ServerPort is not specified, default port is used.
    #       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
    #       If port is not specified, square brackets for IPv6 addresses are optional.
    #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
    #
    # Mandatory: no
    # Default:
    ServerActive=
    


    Разработчики даже не поленились и поместили строку Example.


  1. akhaustov Автор
    04.06.2015 11:40

    Я тут могу ответить только ?\_(?)_/?
    Просто мелкая заметка в свой блог.
    Скоро будет поинтереснее.


  1. thunderspb
    04.06.2015 14:42

    Фигассе костыль такой… Надеюсь у вас не все так в обход документации настроено :)

    Совет из разряда как не надо делать.