В качестве системы мониторинга у нас используется zabbix. Недавно один из клиентов обратился с просьбой/вопросом может ли подключить сервера еще и к его zabbix серверу.
Чтение документации подсказало, что очевидного решения нету и один клиент может принимать запросы только от одного сервера. Но нет ничего невозможного. Немного поразмыслив и понаблюдав за работой zabbix агента было принято решение запускать 2 агента на одном хосте, с использованием одних и тех же бинарников и разными конфигурационными файлами.
Осталось только сделать второй набор конфигурационных файлов. Второй экземпляр zabbix агента настроить на нужный сервер и настроить его на другой порт, немного подправить скрипт автозапуска и запустить второй zabbix агент.
В скрипт автозапуска было добавлено:
В такой конфигурации все работает прекрасно.
P.S.: Изначально был вариант иметь два отдельных init скрипта, но выяснилось, что для stop там прописано killall и это приводило к остановки обоих агентов. В случае рестарта, получалось, что останавливались оба агента, а запускался только один.
UPD
Ошибочка вышла.
Правильно делать через
Server=192.168.0.1,192.168.0.2
ServerActive=192.168.0.1,192.168.0.2
Спасибо! )
Чтение документации подсказало, что очевидного решения нету и один клиент может принимать запросы только от одного сервера. Но нет ничего невозможного. Немного поразмыслив и понаблюдав за работой 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)
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.
akhaustov Автор
04.06.2015 11:40Я тут могу ответить только ?\_(?)_/?
Просто мелкая заметка в свой блог.
Скоро будет поинтереснее.
thunderspb
04.06.2015 14:42Фигассе костыль такой… Надеюсь у вас не все так в обход документации настроено :)
Совет из разряда как не надо делать.
Daimos
Разве такая строка в конфиге не работает?
Server=192.168.0.1,192.168.0.2
ServerActive=192.168.0.1,192.168.0.2
EvilMause
раньше работала, в 1,8 так точно.
Daimos
У меня так и на 2.4 работает до сих пор.