Введение
Я уже много раз рассказывал и описывал современную, бесплатную, популярную систему мониторинга 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.
Добавление устройства на 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
В одном из шаблонов был мониторинг сервиса BITS и соответствующий триггер, который срабатывает если служба BITS находится не в статусе Running.
На этом настройка Windows Agentа завершена.
Настройка сервера Zabbix
На сервере Zabbix мы делаем два действия:
- Создаем шаблон для мониторинга репликации.
- Привязываем к хосту шаблон.
Создание шаблона
Скачиваем шаблон mysql_repl_template.xml. Заходим на веб-портал управления сервером мониторинга с правами администратора. Переходим в раздел Настройка — Шаблоны:
Сверху справа кликаем по Импорт:
В открывшемся окне выбираем скачанный шаблон и нажимаем по Импорт:
В шаблонах должен появиться новый с названием «Template MySQL Replication Slave».
Настройка хоста
Переходим в раздел Настройка — Узлы сети:
Находим среди узлов наш сервер MySQL, который будем мониторить и переходим в его настройки.
На вкладке Шаблоны выбираем наш шаблон, который мы загрузили, добавляем его и обновляем настройки хоста:
Готово. При возникновении проблем репликации мы увидим предупреждение «MySQL: Replication Error».
Установка 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
Step 4 — Configuring Settings for the Zabbix Web Interface
The web interface lets you see reports and add hosts that you want to monitor, but it needs some initial setup before you can use it. Launch your browser and go to the address . On the first screen, you will see a welcome message. Click Next step to continue.
On the next screen, you will see the table that lists all of the prerequisites to run Zabbix.
All of the values in this table must be OK, so verify that they are. Be sure to scroll down and look at all of the prerequisites. Once you’ve verified that everything is ready to go, click Next step to proceed.
The next screen asks for database connection information.
You told the Zabbix server about your database, but the Zabbix web interface also needs access to the database to manage hosts and read data. Therefore enter the MySQL credentials you configured in Step 2 and click Next step to proceed.
On the next screen, you can leave the options at their default values.
The Name is optional; it is used in the web interface to distinguish one server from another in case you have several monitoring servers. Click Next step to proceed.
The next screen will show the pre-installation summary so you can confirm everything is correct.
Click Next step to proceed to the final screen.
The web interface setup is complete. This process creates the configuration file which you could back up and use in the future. Click Finish to proceed to the login screen. The default user is Admin and the password is zabbix.
Before you log in, set up the Zabbix agent on your second CentOS server.
Шаг Завершите установку Zabbix через браузер
После того, как все настройки настроены, остается только завершить установку через браузер. Поэтому запустите браузер и просмотрите адрес сервера, как показано:
http://server-ip/zabbix
Вы получите страницу приветствия, как показано: Нажмите « Следующий шаг », чтобы перейти к следующему шагу.
На следующей странице отображаются все предварительные условия, необходимые для установки Zabbix. Если отображаются какие-либо ошибки, нажмите кнопку « Назад » и установите недостающее. Если ошибок нет, как показано, нажмите « Следующий шаг », чтобы продолжить установку.
На следующем этапе предоставьте сведения о базе данных, как показано, и нажмите « Следующий шаг ».
Затем укажите имя вашего сервера базы данных, как указано в текстовом поле « Имя ». Оставьте остальные детали как есть и нажмите » Далее «.
На следующей странице представлена сводка предоставленной вами информации о базе данных. Если все в порядке, нажмите « Следующий шаг ». В противном случае вернитесь и при необходимости внесите исправления.
Если предоставленные вами данные верны, вы получите уведомление ниже о том, что вы успешно установили Zabbix сервер. Щелкните » Готово «.
Ниже отобразится страница входа в систему: Используйте Admin в качестве имени пользователя и zabbix в качестве пароля для входа.
Наконец, вы получите панель управления, как показано на рисунке.
Браво! вам успешно удалось установить Zabbix сервер на CentOS 8.
Настройка Zabbix Frontend
Идем в браузер и открываем адрес http://192.168.13.117. Вы должны увидеть установщик Zabbix 4.0.
Нажимаем Next step и начинаем настройку web интерфейса. На следующей странице будет проверка требований. У вас должны быть выполнены все требования. В зависимости от системы и версии php, информация будет в каждом случае разниться.
На следующем этапе указываем параметры доступа к базе данных, потом Zabbix server details. Там можно ничего не указывать, а оставить дефолтные параметры. Потом будет страница с проверкой введенных данных. Если все в порядке, то заканчивайте установку. В конце увидите сообщение: Congratulations! You have successfully installed Zabbix frontend.
После нажатия на Finish увидите окно авторизации Zabbix сервера.
Стандартная учетная запись для входа в web интерфейс zabbix следующая:
- Пользователь Admin
- Пароль zabbix
После логина увидите стандартный dashboard.
На этом установка бесплатного сервера мониторинга zabbix окончена. Можно приступать к настройке.
Видео
Привожу видеоролик по установке и настройке предыдущей версии zabbix. Принципиально ничего не изменилось, кроме версий установленных программ.
Онлайн курс Infrastructure as a code
Если у вас есть желание научиться автоматизировать свою работу, избавить себя и команду от рутины, рекомендую пройти онлайн курс Infrastructure as a code. в OTUS. Обучение длится 4 месяца.
Что даст вам этот курс:
- Познакомитесь с Terraform.
- Изучите систему управления конфигурацией Ansible.
- Познакомитесь с другими системами управления конфигурацией — Chef, Puppet, SaltStack.
- Узнаете, чем отличается изменяемая инфраструктура от неизменяемой, а также научитесь выбирать и управлять ей.
- В заключительном модуле изучите инструменты CI/CD: это GitLab и Jenkins
Смотрите подробнее программу по .
8: Тестовое оповещение
Теперь нужно убедиться, что Zabbix и Alerta интегрированы.
Сгенерируйте тестовое оповещение. По умолчанию Zabbix отслеживает объем свободного места на сервере. Создайте достаточно большой файл, чтобы вызвать предупреждение Zabbix об использовании файловой системы.
Примечание: Это нужно сделать на сервере Zabbix.
Затем определите, сколько свободного места у вас на сервере. Для этого можно использовать команду df:
Вы увидите такой вывод:
В этом случае свободное пространство составляет 18 ГБ.
Используйте команду fallocate, чтобы создать файл, который занимает более 80% свободного места на диске. Это должно запустить отправку оповещений:
Через несколько минут Zabbix выдаст оповещение о количестве свободного места на диске и запустит настроенное ранее действие, отправив уведомление в Alerta. Вы увидите это новое уведомление на панели управления Alerta.
Теперь можно удалить временный файл:
Через минуту Zabbix отправит оповещение о восстановлении. Предупреждение исчезнет из панели; все закрытые предупреждения можно найти во вкладке Closed.
AlertaCentOS 7NGINXuWSGIZabbix
Install Zabbix Agent
For CentOS/RHEL 7
dnf -y install http://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm dnf -y install zabbix-agent
/etc/zabbix/zabbix_agentd.confServer=
vi /etc/zabbix/zabbix_agentd.conf
### Option: Server # List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies. # Incoming connections will be accepted only from the hosts listed here. # If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally # and '::/0' will allow any IPv4 or IPv6 address. # '0.0.0.0/0' can be used to allow any IPv4 address. # Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com # # Mandatory: yes, if StartAgents is not explicitly set to 0 # Default: # Server= Server=Your_Zabbix_Server_IP
systemctl restart zabbix-agent
For CentOS/RHEL 8
dnf -y install http://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm dnf -y install zabbix-agent
/etc/zabbix/zabbix_agentd.confServer=
vi /etc/zabbix/zabbix_agentd.conf
### Option: Server # List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies. # Incoming connections will be accepted only from the hosts listed here. # If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally # and '::/0' will allow any IPv4 or IPv6 address. # '0.0.0.0/0' can be used to allow any IPv4 address. # Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com # # Mandatory: yes, if StartAgents is not explicitly set to 0 # Default: # Server= Server=Your_Zabbix_Server_IP
systemctl restart zabbix-agent
For Ubuntu 16
sudo dpkg -i http://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1%2Bxenial_all.deb sudo apt-get install zabbix-agent
/etc/zabbix/zabbix_agentd.confServer=
sudo nano /etc/zabbix/zabbix_agentd.conf
### Option: Server # List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies. # Incoming connections will be accepted only from the hosts listed here. # If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally # and '::/0' will allow any IPv4 or IPv6 address. # '0.0.0.0/0' can be used to allow any IPv4 address. # Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com # # Mandatory: yes, if StartAgents is not explicitly set to 0 # Default: # Server= Server=Your_Zabbix_Server_IP
sudo service zabbix-agent restart
For Ubuntu 18/19
sudo dpkg -i http://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1%2Bbionic_all.deb sudo apt-get install zabbix-agent
/etc/zabbix/zabbix_agentd.confServer=
sudo nano /etc/zabbix/zabbix_agentd.conf
### Option: Server # List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies. # Incoming connections will be accepted only from the hosts listed here. # If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally # and '::/0' will allow any IPv4 or IPv6 address. # '0.0.0.0/0' can be used to allow any IPv4 address. # Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com # # Mandatory: yes, if StartAgents is not explicitly set to 0 # Default: # Server= Server=Your_Zabbix_Server_IP
sudo systemctl restart zabbix-agent
Зачем нужен Zabbix proxy
Расскажу своими словами что такое zabbix proxy и зачем он нужен. Допустим у вас есть распределенная сеть, где отдельные сегменты никак не связаны друг с другом. То есть условно, у вас 5 разных сетей с адресацией 192.168.0.0/24. Вам нужно настроить мониторинг узлов в этих сетях. Сети ничего не знаю друг о друге, у них нет прямого IP, только доступ в интернет.
В таком случае вы устанавливаете zabbix сервер на внешний ip адрес, в каждом сегменте сети настраиваете прокси, который будет собирать данные с узлов в этом сегменте и отправлять их на основной сервер мониторинга. Все управление при этом происходит на основном сервере, достаточно только один раз подключить прокси к основному серверу. Схематично подобная схема изображена в документации с официального сайта:
Если у вас полностью связаная сеть, в которой каждый узел имеет прямой доступ к серверу мониторинга, proxy сервера имеет смысл устанавливать и использовать для распределения нагрузки. 100 узлов, отправляющиие данные напрямую на сервер мониторинга, нагружают его сильнее, чем прокси, который собирает данные с этих 100 узлов и отправляяет их на основной сервер.
Вроде понятно и доступно объяснил. Приступим теперь к установке zabbix proxy. Устанавливать будем на сервер под управлением CentOS 7. Если у вас его еще нет, то читайте об установке centos 7 и его первоначальной настройке. Требования к железу зависят от нагрузки на прокси, но в общем случае они будут не высоки. Для мониторинга 20-30 узлов я использовал виртуальную машину с 512 мб оперативной памяти и 10 гб диском. Сама прокси почти ничего не хранит, отправялет данные на сервер.
В качестве основного сервера мониторинга у нас будет выступать Zabbix 3. Если вы его еще не настроили, то рекомендую мою подробную статью с видео по установке и настройке zabbix. Дальше я буду считать, что у вас уже настроен сервер мониторинга, к которму мы будем подключать proxy и добавлять новые узлы из подключенного сегмента сети.
ДРУГИЕ МАТЕРИАЛЫ ПО ТЕМЕ
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
Configure PHP
The Zabbix installation process created an PHP configuration file that contains PHP settings. It is located in the directory /etc/php-fpm.d/. You just need to uncomment date.timezone parameter and update it with your timezone. You can check supported time zones on http://php.net/manual/en/timezones.php to find the right one for you.
vi /etc/php-fpm.d/zabbix.conf
user = apache group = apache listen = /run/php-fpm/zabbix.sock listen.acl_users = apache,nginx listen.allowed_clients = 127.0.0.1 pm = dynamic pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 php_value = files php_value = /var/lib/php/session php_value = 300 php_value = 128M php_value = 16M php_value = 2M php_value = 300 php_value = 10000 php_value = Asia/Karachi
systemctl restart httpd systemctl restart php-fpm systemctl enable php-fpm
Настройка мониторинга за процессами
На Zabbix сервере идем в стандартный шаблон Linux и добавляем туда 2 новых айтема:
- Process List — список процессов, ограниченный десятью с самой высокой нагрузкой на cpu. Сюда будем записывать информацию о процессах на сервере при срабатывании триггеров на повышенную нагрузку CPU.
- Full Process List — полный список всех процессов. Сюда запишем полный список всех процессов, когда сработает триггер на превышение максимально допустимого количества запущенных процессов на сервере.
Так выглядит первый айтем. Второй сделайте по аналогии.
Теперь идем на сервер с агентом и пробуем отправку данных в данный айтем. Для этого нам нужен будет zabbix_sender. Если у вас его нет, то установите.
# yum install zabbix-sender
Отправку данных проверяем следующим образом:
/usr/bin/zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -k process.list -o "`ps aux --sort=-pcpu,+pmem | awk 'NR<=10'`"
Я не буду подробно останавливаться на формате запросов с помощью zabbix_sender. Все это хорошо описано в документации. Теперь идем в веб интерфейс сервера и в разделе Последние данные смотрим на список процессов, который нам пришел с целевого сервера.
Ровно то, что нам было нужно. То же самое можно проверить с айтемом Full Process List, убрав в команде | awk ‘NR<=10’ в конце.
Далее нам нужно создать действие, которое будет запускать данную команду на сервере при срабатывании триггеров. Для этого идем в раздел Настройка -> Действия и добавляем новое.
Сохраняйте действие и можно проверять.
Настройка 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.
Заключение
Вот такую реализацию я придумал, когда потребовалось решить задачу. Один сервер постоянно донимал оповещениями по ночам. Нужно было понять, что его дергает в это время. Жаль, что у Zabbix из коробки нет реализации подобного информирования. Помню лет 5 назад был бесплатный тариф у мониторинга NewRelic. Можно было поставить агент мониторинга на сервер и потом смотреть очень удобные отчеты в веб интерфейсе. Никаких настроек не нужно было, все работало из коробки. Там были отражены все запущенные процессы на сервере на временном ряду со всеми остальными метриками. Это было очень удобно. Я нигде в бесплатном софте не видел такой реализации. Это примерно вот так выглядело.
Кстати, в первоначальной версии действия я просто отправлял список процессов на почту. Мне показалось это удобным. Можно было сразу же в почте, в соседнем письме с триггером, посмотреть список процессов. Но потом решил, что удобнее все же хранить историю в одном месте на сервере и настроил сбор данных туда. Хотя можно делать и то, и другое. Например, в действии можно указать другую команду к исполнению:
# ps aux --sort=-pcpu,+pmem | awk 'NR<=10' | mail -s "Process List" [email protected]
И вам на почту придет список запущенных процессов после активации триггера.
Онлайн курс «SRE практики и инструменты»
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «SRE практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и Linux. Обучение длится 3 месяц, после чего успешные выпускники курса смогут пройти собеседования у партнеров.
На курсе вы узнаете как:
- Внедрить SRE практики в своей организации
- Управлять надежностью, доступностью и эффективностью сервисов
- Управлять изменениями
- Осуществлять мониторинг
- Реагировать на инциденты и производительность
- Работать со следующим технологическим стеком: Linux, AWS, GCP, Kubernetes, Ansible, Terraform, Prometheus, Go, Python.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .