Установка zabbix centos 7

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

Введение

Я уже много раз рассказывал и описывал современную, бесплатную, популярную систему мониторинга zabbix. Повторяться в очередной раз не хочется. Для тех, кто впервые попал на мой сайт и не знаком с предыдущими материалами, поделюсь некоторыми ссылками на статьи.

Небольшое описание самой системы можно увидеть в материалах, касающихся установки предыдущих версий — 2.4 и 3.0. Информацию об изменениях в разных версиях можно посмотреть в материалах по обновлению — 2.4 -> 3.0, 3.0 -> 3.2.

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

  • Установка и настройка zabbix прокси на CentOS 7
  • Мониторинг размера бэкапа
  • Мониторинг значений из текстового файла
  • Мониторинг времени делегирования домена
  • Мониторинг Synology
  • Мониторинг бэкапов
  • Мониторинг транков (trunk) в asterisk
  • Мониторинг программного рейда mdadm
  • Мониторинг доступности службы linux
  • Мониторинг MySQL репликации
  • Мониторинг web сайта
  • Мониторинг web сервера nginx и php-fpm
  • Настройка мониторинга температуры

Команда заббикс внимательно следит за обратной совместимостью своих продуктов. Благодаря этому переход на новые версии происходит безболезненно. Нет необходимости перенастраивать или исправлять старые наработки. В новых версиях только добавляется функционал, старый чаще всего не претерпевает изменений, им можно дальше пользоваться. Приступим к установке последней версии zabbix 3.2.

Step 7: Configuring PSK encryption on Zabbix proxy (optional)

Zabbix supports encrypted communications between Zabbix server and proxy using Transport Layer Security (TLS) protocol v.1.2. You can use certificate-based and pre-shared key-based encryption (PSK), but in this tutorial we will configure the latter.

a. Generate PSK key on proxy server

Generate 256-bit (32 bytes) PSK key with openssl command:

Create and open file “” with command “” and copy & paste that newly generated key into it.

Save and exit the file (ctrl+x, followed by y and enter) and set the correct file permission:

b. Configure Zabbix proxy to support PSK encryption

Open file with command: “” and add this configuration anywhere in file:

Save and exit file (ctrl+x, followed by y and enter). Keep in mind that “TLSPSKIdentity” can be anything, so for security reasons set something else – don’t use mine!

Don’t forget to restart proxy server after changing the configuration file:

c. Enable PSK encryption on the proxy in Zabbix frontend

Communication between Zabbix proxy and server is not yet encrypted because we have enabled PSK encryption on the proxy side but not on the server-side. 

We need to enable encryption on the server side so go to web frontend and select your proxy on the “Proxies” option under the “Administration” section. Next, on the “Encryption” tab set PSK under “Connections from proxy” option and copy and paste “PSK identity” and “PSK” (key) that you have configured on the proxy. If you ever lose your generated PSK key check it with command “” on the proxy server.

When you are done with configuration click the “Update” button just as shown in the image below. 


Configuring PSK encryption for proxy on the Zabbix frontend

If you have done everything right you should see something like this:


Checking proxy encryption status on the Zabbix web frontend

Настройка Zabbix proxy

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

# mcedit /etc/zabbix/zabbix_proxy.conf

Необходимо изменить несколько параметров, все остальное можно не трогать:

server=84.143.241.246
hostname=proxy01
DBName=/var/lib/sqlite/zabbix.db
server Адрес центрального сервера мониторинга
hostname Имя прокси сервера, которое мы будем использовать на основном сервере
DBName Путь к локальной базе данных

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

systemctl enable zabbix-proxy
systemctl start zabbix-proxy

Если сейчас посмотреть лог, то увидим там следующее:

# cat /var/log/zabbix/zabbix_proxy.log
2701:20160816:225839.865 cannot obtain configuration data from server at "84.143.241.246": proxy "proxy01" not found
2702:20160816:225839.865 cannot send heartbeat message to server at "84.143.241.246": proxy "proxy01" not found

