CentOS: установка сервера мониторинга Zabbix

Автор: | 09/24/2013
 

zabbix_logoДля установки системы мониторинга Zabbix мы можем либо использовать его родной репозиторий:

# rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
# rpm -Uv http://repo.zabbix.com/zabbix/2.4/rhel/6/i386/zabbix-2.4.0-1.el6.i386.rpm

Либо использовать репозитории Elrepo & Epel — но в них нет пакета zabbix-java-gateway. Как их подключить — описано в статье CentOS/RedHat: установка репозиториев Elrepo и Epel.

А ещё лучше — вручную создать репозиторий Zabbix в файле /etc/yum.repos.d/zabbix.repo, например для CentOS 6.5:

[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=http://repo.zabbix.com/zabbix/2.2/rhel/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=http://repo.zabbix.com/non-supported/rhel/6/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1

UPD: В Epel сейчас Zabbix 1.8, хотя уже вышел 2.4.

Потому — отключаем Zabbix в Epel:

# vim /etc/yum.repos.d/epel.repo

Добавляем строку:

exclude=zabbix*

Устанавливаем необходимые пакеты (zabbix-java-gateway — не обязателен, в данном случае нужен для мониторинга Tomcat):

# yum -y install mysql-server zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-java-gateway

Если MySQL не установлен — он будет установлен как зависимость.

Запускаем его:

# service mysqld start

Добавляем в автозапуск:

# chkconfig mysqld on

Запускаем скрипт «быстрой настройки», отвечаем на вопросы:

# /usr/bin/mysql_secure_installation

Логинимся в консоль сервера MySQL:

# mysql -uroot -p
Enter password:

Создаём базу данных, в которой Zabbix будет хранить свои данные:

mysql> create database zabbix character set utf8;
Query OK, 1 row affected (0.00 sec)

Назначаем привилегии и устанавливаем доступ:

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)

Всё, выходим:

mysql> exit
Bye

Настройки самого Zabbix-сервера харнятся в файле /etc/zabbix/zabbix_server.conf. Редактируем его, указывая данные доступа к серверу MySQL и базе zabbix:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

Далее — проводим небольшой тюнинг настроек PHP в файле /etc/php.ini. Устанавливаем следующие значения:

max_execution_time = 300
post_max_size = 16M
max_input_time = 300
date.timezone = Europe/Kiev

Узнать точное описание вашей зоны можно на странице http://php.net/date.timezone.

Что бы убедиться в том, что настройки применились сервером — можно создать файл с таким содержимым:

$ cat /usr/share/zabbix/info.php
<?php echo phpinfo(); ?>

Перезагружаем Apache:

# service httpd restart
Stopping httpd:[  OK  ]
Starting httpd:[  OK  ]

Теперь можно зайти на страницу http://hostname/zabbix и убедиться, что Zabbix почти работает.
Приступаем к настройке базы для Zabbix-a:

# cd /usr/share/zabbix-mysql
# mysql -u root -p zabbix < schema.sql
# mysql -u root -p zabbix < images.sql
# mysql -u root -p zabbix < data.sql

В зависимости от типа установки — путь может быть /usr/share/doc/zabbix-server-mysql-2.0.8/.

Включаем автозапуск сервера и агента при старте системы:

# chkconfig zabbix-server on
# chkconfig zabbix-agent on

И запускаем их:

# service zabbix-server start
Starting Zabbix server: [  OK  ]
# service zabbix-agent start
Starting Zabbix agent: [  OK  ]

Настройки Apache для веб-интерфейса Zabbix хранятся в файле /etc/httpd/conf.d/zabbix.conf. При необходимости — отредактируйте их.

Проверяем состояние SELinux:

# setenforce status
setenforce: SELinux is disabled

При необходимости отключим его — CentOS: отключение SELinux.

Редактируем файл /etc/zabbix/zabbix_server.conf, в котором раскомметрируем строку:

StartTrappers=5

В случае, если в веб-интерфейсе всё-равно появляется предупреждение «Zabbix server is not running» — проверьте лог-файл, при нормальном старте будут такие строки:

# tail -f /var/log/zabbix/zabbix_server.log

9201:20130923:122818.737 Starting Zabbix Server. Zabbix 2.0.8 (revision 38017).
9201:20130923:122818.744 ****** Enabled features ******
9201:20130923:122818.744 SNMP monitoring:           YES
9201:20130923:122818.745 IPMI monitoring:           YES
9201:20130923:122818.746 WEB monitoring:            YES
9201:20130923:122818.747 Jabber notifications:      YES
9201:20130923:122818.748 Ez Texting notifications:  YES
9201:20130923:122818.749 ODBC:                      YES
9201:20130923:122818.752 SSH2 support:              YES
9201:20130923:122818.753 IPv6 support:              YES

А вот пример ошибки, связанной с неверными параметрами доступа к базе данных в файле /etc/zabbix/zabbix_server.conf:

8978:20130923:122809.667 [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: NO)
8978:20130923:122809.667 Database is down. Reconnecting in 10 seconds.

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

# netstat -anp | grep 10050
tcp        0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      7612/zabbix_agentd
# netstat -anp | grep 10051
tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      9201/zabbix_server

Теперь можно продолжить установку Zabbix из веб-интерфейса. Логин/пароль по-умолчанию — Admin/zabbix. Там всё понятно без комментариев:

Установка Zabbix на CentOS: веб-интерфейс

Установка Zabbix на CentOS: веб-интерфейс

Установка Zabbix на CentOS: веб-интерфейс

Установка Zabbix на CentOS: веб-интерфейс

Установка Zabbix на CentOS: веб-интерфейс

Установка Zabbix на CentOS: веб-интерфейс

Установка Zabbix на CentOS: веб-интерфейс

Установка Zabbix на CentOS: веб-интерфейс

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