Установка Zabbix на CentOS 6

  • 1 Установка Zabbix на CentOS 6.
    • 1.1 1. Установка Zabbix.
    • 1.2 2. Настройка Iptables
    • 1.3 3. Установка и настройка Mysql-сервера.
    • 1.4 4. Настройка SELinux
    • 1.5 Источники:

 

Установка Zabbix на CentOS 6.

 

1. Установка Zabbix.

Устанавливаем репозиторий l-sys.
# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
Устанавливаем Zabbix-сервер для Mysql, веб-интерфейс и Zabbix-агент.
# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

2. Настройка Iptables

По умолчанию на CentOS 5 и 6 файервол разрешает все исходящие пакеты и разрешает входящие по 22 порту для SSH, все остальные входящие пакеты отбрасывается. Для работы Web-интерфейса Zabbix нам потребуется открыть 80 порт, а также 10051 для взаимодействия внешних Zabbix-агентов с сервером.
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
Эти настройки работают в случае стандартно настроенного файервола, в котором существует правило пропускающее пакеты относящиеся к соединениям в состоянии related и established.

3. Установка и настройка Mysql-сервера.

Устанавливаем, включаем в автозагрузку и запускаем сервис.
# yum install mysql-server
# chkconfig mysqld on
# service mysqld start
Starting mysqld: [ OK ]

Запускаем скрипт-помощник по настройке mysql, изначально предназначенный для улучшения защищенности.
# mysql_secure_installation

Enter current password for root (enter for none): # Пароль по умолчанию пустой,
# поэтому смело жмем Enter
Set root password? [Y/n] Y # Устанавливаем новый пароль root
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y # Удаляем анонимных пользователей
Disallow root login remotely? [Y/n] Y # Запрещаем удаленный вход для root
Remove test database and access to it? [Y/n] Y # Удаляем тестовую базу данных
Reload privilege tables now? [Y/n] Y # Перезапускаем привилегии

Создаем базу данных для Zabbix-сервера в кодировке utf-8 с пользователем zabbix и паролем zabbix_passwd.
# mysql -uroot -p
Enter password:
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix_passwd";
mysql> flush privileges;
mysql> quit;

Переходим в каталог cd /usr/share/doc/zabbix-server-mysql-2.4.3/create и импортируем данные.
# cd /usr/share/doc/zabbix-server-mysql-2.4.3/create
# mysql -uzabbix -p zabbix < schema.sql
# mysql -uzabbix -p zabbix < images.sql
# mysql -uzabbix -p zabbix Hosts в Веб-интерфейсе
Добавляем в автозапуск и запускаем:
# chkconfig zabbix-agent on
# service zabbix-agent start
Starting ZABBIX agent: [ OK ]

4. Настройка SELinux

SELinux (Security-Enhanced Linux) – это одна из реализаций принудительного контроля доступа, которая позволяет неплохо повысить безопасность системы, и если сервер доступен из интернета или используется в открытых сетях, то защитить его при помощи SELinux наша святая обязанность.
В реализации SELinux под CentOS есть готовый модуль для Zabbix.
# semodule -l | grep zabbix
zabbix 1.2.0
Он отлично работает с Zabbix 1.6 или 1.8, но в версии 2.0 перестают работать проверка запуска Zabbix-сервера из Web-интерфейса и внешние проверки на базе fping.
Разрешаем php-скриптам web-интерфейса обращаться к порту 10051.
# semanage port -a -t http_port_t -p tcp 10051
Создаем текстовый файл zabbix_fping.te содержащий описание политики SELinux для fping:
module zabbix_fping 1.0;
require {
type initrc_tmp_t;
type ping_t;
class file read;
}
allow ping_t initrc_tmp_t:file read;
Компилируем, собираем и устанавливаем модуль.
# checkmodule -M -m -o zabbix_fping.mod zabbix_fping.te
# semodule_package -o zabbix_fping.pp -m zabbix_fping.mod
# semodule -i zabbix_fping.pp
На этом настройка SELinux завершена, в ближайшее время постораюсь разместить все эти доработки в установочном скрите RPM-пакета.


Возможные ошибки:


Ошибка после установки Zabbix: Zabbix server is not running: the information displayed may not be current
Если вы установили серверную часть системы мониторинга Zabbix на системах RHEL (Oracle Linux, RedHat, CentOS) и вроде бы всё правильно, но в веб-интерфейсе вылазит ошибка
Zabbix server is not running: the information displayed may not be current

Здесь обычно 2 варианта:

1. Самый простой - не запущен или не корректно сконфигурирован демон zabbix-server.
Проверьте, совпадают ли номера портов в конфигах zabbix-server (/etc/zabbix/zabbix_server.conf) и zabbix-web (/etc/zabbix/web/zabbix.conf.php), а так же правильно ли настроено подключение к БД.
2. Если всё в конфигурационных файлах правильно и демон запущен, это скорее всего значит, что вам надо или отключить систему защиты SeLinux совсем или - что будет корректнее - изменить политику доступа к портам системы для демона httpd.

Проверим, что проблема действительно в настройках SeLinux:

tail -f /var/log/audit/audit.log |grep -i avc

Должны периодически добавляться в лог строки вроде этой:

type=AVC msg=audit(1395664684.460:297): avc: denied { name_connect } for pid=3078 comm="httpd" dest=10051 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:zabbix_port_t:s0 tclass=tcp_socket

А команда:

getsebool -a | grep zabbix

должна в таком случае дать результат:

zabbix_can_network --> off

Изменим политику для httpd:

setsebool -P httpd_can_network_connect on

Проверяем:

getsebool httpd_can_network_connect

Результат должен быть следующий:

httpd_can_network_connect --> on

Теперь веб-интерфейс Zabbix должен нормально подключаться к серверу через порт 10051 (по-умолчанию) и ошибка исчезнет.


Источники:

http://www.alsigned.ru/?p=2463

https://www.zabbix.com/documentation/3.0/manual/installation/install_from_packages

http://geckich.blogspot.com/2014/03/zabbix-zabbix-server-is-not-running.html

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

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 0

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

Еще есть вопросы? Отправить запрос

0 Комментарии

Войдите в службу, чтобы оставить комментарий.
На базе технологии Zendesk