В данном случае все в порядке, это не ошибка. Просто основной сервер еще ничего не знает о только что настроенном прокси. Нам нужно идти на сервер и добавлять свежеустановленный proxy. Заходим в web панель, идем в раздел Administration -> Proxies (Администрирование -> Прокси) и справа нажимаем на кнопку Create proxy (Создать прокси):

Заполняете необходимые поля. В данном случае обязательное только одно поле Proxy name.

Proxy name Имя прокси сервера, должно соответствовать параметру hostname в файле конфигурации прокси
Proxy mode Режим работы: active — прокси всегда сам обращается к основному серверу и отправляет данные, passive — команды на получение данных каждый раз инициирует основной сервер
Hosts Хосты, которые будут мониториться через этот прокси. Так как мы только добавляем прокси, вряд ли у нас есть хосты для него.
Description Произвольное описание сервера

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

# systemctl restart zabbix-proxy
# cat /var/log/zabbix/zabbix_proxy.log
2871:20160816:231130.025 received configuration data from server at "84.143.241.246", datalen 2664

Все в порядке, прокси подключился к основному серверу и забрал от него данные. При этом на основном сервере изменился статус прокси:

В качестве теста запустим на самом прокси сервере zabbix agent и подключим его к основному серверу мониторинга через proxy. Для этого открываем конфиг агента и устанавливаем следующие параметры:

# mcedit /etc/zabbix/zabbix_agentd.conf
Server=192.168.56.10
ServerActive=192.168.56.10
Hostname=proxy01

192.168.56.10 — локальный ip адрес прокси сервера.

Сохраняем файл, агента пока не запускаем. Идем в веб интерфейс и добавляем новый хост.

Имя указываем такое же, как Hostname у агента, ip адрес — локальный адрес агента, Monitored by proxy выбираем в выпадающем списке нужный proxy сервер. Когда добавите их несколько, они все будут в этом списке. Не забудьте назначить какой-нибудь шаблон. Если этого не сделать, то можно долго ждать поступления данных и недоумевать, почему ничего не поступает, хотя на вид все в порядке и ошибок в логах нет. Я много раз с подобным сталкивался в своей практике.

После того, как добавите новый хост на основном сервере, возвращаемся на proxy и перезапускаем его, чтобы сразу же получить настройки с основного сервера. Это делать не обязательно, через некоторое время (не знаю точно какое, любопытно было бы узнать) прокси сам заберет конфигурацию. Но мы форсируем процесс:

# systemctl restart zabbix-proxy

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

# systemctl enable zabbix-agent
# systemctl start zabbix-agent

Проверяем лог агента:

# cat /var/log/zabbix/zabbix_agentd.log

Все в порядке, ошибок нет. Через некоторое время данные начнут поступать на основной сервер мониторинга с помощью посредника zabbix proxy.

Step 11: Understanding Active vs Passive Zabbix Proxy mod

When you use a proxy in active mode, it will connect to the Zabbix server to retrieve configuration and send data. This is a great feature that enables active proxy server to work behind a firewall.

And if you use a proxy in passive mode Zabbix server will initiate a connection to the proxy to send configuration and retrieve data from the proxy.


Picture showing how active proxy works compared to a passive proxy (source: www.zabbix.com)

Before, in this tutorial, we have configured proxy server to work in active mode. Let me show you how can you configure the proxy to work in passive mode.

Open file with the command: “” and turn on passive mode and define Zabbix server IP address by adding this anywhere in the file (change “Server” parameter to to match your Zabbix server):

Save and exit the file (ctrl+x, followed by y and enter). Reboot proxy server with the command ““

Now, you need to add the proxy in the Zabbix frontend using the “Proxies” option under the “Administration” section. Click on the “Create proxy” button on the right, then set “Proxy name” to anything you want and “Proxy mode” to “Passive“. Define IP address of the proxy server under the “Interfaces” and click add button if you are done with the configuration.


Picture showing how to register an passive Proxy in the Zabbix frontend

Step 9: Optimizing MySQL database (optional)

a. Create custom MySQL configuration file

Create file “ with “” and paste this configuration:

Save and exit the file (ctrl+x, followed by y and enter) and set the correct file permission:

Two things to remember!

Configuration parameter must be larger than the total number of all proxy processes plus 50. You can use the command below to automatically check the number of Zabbix processes and add 50 to that number:

The second most important parameter is , which determines how much memory can MySQL get for caching InnoDB tables and index data. You should set that parameter to 70% of system memory if only database is installed on server.

However, in this case, we are sharing a server with the proxy so you should set innodb_buffer_pool_size to 50% of total system memory. That would be 1G because my CentOS server has 2G RAM.

I didn’t have any problems with memory, but if your proxy server crashes because of lack of memory, reduce “” and restart MySQL server.

Подготовка сервера к установке

Начинаем традиционно с подготовки рабочего окружения. Первым делом вам необходимо установить и настроить сервер CentOS 7. Дальше нам нужно настроить web сервер для работы интерфейса управления. У меня есть подробный материал на тему настройки web сервера на centos 7, можете ознакомиться с ним и настроить внимательно и осмысленно. Далее я буду просто приводить команды установки, без пояснений. В этой статье я буду делать стандартную установку Zabbix на традиционный веб сервер apache + php. Если вы хотите, чтобы ваш заббикс работал на веб сервере nginx + php-fpm, читайте отдельный материал по установке zabbix на nginx и php-fpm.

# yum -y update

Отключаем SElinux. Любителям с ним повозиться, дальше можно не читать. Не люблю споров на тему SElinux. Каждый сам решает для себя в конкретной ситуации, нужен он ему на сервере или нет. Я не вижу смысла с ним заморачиваться на сервере мониторинга в локальной сети.

# mcedit /etc/sysconfig/selinux

Редактируем строку:

SELINUX=disabled

и перезагружаемся.

Теперь установим mariadb. Ее необходимо ставить отдельно, почему-то она не устанавливается как необходимая зависимость при установке самого сервере zabbix.

На всякий случай упомяну для тех, кто не знает, что такое mariadb и почему мы ставим ее, а не mysql. Mariadb — ответвление mysql. Они полностью совместимы, возможен в любой момент переход с одной субд на другую и обратно. Есть информация, что mariadb пошустрее работает mysql и люди потихоньку перебираются на нее. Разработчики CentOS начиная с версии 7 предлагают ее как сервер баз данных по-умолчанию.

# yum install -y mariadb mariadb-server

Запускаем mariadb и добавляем ее в автозагрузку:

# systemctl start mariadb
# systemctl enable mariadb.service

Отрабатываем скрипт первоначальной настройки mysql:

# /usr/bin/mysql_secure_installation

Все подготовительные работы выполнены, двигаемся дальше.

Step 8: Configure hosts in Zabbix to be monitored by a Proxy Server

Proxy is running and communicating with the Zabbix server, but it is not gathering any data because we didn’t do the last crucial step! We need to configure hosts in Zabbix to be monitored by the proxy server.

Let’s do that together, go to the “Host” option under the “Configuration” section and select hosts that need to monitored by proxy.


Configure hosts in Zabbix to be monitored by a proxy server – Step 1

After you have select hosts click on the “Mass update” button, then under the “Host” options select our newly added proxy in the “Monitored by proxy” dropdown and finally click the “Update” button just as shown in the image below.


Configure hosts in Zabbix to be monitored by a proxy server – Step 2

CONGRATULATIONS!You have successfully installed and configured Zabbix Proxy on CentOS/RHEL!No need to change anything else as other steps are optional.CONTINUE TO LEARN MORE:Configuring encryption (PSK) on proxy serverOptimizing proxy server and MySQL databaseHow to manage Proxy and MySQL serviceUnderstanding Active vs Passive Proxy modLearn about common Proxy errors

Установка Zabbix на RedHat/CentOS/Fedora

Установим сервер с заббиксом, у меня он имеют лейбу — Zabbix-Server.VM4, и выполняем установку:

# yum install zabbix-agent zabbix-server-mysql zabbix-frontend-php zabbix-web-mysql

Сейчас, можно немного поправить конфиг apache (можно собственно не лезть и не менять нечего):

# vim /etc/httpd/conf.d/zabbix.conf

Нужно убрать комментарий со строки:


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 date.timezone Europe/Kiev

В этой строке прописываем свою временную зону ( я себе установил г.Киев). Как это сделаете, нужно перезагрузить апач:

# service httpd restart

Устанавливаем mysql/mariadb сервер:

Если mysql установлен, то еще необходимо создать пользователя, который будет управлять данной БД. Для начала, подключаемся к серверу:

# mysql -proot -p

Создаем базу и пользователя с паролем:

> create database zabbix character set utf8 collate utf8_bin;
> grant all privileges on zabbix.* to 'zabbix'@'localhost' IDENTIFIED BY 'passwd_user_zabbix';

Импортируем данные в созданную БД:

# mysql zabbix 

Выполняем установку через веб-интерфейс. Вводим данные которые были созданы выше(  zabbix — база данных, zabbix — пользователь,  passwd_user_zabbix — его пароль). После установки, можно будет зайти в админ панель:

  • Пользователь — Admin
  • Пароль для пользователя — zabbix

CentOS.VM1 и CentOS.VM2

# yum install zabbix-agent

 Zabbix-Proxy.VM3

# yum install zabbix-agent  zabbix-proxy-mysql zabbix-proxy

Настройка Iptables
Для работы 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

Добавление устройства на Zabbix-сервере

Чтобы убедиться в работоспособности агента, нужно добавить хост testnode2 на Zabbix сервер и назначить ему проверки (checks).

Заметка. В заббиксе есть 2 типа проверок:

  • Пассивные – Zabbix сервер запрашивает у агента какие-либо данные;
  • Активные – агент посылает на сервер данные;

При установке агента мы указывали сервер в формате IP:PORT как раз для активных проверок.

Добавление нового устройства для мониторинга в Zabbix выполняется через Web-интерфейс. Перейдите в раздел Configuration -> Hosts.

Нажмите Create host и заполните данные

Обратите внимание, что Host name хоста должен полностью совпадать с hostname машины или значением параметра Hostname в конфиге агента

Во вкладке Templates добавить несколько встроенных Windows шаблонов. Шаблоны в Zabbix это наборы значений, триггеров, графов и правил обнаружения, которые могут быть назначены одному или нескольким хостам.

Эти интегрированные шаблоны имеют постфикс “active”, значит, будут использоваться активные проверки.

Нажмите Add. Чтобы не ждать пока сервер и агент увидят друг друга (обычно занимает пару минут), перезагрузите службу Zabbix Agent на testnode2 и проверьте лог агента (C:\Program Files\Zabbix Agent\zabbix_agentd.txt).

Сообщение “started ” говорит о том, что на сервере найдены активные проверки для этого хоста. Теперь посмотрим на данные, которые пришли на сервер Zabbix от агента. Для этого в Zabbix перейдите на Monitoring -> Latest Data и выберете нужный вам хост в поле Hosts.

В этом разделе отображаются последние данные, которые пришли на сервер по выбранным хостам или группам хостов.

Обратите внимание на то, что в дашборде Zabbix висит уведомление о том, что служба BITS не запущена. Это уведомление появилось потому что мы назначили стандартные шаблоны нашему хосту

В одном из шаблонов был мониторинг сервиса BITS и соответствующий триггер, который срабатывает если служба BITS находится не в статусе Running.

На этом настройка Windows Agentа завершена.

Установка Zabbix Сервера

Шаг 1. Для начала установим следующий пакет: zabbix-release-5.0-1.el8.noarch.rpm

Данный пакет установит Zabbix репозиторий, чтобы мы смогли затем установить необходимые нам пакеты. Устанавливать будем через пакетный менеджер rpm.

Шаг 2. Очистим Кэш пакетного менеджера DNF, чтобы затем мы могли заново собрать информацию о всех пакетах репозиториев. Выполним следующие команды:

Шаг 3. Далее установим Zabbix-Server, Zabbix-front-end, Zabbix agent и компоненты для работы с базой и веб-сервером. Для этого выполним команду:

Будет установлено большое количество необходимых компонентов.

Шаг 4. Чтобы завести базу в Postgresql, выполним следующие команды из под пользователя root, при создании пользователя необходимо задать пароль:

Шаг 5. Далее импортируем схему и необходимые данным для работы Zabbix сервера в базу данных Postgresql. Для импорта вы можете использовать следующую команду:

Выполнение команды займет некоторое время.

Будут созданы таблицы, индексы и загружены изначальные данные.

Шаг 6. Изменим конфигурацию Zabbix сервера, зададим пароль для подключения к базе данных. Для этого отредактируем файл: /etc/zabbix/zabbix_server.conf

Шаг 7. Для настройки Front-end части Zabbix сервера, отредактируем конфигурационный файл /etc/nginx/conf.d/zabbix.conf. В данном файле нам необходимо раскомментировать строку listen 80 и добавить имя сервера к строке server_name.

Шаг 8. Установим правильный часовой пояс для php, для этого отредактируем файл /etc/php-fpm.d/zabbix.conf, раскомментируем следующую строку и установим верный часовой пояс:

В моем случае часовое пояс Europe/Moscow, запись вашего часового пояса вы можете уточнить на официальном сайте PHP.

Шаг 9. Так как Nginx по умолчанию прослушивает 80 порт и отдает страницу по умолчанию, то для того чтобы мы были переадресованы на страницу Zabbix для продолжения установки закомментируем блок server в файле /etc/nginx/nginx.conf

Страница по умолчанию Nginx выглядит следующим образом:

Шаг 10. Чтобы на этапе настройки не возникли проблемы с подключением к базе Postgresql-12, нам необходимо изменить файл pg_hba.conf в моем случае он находится в каталоге /var/lib/pgsql/12/data/

Нам необходимо изменить следующую строку:

Приведем ее к виду:

После чего перезапустим сервер базы данных Postgresql-12

Шаг 11. Переустановим все запущенные сервисы, необходимые для работы Zabbix Сервера и добавим их в автозагрузку. Для этого выполним следующие команды при помощи утилиты systemctl:

После этого перейдя по адресу нашего сервера, перед нами появится страница установки Zabbix Сервера:

Нажмем Next, перед нами появится страница с проверкой нашей системы для дальнейшей установки и настройки Zabbix сервера:

Если все корректно, то напротив каждого пункта мы увидим OK. Перейдем к следующему шагу нажав Next Step.

Укажем в качестве порта, порт 5432 в качестве host укажем адрес локального или напишем localhost, также не забываем задать имя БД и пользователя. После чего нажмем Next Step.

Укажем имя хоста, также зададим имя Zabbix Сервера. В качестве порта оставьте 10051, этот порт будет использоваться Zabbix — агентом для доступа к серверу. Нажмем Next Step.

Проверяем еще раз ранее указанную информацию. Нажмем Next Step. По окончании установки будет создан конфигурационный файл zabbix.conf.php.

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

По умолчанию для входа в систему, нам необходимо указать Логин и Пароль по умолчанию. В качестве Логина для первого входа используйте Admin, а для Пароля zabbix.

