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


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



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


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

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



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

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

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

Через браузер обращаемся к хосту прописывая IP адрес сервера, к которому добавляем /zabbix


Если при этом появляется ошибка о невозможности подключения выполняем команду  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.

В поиске нужно набрать 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.

Сказать спасибо