Zabbix установка и настройка CentOS 7

В рамках данного материала рассматривается установка сервера мониторинга Zabbix, Zabbix агента и сопутствующего ПО на CentOS 7. В конченом итоге получается работоспособная система мониторинга, в которую остается добавлять хосты, состояние которых будет контролироваться и задавать опции мониторинга. Статья является переводом с авторскими добавлениями.

 

Установка MySQL и настройка его для работы с сервером мониторинга Zabbix

Прежде всего подготовим систему. Нам понадобится сервер баз данных

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm

yum update

yum install mysql-server

 

После установки запустим его и проверим статус

systemctl start mysqld

 

systemctl status mysqld

● mysqld.service — MySQL Community Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Вс 2017-06-25 16:43:43 +05; 6s ago
  Process: 2630 ExecStartPost=/usr/bin/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 2566 ExecStartPre=/usr/bin/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 2629 (mysqld_safe)
   CGroup: /system.slice/mysqld.service
           ├─2629 /bin/sh /usr/bin/mysqld_safe —basedir=/usr
           └─2794 /usr/sbin/mysqld —basedir=/usr —datadir=/var/lib/mys…

 

mysql_secure_installation

 

Скрипт, осуществляющий безопасную установку mysql настраивает самые важные опции безопасности, он применим и на Debian подобных системах

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

mysql -u root -p

 

Авторизуемся в консоли и вводим пароль заданный на предыдущем шаге

mysql>

 

Проверяем, что ошибок не возникает выполняя базовый запрос show databases;

После этого выходим

Exit;

 

Установка и настройка Zabbix сервера

Переходим к установке и настройке собственно Zabbix

rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

 

В выводе при этом наблюдаем:

Retrieving http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.YNwOup: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY
Preparing…                                                            (10################################# [100%]
Updating / installing…
1:zabbix-release-3.0-1.el7                                           (  ################################# [100%]

 

 

Устанавливаем zabbix-server

yum install zabbix-server-mysql zabbix-web-mysql

 

 

Установка и настройка zabbix-agent

Устанавливаем агент вводя в возникающих диалогах y

yum install zabbix-agent

 

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

 

Для шифрования соединения между сервером и агентом будем использовать PSK — pre-shared keys

 

Генерируем ключ

sh -c «openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk»

 

Затем просматриваем его

cat /etc/zabbix/zabbix_agentd.psk

 

Открываем конфигурационный файл Zabbix агента для редактирования

mcedit /etc/zabbix/zabbix_agentd.conf

 

В нем находим секцию, отвечающая за работу сервера и меняем IP адрес (можно узнать выполнив ip a в консоли)

### Option: Server

Server=123.123.123.123

 

В том же файле найдем опцию, отвечающую за TCP соединение и добавим в блок приведенную ниже строку задающую шифрование соединения при помощи psk.

### Option: TLSConnect

TLSConnect=psk

 

Аналогично с блоком TLSAccept

### Option: TLSAccept

TLSAccept=psk

 

В блоке ### Option: TLSPSKIdentity установим для директивы TLSPSKIdentity уникальное имя ключа
TLSPSKIdentity=PSK TUTORIAL

 

При работе через веб интерфейс и добавлении хоста будет использоваться PSK ID

В блоке ### Option: TLSPSKFile задаем расположение на сервере файла с созданным ранее psk ключом.

TLSPSKFile=/etc/zabbix/zabbix_agentd.psk

 

Базовая настройка на этом завершена — запускаем сервис и проверяем его статус

systemctl start zabbix-agent

systemctl status zabbix-agent

 

 

Вывод должен говорить о том, что служба запущена и нормально работает

● zabbix-agent.service — Zabbix Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Вс 2017-06-25 18:17:00 +05; 14s ago
 Main PID: 10911 (zabbix_agentd)
   CGroup: /system.slice/zabbix-agent.service
           ├─10911 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd….
           ├─10912 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
           ├─10913 /usr/sbin/zabbix_agentd: listener #1 [waiting for con…
           ├─10914 /usr/sbin/zabbix_agentd: listener #2 [waiting for con…
           ├─10915 /usr/sbin/zabbix_agentd: listener #3 [waiting for con…
           └─10916 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec…

 

Добавляем в автозагрузку при старте системы

systemctl enable zabbix-agent

 

А также сам zabbix

systemctl enable zabbix-server

 

Настраиваем MySQL для работы с Zabbix

mysql -u root -p

CREATE DATABASE zabbix CHARACTER SET utf8;

GRANT ALL PRIVILEGES ON zabbix.* to zabbix@localhost IDENTIFIED BY 'password';

QUIT;

 

Далее переходим в каталог, который создался при установке пакета и закачиваем данные в базу

cd /usr/share/doc/zabbix-server-mysql-3.0.9

zcat create.sql.gz | mysql -uzabbix -p zabbix

 

Правим конфиг Zabbix сервера

mcedit /etc/zabbix/zabbix_server.conf

 

Находим блок ### Option: DBPassword и вставляем в него директиву DBPassword=password, где после знака «равно» указан текущий пароль доступа к БД

 

Поскольку управлять мониторингом будем через веб-интерфейс потребуется установить веб-севрер и настроить виртуальный хост

yum install httpd

 

systemctl start httpd

 

Добавляем в автозагрузку

systemctl enable httpd

 

Редактируем конфигурационный файл httpd задавая настройки часового пояса. Остальные настройки оставляем по умолчанию

 

mcedit /etc/httpd/conf.d/zabbix.conf

#
# Zabbix monitoring system php web frontend
#

Alias /zabbix /usr/share/zabbix

<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
Require all granted

<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/Yekaterinburg
...

 

Перезапускаем веб-сервер

systemctl restart httpd

 

Через браузер обращаемся к хосту прописывая IP адрес сервера, к которому добавляем /zabbix
Zabbix установка и настройка CentOS 7
Если при этом появляется ошибка о невозможности подключения выполняем команду  iptables -F, которая сбросит существующие правила iptables.

 

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

 

При завершении диалога создается файл /etc/zabbix/web/zabbix.conf.php. В интерфейсе Zabbix можно авторизоваться с логином admin и паролем zabbix

веб-интерфейс zabbix

 

 

Добавление хоста в мониторинг Zabbix

В веб-интерфейсе необходимо авторизоваться, затем перейти в раздел
Configuration, затем Hosts в верхнем меню. После чего нажать Create host

 

В качестве Host name и IP ADDRESS нужно указать имя хоста и IP адрес клиенского сервера, состояние которого будет отслеживаться

Затем хост добавляется в группу, которая выбирается из списка или создается, по умолчанию хосты добавляются в группу Linux Servers.  Добавив хост в группу потребуется нажать Templates.

Then add the host to a group by selecting one of the groups from the list, or by creating your own group.

В поиске нужно набрать Template OS Linux и нажать Add чтобы добавить шаблон к хосту.

Далее выбирваем вкладку Encryption и выбираем PSK для Connections to host и Connections from host. Устанавливаем для PSK identity опцию PSK TUTORIAL, что является значением параметра TLSPSKIdentity для агента, котороые мы определили раньше.

 

 

Просматриваем ключ на машине с агентом Zabbix

cat /etc/zabbix/zabbix_agentd.psk

 

И копируем его устанавливая в качестве PSK value

Теперь мы видим новый хост, добавленный для мониторинга, а на вкладках Monitoring и Latest data отображается информация о состоянии этого хоста.

 

Для каждого нового хоста будет необходимо устанавливать Zabbix-agent и генерировать PSK ключ, затем добавлять агент на сервере в качестве хоста для мониторинга. Конфигурация, таким образом, довольно простая, при этом она позволяет оргаинзовать распространенную систему мониторинга за большим парком серверов.

 

Популярным аналогом Zabbix является сервер мониторинга Nagios, для отслеживания состояния одного сервера обычно достаточно Monit.