Введение
Я уже много раз рассказывал и описывал современную, бесплатную, популярную систему мониторинга 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.
ДРУГИЕ МАТЕРИАЛЫ ПО ТЕМЕ
IT-WIKI (16)
zabbix >>>
Каталог, хранящий лог-файлы системы мониторинга Zabbix.
zabbix >>>
Папка с html-файлами веб-оболочки системы мониторинга Zabbix.
zabbix >>>
ID материала: 12443 / Дата публикации: 08.04.2020
/
Просмотров: 110
Хранит файлы с идентификаторами (PID) процессов системы мониторинга Zabbix.
zabbix_agentd.d >>>
ID материала: 12437 / Дата публикации: 08.04.2020
/
Просмотров: 124
Каталог агента системы мониторинга Zabbix.
zabbix >>>
ID материала: 12436 / Дата публикации: 08.04.2020
/
Просмотров: 131
Каталог системы мониторинга Zabbix.
zabbix-server.target >>>
ID материала: 12415 / Дата публикации: 08.04.2020
/
Просмотров: 168
Модульный файл zabbix-сервера. Определяет порядок его загрузки и работы.
zabbix-agent.target >>>
ID материала: 12414 / Дата публикации: 08.04.2020
/
Просмотров: 133
Модульный файл zabbix-агента. Определяет порядок его загрузки и работы.
zabbix_server.pid >>>
ID материала: 12406 / Дата публикации: 08.04.2020
/
Просмотров: 134
Файл, в котором хранится идентификатор процесса zabbix-server.
zabbix_agentd.pid >>>
ID материала: 12405 / Дата публикации: 08.04.2020
/
Просмотров: 159
Файл, в котором хранится идентификатор процесса zabbix-agentd.
zabbix.conf.php >>>
ID материала: 12404 / Дата публикации: 08.04.2020
/
Просмотров: 188
Конфигурационный файл GUI Zabbix, настройки БД (включая логин и пароль), настройки zabbix-сервера.
Статьи (5)
IT4XP / статьи
Файловая система NTFS >>>
ID материала: 12470 / Дата публикации: 01.10.2020
/
Просмотров: 122
Файловые системы >>>
ID материала: 12469 / Дата публикации: 01.10.2020
/
Просмотров: 125
Материалы по Zabbix >>>
ID материала: 11937 / Дата публикации: 01.10.2020
/
Просмотров: 178
Zabbix. Возможные проблемы и неисправности. >>>
ID материала: 11938 / Дата публикации: 05.05.2020
/
Просмотров: 739
Установка Zabbix-агента на клиентские компьютеры под Windows 7, 8 и настройка его авторегистрации >>>
ID материала: 31 / Дата публикации: 05.05.2020
/
Просмотров: 974
Управление сетевыми интерфейсами.
Для просмотра состояния и конфигурации интерфейса существуют специальные команды.
# ifconfig # ip a
Посмотреть таблицу маршрутизации модно используя команду:
# netstat -r
В Red Hat Enterprise Linux (RHEL) / CentOS / Fedora существуют специальные сценарии для управления сетевыми интерфейсами.
Сценарии ifup и ifdown позволяют включить или отключить сетевой интерфейс. В качестве аргумента эти сценарии принемают имя интерфейса.
ifdown eth0 - отключит интерфейс. ifup eth0 - включить интерфейс.
Сценарий service network или /etc/init.d/network позволяют включить (start), отключить (stop) или перезапустить (restart) все интерфейсы разом.
service network stop service network restart /etc/init.d/network start
И на последок, функция маршрутизации между интерфейсами по умолчанию отключена, однако ее можно включить для этого надо добавить в файл /ete/sysctl.conf запись net.ipv4.ip_forward=1 и перезапустить систему.
На этом рассмотрение настройки сети в операционных системах Red Hat Enterprise Linux (RHEL) / CentOS / Fedora завершено.
Пример настройки элемента данных Простая проверка
Немного ликбеза насчет метода «Простой проверки» и ее настройки для работы по протоколу ICMP.
Простая проверка, это тот способ отслеживания удаленного сервера, когда у вас отсутствует возможность установки своего ПО на стороне сервера (виртуального хостинга и т.п.), еще они называются «безагентными».
Ранее, я описал выше небольшую настройку на стороне сервера, заключавшейся в выставлении корректных прав, при которых возможно функционирование утилиты fping не от имени root (есть ограничения).
Данная утилита, не являясь компонентом сервера Zabbix, используется им при этом для выполнения «простой проверки» через функции icmpping.
Для настройки такой проверки, после создания нового «узла сети», перейдите в меню настройки «элементы данных» для текущего узла и выберите в поле «Тип» вариант «Простая проверка», а поле «ключ» внесите значение:
icmpping
После этого, если все прочие параметры ниже в таблице вас устраивают, нажмите «сохранить» в этом же окне, в подвале страницы.
Данные числовые значения представляют из себя аргументы для упомянутой команды fping:
где: -C 1 = кол-во отправляемых пакетов; -p 1000 = интервал с миллисекундах; -b 56 = размер пакета в Байтах;
-t 500 = время таймаута ожидания ответа в миллисекундах.
Тут команда приведена для примера, но в случае возникновения необходимости проверки корректной работы fping, (если наблюдаются сообщения об ошибках работы функций icmpping в панели «элементы данных» – «fping failed» и т.п.), эта команда может быть запущена в консоли, на стороне сервера из под пользователя root. Приведенные значения, (кроме -C 1) предустановленные в fping по-умолчанию, отклонение от этих значений может привести к отказу запуска fping (см. man fping – restrictions). Если у вас нет времени/желания/необходимости разбираться в указанных значениях — просто задайте пустой параметр icmpping (также в одно слово без квадратных скобок).
В разделе «Мониторинг — Последние данные» вы можете увидеть график, который будет формировать только что созданный вами «элемент данных» с простой проверкой.
UPD1
На момент публикации данного текста, доступны более новые версии платформы Zabbix, следите за новостями компании на сайте http://www.zabbix.com/. Если вы разворачиваете новую систему «с нуля», логично делать установку последней стабильной версии продукта. В случае, если у вас в работе уже имеется сервер zabbix с устаревшей версией (< 3.0), то после окончания знакомства с данной статьей, обязательно читаем замечания к обновлениям на сайте разрабочика: требуемые шаги для успешного обновления до Zabbix 3.0.
UPD2
Доступна Статья-дополнение по установке Zabbix 3.0 на CentOS 7.
На этом пожалуй все. Удачи.
Installing on CentOS or RHEL Zabbix Documentation 2.2 Установка из пакетов дистрибутивов Zabbix 2.0 packages for RHEL, CentOS, SL Zabbix server is not running Вход и настройка пользователя How to Disable SELinux Установка Zabbix Windows агента Поддерживаемые параметры в файле конфигурации Zabbix агента (Windows) Zabbix Documentation 2.0 — Простые проверкиВышел Zabbix 3.0
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
Установка 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. Принципиально ничего не изменилось, кроме версий установленных программ.
Онлайн курс Infrastructure as a code
Если у вас есть желание научиться автоматизировать свою работу, избавить себя и команду от рутины, рекомендую пройти онлайн курс Infrastructure as a code. в OTUS. Обучение длится 4 месяца.
Что даст вам этот курс:
- Познакомитесь с Terraform.
- Изучите систему управления конфигурацией Ansible.
- Познакомитесь с другими системами управления конфигурацией — Chef, Puppet, SaltStack.
- Узнаете, чем отличается изменяемая инфраструктура от неизменяемой, а также научитесь выбирать и управлять ей.
- В заключительном модуле изучите инструменты CI/CD: это GitLab и Jenkins
Смотрите подробнее программу по .
Установка веб-сервера
Управление сервером Zabbix будет осуществляться посредством веб-интерфейса. Для этого необходимо установить и настроить веб-сервер, СУБД и PHP.
СУБД
В данному инструкции мы будем использовать сервер баз данных mariadb.
Для установки вводим:
dnf install mariadb-server
Разрешаем автозапуск сервера баз данных и запускаем mariadb:
systemctl enable mariadb —now
Задаем пароль для суперпользователя СУБД:
mysqladmin -u root password
* после ввода команды система потребует ввести пароль два раза.
Веб-сервер
Для наших целей будем использовать веб-сервер NGINX. Для его установки вводим команду:
dnf install nginx
Запускаем nginx и разрешаем его автозапуск:
systemctl enable nginx —now
PHP и PHP-FPM
Интерфейс zabbix разработан на PHP — наш веб-сервер должен обрабатывать скрипы, написанные на нем. На момент написания инструкции веб-интерфейс Zabbix Server работал под php версии 5.4. Если установить на CentOS PHP 7, при установке zabbix-web возникнут проблемы.
Устанавливаем php и необходимые компоненты:
dnf install php php-fpm php-mysqli
Для настройки php, открываем файл:
vi /etc/php.ini
Редактируем следующие параметры:
date.timezone = «Europe/Moscow»
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
* где:
- date.timezone — задаем временную зону для PHP.
- max_execution_time — максимальное время работы скрипта. В данном примере, если он не успеет отработать за 300 секунд, PHP принудительно завершит его работу.
- post_max_size — максимальный размер загружаемых данных на сервер средствами PHP.
- max_input_time — время в секундах, за которое PHP должен разобрать входные данные GET и POST.
Запустим php-fpm:
systemctl enable php-fpm —now
NGINX + PHP
Для того, чтобы NGINX обрабатывал PHP, открываем конфигурационный файл:
vi /etc/nginx/nginx.conf
В разделах http — server добавляем настройку для обработки запросов php (location ~ \.php$):
http {
…
server {
listen 80 default_server;
…
location ~ \.php$ {
set $root_path /usr/share/nginx/html;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
}
}
…
}
* где /usr/share/nginx/html — корневой путь хранения скриптов.
Проверяем настройки nginx:
nginx -t
И перезагружаем его:
systemctl restart nginx
В домашнем каталоге NGINX создаем index.php со следующим содержимым:
vi /usr/share/nginx/html/index.php
<?php phpinfo(); ?>
Веб-сервер готов для работы с Zabbix Web.
Установка zabbix agent на CentOS 7
Добавим теперь хотя бы одного агента мониторинга, чтобы проверить работу системы. Устанавливать будем на этот же сервер. Делается это просто:
# yum -y install zabbix-agent
Для работы с сервером, который установлен локально на этой же машине, больше никаких настроек не надо делать. Если же вы будете устанавливать zabbix agent на удаленную машину, то в файле конфигурации агента /etc/zabbix/zabbix_agentd.conf нужно будет задать следующие параметры:
# mcedit /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.25 ServerActive=192.168.1.25 Hostname=srv10 # имя вашего узла мониторинга, которое будет указано на сервере zabbix
Запускаем агент и добавляем в автозагрузку:
# systemctl start zabbix-agent # systemctl enable zabbix-agent
Проверяем лог файл.
# cat /var/log/zabbix/zabbix_agentd.log 21197:20150912:212555.935 no active checks on server : host not monitored
У меня там следующая ошибка. Я знаю с чем она связана. На сервере по-умолчанию уже добавлен локальный host для мониторинга, но он отключен. Чтобы его включить, идем в раздел Configuration -> Hosts и активируем Zabbix server нажатием на Disabled, чтобы он стал Enabled.
Можно подождать, либо вручную перезапустить агент, чтобы сразу проверить изменения:
# systemctl restart zabbix-agent
Для надежности, проверяем еще раз лог файл на наличие ошибок. Их быть не должно. Агент заработал и начал отправлять данные на сервер. Чтобы проверить поступление данных, надо подождать пару минут и идти в раздел Monitoring -> Latest data. Выбрать там наш единственный хост и нажать Apply.
Видно, что данные уже начали поступать.
Теперь попробуем остановить агент и проверить, придет ли уведомление на почту. Идем в консоль и выключаем агента:
# systemctl stop zabbix-agent
Ждем минимум 5 минут. Именно такой интервал указан по-умолчанию для срабатывания триггера на недоступность агента. После этого проверяем Dashboard.
После возобновления работы агента, вы еще раз получите уведомление о том, что он теперь доступен.
With rpm and Downloaded RPM
After the server package, issue the following command as
‘root’:
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc ## install these dependencies from standard OS repositories yum install socat logrotate -y # This example assumes the CentOS 8 version of the package, suitable for # Red Hat 8, CentOS 8 and modern Fedora releases. # # For Red Hat 7 or CentOS 7, replace "el8" with "el7". yum install rabbitmq-server-3.9.11-1.el8.noarch.rpm
RabbitMQ public signing key can also be downloaded from rabbitmq.com:
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc ## install these dependencies from standard OS repositories yum install socat logrotate -y # This example assumes the CentOS 8 version of the package, suitable for # Red Hat 8, CentOS 8 and modern Fedora releases. # # For Red Hat 7 or CentOS 7, replace "el8" with "el7". yum install rabbitmq-server-3.9.11-1.el8.noarch.rpm
Log Files and Management
Server logs can be found under the configurable directory, which usually
defaults to /var/log/rabbitmq when RabbitMQ is installed via a Linux package manager.
RABBITMQ_LOG_BASE can be used to override log directory location.
Assuming a systemd-based distribution, system service logs can be
inspected using
journalctl --system
which requires superuser privileges.
Its output can be filtered to narrow it down to RabbitMQ-specific entries:
sudo journalctl --system | grep rabbitmq
The output will look similar to this:
Dec 26 11:03:04 localhost rabbitmq-server: ## ## Dec 26 11:03:04 localhost rabbitmq-server: ## ## RabbitMQ 3.8.17. Copyright (c) 2007-2021 VMware, Inc. or its affiliates. Dec 26 11:03:04 localhost rabbitmq-server: ########## Licensed under the MPL 2.0. Website: https://www.rabbitmq.com/ Dec 26 11:03:04 localhost rabbitmq-server: ###### ## Dec 26 11:03:04 localhost rabbitmq-server: ########## Logs: /var/log/rabbitmq/rabbit@localhost.log Dec 26 11:03:04 localhost rabbitmq-server: /var/log/rabbitmq/rabbit@localhost_upgrade.log Dec 26 11:03:04 localhost rabbitmq-server: Starting broker... Dec 26 11:03:05 localhost rabbitmq-server: systemd unit for activation check: "rabbitmq-server.service" Dec 26 11:03:06 localhost rabbitmq-server: completed with 6 plugins.
Log Rotation
The broker always appends to the log files, so a complete log history is retained.
logrotate is the recommended way of log file rotation and compression.
By default, the package will set up logrotate to run weekly on files located in default
/var/log/rabbitmq directory. Rotation configuration can be found in
/etc/logrotate.d/rabbitmq-server.
Настройка 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.
Заключение
На сегодня это все, что я хотел рассказать. С помощью этой пошаговой инструкции вы сможете быстро развернуть эффективную систему мониторинга для наблюдения за linux и windows системами.
Тема настройки мониторинга zabbix обширна и охватить ее в одном материале невозможно. Для расширения функционала и добавления различных элементов мониторинга используйте мои статьи из раздела zabbix. Все, что написано до этого материала, относится к версии 2.4, но оно не потеряло актуальность, все приемы, скрипты, шаблоны, все работает и соответствует текущей версии, можно смело пользоваться.
Заключение
Когда я только начинал настраивать распределенный мониторинг, мне очень хотелось иметь возможность установить zabbix proxy на windows. Это бы очень упростило задачу разворачиания мониторинга на всяких мелких удаленных объектах. Но увы, это не возможно. Программа есть только под linux, на windows только агент. Можно без проблем развернуть на любой виртуалке — hyperv, или даже virtualbox.
Я планирую написать подробню статью на основе своего опыта построения распределенного мониторинга в очень разнородной среде. Но пока не сделал это, дам подсказку для тех, кто будет разворачивать много proxy серверов. Сделайте образ виртуальной машины и просто копируйте его на новых объектах. Достаточно будет изменить только сетевые настройки и hostname в конфигурации proxy.