Zabbix: установка zabbix-агента из исходных кодов на SUSE Linux Enterprise Server

Автор: | 11/01/2013
 

zab_logoУстановка производится на систему:

# cat /etc/SuSE-release
SUSE Linux Enterprise Server 10 (i586)
VERSION = 10

Качаем нужную версию Zabbix с сайта:

http://www.zabbix.com/download.php

В этом примере используется:

http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.9/zabbix-2.0.9.tar.gz/download

Распаковываем:

# tar -zxvf zabbix-2.0.9.tar.gz

Указывайте актуальную версию.

Добавляем группу и пользователя, от которого будет запускаться агент:

# groupadd zabbix
# useradd -g zabbix zabbix

Переходим в каталог с распакованными кодами Zabbix:

# cd zabbix-2.0.9/

Собираем агента:

# ./configure --enable-agent

В случае ошибки вида:

if configure: error: no acceptable C compiler found in $PATH

Установите GNU Compiler Collection:

# yast2 -i gcc

Проверяем:

# gcc --version
gcc (GCC) 4.1.0 (SUSE Linux)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

В случае проблем — ведётся лог-файл, в том же каталоге:

# less config.log

Создаём файл лога:

# touch /var/log/zabbix_agentd.log
# chown zabbix:zabbix /var/log/zabbix_agentd.log

Далее — установка и настройка производится так же, как в статье CentOS: установка, настройка Zabbix-agent и добавление нового хоста в мониторинг.

Редактируем файл настроек агента:

# vim /usr/local/etc/zabbix_agentd.conf

Запускаем:

# ./src/zabbix_agent/zabbix_agentd

# ps aux | grep zabbix
zabbix   14244  0.0  0.0   2592   592 ?        S    14:41   0:00 ./src/zabbix_agent/zabbix_agentd
zabbix   14245  0.0  0.0   2592   636 ?        S    14:41   0:00 ./src/zabbix_agent/zabbix_agentd
zabbix   14246  0.0  0.0   2592   468 ?        S    14:41   0:00 ./src/zabbix_agent/zabbix_agentd
zabbix   14247  0.0  0.0   2592   468 ?        S    14:41   0:00 ./src/zabbix_agent/zabbix_agentd
zabbix   14248  0.0  0.0   2592   468 ?        S    14:41   0:00 ./src/zabbix_agent/zabbix_agentd
zabbix   14249  0.0  0.0   2600   672 ?        S    14:41   0:00 ./src/zabbix_agent/zabbix_agentd

Заметьте — хотя агент был запущен от root — он всё-равно работает под пользователем zabbix. Что бы изменить это — в файле конфигурации надо разрешить работу от root:

# AllowRoot=0

Удалите символ комментария и установите значение 1.

Проверяем порт:

# netstat -anp | grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      14309/zabbix_agentd

Устанавливаем агент как сервис.

Останавливаем работающие процессы zabbix-агента:

# killall -u zabbix

Переносим каталог с агентом в каталог /opt в корне системы:

# cp -r src/zabbix_agent/ /opt/

В SUSE Linux Enterprise Server имеется шаблон скрипта. Копируем его, и редактируем под свои параметры:

# cp /etc/init.d/skeleton /etc/init.d/zabbix_agent

Редактируем такие поля:

### BEGIN INIT INFO
# Provides:          Zabbix agent service

Вместо FOO_*** объявим свою переменную, напрмиер ZAB_*.

Указываем файл для запуска:

ZAB_BIN=/opt/zabbix_agent/zabbix_agentd
test -x $ZAB_BIN || { echo "$ZAB_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
...
ZAB_CONFIG=/usr/local/etc/zabbix_agentd.conf
test -r $ZAB_CONFIG || { echo "$ZAB_CONFIG not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
...
case "$1" in
start)
echo -n "Starting Zabbix agent "

Проверяем:

# /etc/init.d/zabbix_agent
Usage: /etc/init.d/zabbix_agent {start|stop|status|try-restart|restart|force-reload|reload|probe}
# /etc/init.d/zabbix_agent start
Starting Zabbix agent done
# ps axu | grep zabbix
zabbix 14488 0.0 0.0 2596 600 ? S 15:41 0:00 /opt/zabbix_agent/zabbix_agentd
zabbix 14489 0.0 0.0 2596 596 ? S 15:41 0:00 /opt/zabbix_agent/zabbix_agentd
zabbix 14490 0.0 0.0 2596 476 ? S 15:41 0:00 /opt/zabbix_agent/zabbix_agentd
zabbix 14491 0.0 0.0 2596 476 ? S 15:41 0:00 /opt/zabbix_agent/zabbix_agentd
zabbix 14492 0.0 0.0 2596 476 ? S 15:41 0:00 /opt/zabbix_agent/zabbix_agentd
zabbix 14493 0.0 0.0 2608 668 ? S 15:41 0:00 /opt/zabbix_agent/zabbix_agentd
# netstat -anp | grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 14488/zabbix_agentd
# service zabbix_agent status
Checking for service Zabbix agent status                              running
# service zabbix_agent stop
Shutting down Zabbix agent                                            done
# service zabbix_agent start
Starting Zabbix agent                                                 done

Устанавливаем в автозапуск (читайте блок INIT INFO для получения иформации о runlevel-ах для сервиса):

# insserv /etc/init.d/zabbix_agent

Проверяем:

# chkconfig -l | grep zabbix
zabbix_agent              0:off  1:off  2:off  3:on   4:off  5:on   6:off

Установка завершена.