Мы попадем на страницу мониторинга сервера. На этом установка Zabbix Сервера версии 5 завершена.

Step 12: Learn about common Zabbix Proxy errors

No data in items because Zabbix proxy time differs from Zabbix server time

Starting from version 4.0 Zabbix server will no longer adjust value timestamps in cases when proxy time differs from Zabbix server time. This problem is easy to detect because server-proxy communication will work but there will be no data in the items.

Adjust Zabbix server and the proxy to use the same time server (NTP) or set the time manually.

Communication between Proxy and Server is not working

Zabbix proxy is using port 10051 to communicate with the Zabbix server so make sure that you permit traffic coming from port 10051 in your network.

Note that Zabbix is using compression for communication with Proxies. Compression improves performance because it drastically reduces network traffic.

However, this may cause some problems in environments that have security devices (IDS/IPS or NGFW) installed as they can drop network packets if they detect compression in the network stream. To avoid that problem, make sure the application definitions on the security devices are up-to-date, and if you have any problems, contact your device vendor.

Checking logs on the Proxy server

If you experience a problem with the proxy you can check last 500 lines of the log with the command:

Thank you for reading.

Установка zabbix агент на Windows и настройка мониторинга

Теперь для полноты картины добавим к серверу один агент, установленный на windows машину и настроим ее мониторинг. Для этого идем на страницу загрузок http://www.zabbix.com/download.php и скачиваем самый последний агент для Windows. Все агенты находятся в разделе Zabbix pre-compiled agents. Прямая ссылка на последнюю версию на текущий момент — zabbix_agents_3.2.0.win.zip

Распаковываем архив. Создаем на диске С: папку zabbix и купируем туда следующие файлы:

  • zabbix_agentd.exe
  • zabbix_get.exe
  • zabbix_sender.exe
  • zabbix_agentd.win.conf

Исполняемые файлы берете той разрядности, какая у вас в системе. В исходном архиве есть как x32 так и x64. Дальше открываем командную строку с правами администратора и выполняем следующую команду для установки zabbix agent на windows:

c:/zabbix/zabbix_agentd.exe --config c:/zabbix/zabbix_agentd.win.conf --install

Открываем файл zabbix_agentd.win.conf любым текстовым редактором и изменяем следующие параметры:

Server=192.168.1.25
ServerActive=192.168.1.25
Hostname=win7-01

Теперь открываем оснастку со службами, ищем службу с именем Zabbix agent и запускаем ее.

Чтобы работал мониторинг windows машины, нужно добавить на сервер мониторинга host с таким же hostname, что мы указали в конфиге агента. Для этого идем в web панель, открываем раздел Configuration -> Hosts и жмем Create host.

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

Потом переходим на вкладку Templates и нажимаем Select. Выбираем шаблон Template OS Windows и жмем маленькую ссылку add, затем большую.

Новый host мониторинга добавлен, осталось подождать несколько минут свежих данных. Проверить их можно там, где и раньше, в Latest data, выбрав новый хост.

На этом установка и настройка мониторинга windows с помощью zabbix agent закончена. Можно добавлять новые компьютеры с разными версиями windows. Одна и та же версия агента подходит для всех, и десктопных и серверных систем.

Заключение

Завершили установку и настройку системы мониторинга zabbix 3.2 с практическими примерами добавления хостов мониторинга в виде linux и windows агентов. Тема настройки мониторинга zabbix обширна и охватить ее в одном материале невозможно. Для расширения функционала и добавления различных элементов мониторинга используйте мои статьи из раздела zabbix, ссылки на некоторые из них я привел в начале статьи. Все, что написано ранее, относится к версии 2.4 и 3.0, но оно не потеряло актуальность, все приемы, скрипты, шаблоны, все работает и соответствует текущей версии, можно смело пользоваться.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделитесь с друзьями:
Технарь
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.