Zabbix настройка мониторинга linux

Обновлено: 05.07.2024

Грамотно настроенный мониторинг серверов, является своеобразной козырной картой в рукаве администратора. В данной статье мы рассмотрим установку и первоначальную настройку мониторинга средствами Zabbix. Он позволяет осуществлять мониторинг состояния сервера в целом, состояние его отдельных приложений, сетевого коммутационного оборудования, а также аппаратной части. Ключевой особенностью является возможность его использования как начинающим администраторам, так и опытным пользователям, обслуживающим десятки, а то и сотни серверов. Для первых существует достаточное количество уже готовых решений, которые можно добавить через web-интерфейс, для вторых гибкость позволяет мониторить сервисы с помощью своих скриптов.

Идея создания статьи обусловлена анализом обращений клиентов. Хостинг предоставляет гарантированные ресурсы виртуального или физического сервера, но его бесперебойное функционирование на уровне операционной системы опирается на плечи его администратора.

Zabbiх не требователен к ресурсам, но он позволяет не только оперативно проинформировать о возникшей проблеме, но и предотвратить её. Что немаловажно для функционирования сервисов в режиме 24\7\364.

Технические требования следующие:

  • 1 ядро CPU / 1ГБ памяти — до 20 наблюдаемых узлов сети
  • 2 ядра CPU / 2ГБ памяти — до 500 наблюдаемых узлов сети
  • 4 ядра CPU / 8ГБ памяти — более 1000 наблюдаемых узлов сети
  • 8 ядер CPU / 16ГБ памяти — более 10000 наблюдаемых узлов сети

Zabbix протестирован на следующих платформах: Linux, IBM AIX, FreeBSD, NetBS, OpenBSD, HP-UX, Mac X, Solaris, Windows: все версии для настольных компьютеров и серверов начиная с XP (только Zabbix агент)

Внимание! Автор статьи подразумевает, что вы устанавливаете Zabbix на «чистый» сервер. Установка на сервер с уже настроенными сервисами категорически не рекомендуется. Будут затронуты зависимости, которые могут привести к неработоспособности работающих приложений.

Оглавление

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

Подключаем репозиторий свежей версии Zabbix:

Приступаем к установке:

Проверим версию mariadb

. и выполним конфигурацию базы данных

На данном шаге вам будет предложено внести изменения в настройки безопасности вашей MySQL

Enter current password for root (enter for none):

Change the root password? [Y/n] n

Remove anonymous users? [Y/n] Y

Disallow root login remotely? [Y/n] Y

Remove test database and access to it? [Y/n] Y

Reload privilege tables now? [Y/n] Y

Подключимся к mysql:

. и продолжим конфигурацию. Первой командой мы создаем базу данных zabbixdb и настраиваем локали. Второй — назначаем полные привилегии пользователю zabbix на базу данных zabbixdb и назначаем пароль. Вместо StrongPassword придумайте свой сложный пароль, который будет иметь не менее 12 символов, состоять из латинских символов верхнего и нижнего регистров, а так же цифр. Затем

На следующем этапе выполним импорт данных

Вводим пароль, который мы придумали вместо StrongPassword, указанного в примере и ждем импорта. Процесс выполняется в фоновом режиме около минуты, успешным окончанием можно считать вновь пустую строку терминала для ввода команд root@dedicated:

Теперь приступим к настройке frontend. Реализовать это можно через нативный Apache, или Nginx. Принципиальной разницы нет, в нашем примере мы будем использовать Nginx+php-fpm.

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

Первым делом копируем дефолтный конфигурационный файл, который был сгенерирован при установке, чтобы в случае неудачных правок можно было вернуться к исходному состоянию:

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

Во избежания конфликта, переименуем ешё один дефолтный конфиг. Иначе вы получите ошибку «nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80, ignored.»

Финальная правка. При установке Zabbix, все каталоги создаются под пользователем www-data, и вы гарантированно в логах получите ошибку 502 Bad Gateway, а логи будут пестрить:

Правим в главном конфиге Nginx параметр user:

Проверим, правильно ли мы настроили Nginx

Ошибки отсутствуют. Перезапустим его:

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

Для корректной работы, на сервере должны прослушиваться порты 10050 (zabbix-server) и 10051 (zabbix-agent). Проверьте это командой

проверка работы портов на сервере

Подключимся к серверу мониторинга Zabbix по web-интерфейсу.

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

Проверка статуса OK

Проверяем, чтобы везде был статус ОК. Если по какой-то причине это не так, возвращаемся и вносим правки, пока не будет достигнут желаемый результат. С большой долей вероятности, ошибки могут быть вызваны неправильными параметрами в /etc/nginx/conf.d/zabbix.conf. Данное руководство справедливо для свежей версии Zabbix 4.4 на Debian 10. Next step

Настройка подключения к базе данных

Вносим свои данные, host, имя пользователя и название базы данных, которые мы создавали ранее, а так же пароль StrongPassword. Next step

Детали подключения к серверу бд

Можете оставить параметры по умолчанию или указать свои. Next step. Следующим шагом будет вывод указанных ранее параметров. Подтвердите их нажатием «Next step», и вы получите уведомление:

«Congratulations! You have successfully installed Zabbix frontend.

Configuration file "/usr/share/zabbix/conf/zabbix.conf.php" created.»

Нажмите Finish и перед вами появится окно аутентификации. Стандартные данные для аутентификации следующие:

Общий вид админпанели Zabbix

Добавление учетной записи администратора

Первым делом, следует настроить своего пользователя с правами суперпользователя, а стандартного удалить. Для этого переходим во вкладку «Administration»- «Users» и в правом верхнем углу нажимаем «Create User». Укажите его login, добавьте в группу администраторов. Так же обязательно зайдите во вкладку Permissions и измените роль с «Zaabix User» на «Zabbix Super Admin». После чего удалите лишних пользователей

Добавление пользователя в административную панель Zabbix

Удаление пользователей из админпанели Zabbix

Настройте e-mail оповещения. Для начала настроим ОТ КОГО будет отправляться оповещения. Перейдите во вкладку «Administration»- «Media types» и выберите Email. Сюда следует внести SMTP настройки вашего почтового ящика. Так же следует обратить внимание, что для корректной доставки почты следует для домена прописать PTR, DMARC и SPF записи, иначе отправленные уведомления могут быть отклонены сервером получателя.

Настройка e-mail оповещений

Выполнив конфигурацию отправителя, перейдем к настройке получателя. Перейдите во вкладку «Administration»- «Users», выберите пользователя freehost и перейдите во вкладку «Media». Добавьте один или несколько адресов, на которые будут отправлены оповещения об инцидентах.

Настройка получателя уведомлений

Включите отправку оповещений в событиях. Перейдите в «Configiraton» «Fctions», выберите все собыстя («Any») и активируйте нажатием enable.

Включение отправки оповещений

Сброс пароля пользователя Zabbix для Web-интерфейса

В прошлом разделе мы рассмотрели, как создавать новых пользователей. Если вам требуется изменить забытый пароль, делается это следующим образом. Подключаемся к MySQL

Отобразим список созданных БД

Подключаемся к нужной базе данных. В нашем случае это zabbixdb

Отобразим список доступных пользователей:

Назначаем новый пароль администратора

Изменение пароля пользователя для доступа к базе данных

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

Найдите директиву DBPassword и задайте новый пароль:

Измените настройки так же здесь:

Подключаемся к MySQL

Обратите внимание. В разделе «5. Сброс пароля пользователя Zabbix в MySQL» мы изменили пароль доступа по web-интерфейсу. Здесь мы меняем пароль доступа mysql-пользователя zabbix. Если Вы разворачиваете Zabbix из шаблона, который мы предоставляем для наших клиентов, это следует сделать обязательно.

Установка zabbix-agent

Прежде, чем мы перейдем к настройке оповещений, возьмем ещё один VPS и установим на него zabbix-agent

Отредактируем три параметра конфигурационного файла:

Если сервер по доменному имени, добавьте так же:

Перезагрузите агент и добавьте его в автозагрузку:

Настройка мониторинга

Добавим узел сети. Перейдите во вкладку «Configiraton» - «Hosts». В правом верхнем углу нажмите на «Create host» и заполните поля вкладок Host и Template

Добавления узла сети

Добавление узла сети в Zabbix

Готовых шаблонов (Template) великое множество. Ознакомитесь с ними, и выберите те, которые отвечают вашим требованиям. В качестве примера добавлено буквально пару шаблонов для демонстрации работы. Руководство будет не полным, если мы что-нибудь специально не поломаем, и не посмотрим результат. Давайте остановим наш VPS

Остановка VPS

Запуск VPS

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

Графики в Zabbix

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

Заключение

Zabbix очень гибок. Это книга рецептов, и она у каждого своя. На каждом узле сети мы можем настроить мониторинг чего угодно. Будь то программный сервис или аппаратная часть сервера. Вы можете настроить уведомление о дисковом пространстве, которое заканчивается, или увеличении потребления потреблении оперативной памяти сервера в целом, или отдельных приложений. Осуществлять мониторинг аппаратных и программных raid-массивов, состояние дисков на наличие ошибок. Он довольно хорошо документирован и успешно используется в крупных компаниях, в том числе и у нас. Изучение Zabbix требует определенной доли усидчивости и понимания функционирования сервера, но даже его базовое понимание позволит предотвратить аварийные ситуации. Но главное, он не требователен к ресурсам. У нас вы можете заказать облачный VPS c предустановленной системой Zabbix, а наша служба технической поддержки поможет с его базовой настройкой.

Всем, доброго времени! Довелось недавно настраивать систему мониторинга zabbix. Настраивал в первый раз. Поэтому решил сделать заметку здесь. Примеров на просторах интернета достаточно, но версии обновляются, новые «фичи» появляются.

Цель статьи, чтобы знания были открыты, кому нужно смог ими воспользоваться, а самое главное развитие it сообщества в рунете.

Содержание

  • Установка Zabbix 3.2 на Ubuntu 16.04
  • Настройка LDAP аутентификации AD
  • Установка Zabbix агентов на ОС Linux и ОС Windows

Установка Zabbix 3.2 на Ubuntu 16.04

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


Далее установим mysql сервер и веб сервер apache ( в процессе нужно придумать пароль для root mysql).


Затем переходим в директорию со временными файлами: cd /tmp

Скачаем и установим пакет, который добавит репозиторий для Zabbix сервера, для Ubuntu 16.04 необходимо выбрать версию “xenial”. Пакет скачиваем из офф.сайта.


Добавим репозиторий zabbix:


Обновляем кэш менеджера пакетов и убедимся в том, что репозиторий для Zabbix добавился:


Zabbix-сервер будет хранить всю информацию в MySQL и поэтому устанавливаем пакет для Zabbix сервера с поддержкой MySQL:


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


Теперь нужно создать в MySQL базу данных. Подключимся к MySQL:


Здесь мы подключились к бд, создаю бд с именем zabbix, дали полные права пользователю zabbix@localhost и установили для этого пользователя пароль.


Затем необходимо зайти в директорию где лежит скрипт, который создаст структуру для БД. Файл называется create.sql.gz

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

Запустить скрипт (файлов достаточно много в архиве придется подождать)


На этом этапе необходимо указать Zabbix-у, что нужно использовать локальную базу данных. Для этого необходимо раскомментировать параметр:

DBHost=localhost

Параметры DBName и DBUser будут активны, их трогать не придется.

Идем по пути в файл и редактируем параметры:

sudo vim /etc/zabbix/zabbix_server.conf

Настройки моего конфигураицонного файла:


image

Также следует создать А-запись для zabbix сервера с отмеченной галочкой PTR. Запускаем Zabbix сервер и смотрим его статус:


Затем необходимо зайти в конфиг apache и выбрать необходимый часовой пояс. Эти два параметра необходимо раскомментировать из блоков:

<IfModule mod_php5.c>
<IfModule mod_php 7.c>

Название параметра: php_value date.timezone Europe/Minsk

Далее перезагружаем веб-сервер:

На следующем этапе можно зайти по ip_адрес/zabbix и увидеть веб-интерфейс Zabbix.

Нужно пройти настройку мастера, но я на втором шаге “словил” ошибку. Поэтому нужно установить недостающие пакеты и ребутнуть веб-сервер:


Затем снова идем по пути ip_адрес/zabbix, жмем на мастере “next”. Из интересного, нужно указать пароль, который указывали при создании БД mysql, порт оставить по умолчанию, имя хоста оставить либо по умолчанию либо дать как у хоста. Затем проверяются все настройки и мы попадаем на веб-интерфейс управления Zabbix. Системный логин/пароль Admin/zabbix

Настройка LDAP аутентификации AD

Первое, что нужно это создать в пользователя в каталоге Active Directory. Группа у пользователя после создания «Пользователи домена». Этого достаточно для аутентификации на zabbix сервере.

Далее в веб-интерфейсе zabbix создаем точно такого же пользователя как в AD.
“Administration-Users-Create user” добавить в группу Zabbix administrators и установить пароль. Во вкладке “Permission” добавить права Zabbix Super Admin. (Всегда нужно создать пользователя в AD и аналогичного в zabbix).

Затем заходим в Zabbix под созданным пользователем, идем по пути “Administration-Authentification” на вкладку LDAP нужно заполнить поля Bind DN для созданного пользователя (zabbix). Чтобы ничего не перепутать берем значение из оснастки AD. Active Directory Administrative Center (Центр администрирования Active Directory).

Выбрать текущий домен и “пр.кн мыши” -“Свойства”, “Расширения”, “Редактор атрибутов”. Найти атрибут “distinguishedName” и скопировать значения в настройку zabbix поле Bind DN (к примеру example.lan).

image

Когда мы войдем в zabbix от пользователя AD, то стандартный пользователь UserName: Admin Password: zabbix уже не сможет зайти.

Для этого проделываем “пару” действий:

Подключаемся к mysql:


Выполняем команду которая отключит LDAP аутентификацию и активирует внутреннюю zabbix аутентификацию.Стандартный логин/пароль Admin/zabbix:

Установка Zabbix агентов на ОС Linux и ОС Windows

На моем Linux сервере уже установлен zabbix агент, но для «перфекционизма» я хочу использовать последнюю версию агента. Для просмотра версии zabbix агента выполняем команду:


Переходим во временную директорию, скачиваем последнюю версию zabbix и устанавливаем агента:

cd /tmp

Затем настроем конфигурационный файл zabbix. Лично у меня опыт с zabbix не большой и по примеру я брал параметры из статей в разделе мануал и изучал их в официальной документации zabbix. Этих параметров хватило для стабильной работы агента. Проблем с ним не возникало.

sudo vi /etc/zabbix/zabbix_agentd.conf

Необходимо отредактировать следующие параметры:


Параметры «Server» и «ServerActive» — это полное имя (FQDN) пк, на котором крутится zabbix сервер.

«Hostname» — имя пк на который устанавливаем агента.

После редактирования нужных параметров, перезагружаем zabbix агент:


Добавим zabbix агент в автозагрузку:


Настройки Linux хоста на zabbix сервере

В веб-интерфейсе zabbix создаем хост, который будем «мониторить» (скрин расписан по шагам)

image

Указываем его имя и добавляем в нужную группу. Хост я указываю по DNS имени, так как на хосте Zabbix у меня корректно настроены параметры для взаимодействия с внутренней DNS инфраструктурой. Если у вас есть домен и настроен DNS, то вам следует в конфигурационный файл сетевых настроек добавить две записи.

sudo vi /etc/network/interfaces

image

*Имя должно совпадать с именем пк в сети.

Далее на вкладке Templates “линкуем” к нашему хосту, стандартный шаблон мониторинга Linux систем и доступу к ssh (по желанию):

image

Затем переходим во вкладку «host» и наблюдаем индикатор zabbix агента, его рабочее состояние отображается в зеленом цвете. Статус должен быть «Enabled». После того как мы применили шаблон, стандартный набор параметров начал мониториться. Их посмотреть можно в настройках хоста вкладка “items” и “triggers”.

Также возможно редактировать «items» и «triggers» удалять или добавлять параметры.

На скриншоте показано рабочее состояние, это означает, что производится мониторинг.

image

Установим zabbix агент на Windows. В моем случае это Hyper-V Server 2012R2 без Gui.
Агента скачиваем с официального сайта Zabbix, выбрать для платформы Windows.

На консольном Hyper-V у меня установлен бесплатный двухпанельный файловый менеджер Unreal Commander. Поэтому распаковываю архив я с помощью него, затем сохраняю два файла в корень “диска C”:

zabbix_agentd.exe
zabbix_agentd.conf

На начальном этапе конфигурируем Брандмауэр Windows. Следует добавить входящее правило разрешающее подключение к TCP порту 10050. Перехожу к установке агента zabbix и импортирую конфиг.файл:


Затем по аналогии с настройкой агента для Linux вношу необходимые параметры в конфигурационный файл zabbix_agentd.conf

Изменение файла производится с помощью текстового редактора notepad ++.

Если всё прошло успешно, то никаких предупреждений не увидим. Затем нужно запустить службу Zabbix Agent.

В cmd ведем taskmgr и правой кнопкой запустим службу. Аналогично через консоль:


Если необходимо удалить службу и конфигурационный файл, то выполняем команду:


Процедура создание хоста в Zabbix аналогична Linux, отличие заключается в том, что применяется стандартный шаблон для Windows систем (Template OS Windows).

Русификация Zabbix

Для того, чтобы веб-интерфейс Zabbix отображался на русском языке, необходимо русифицировать консоль (самого Linux сервера, на котором установлен Zabbix).

Просмотр какие установлены локализаций:


Просмотр доступных локализаций (относительно русской):


Устанавливаю нужную локализацию:


Перезагрузить apache и выбрать русский язык в веб- интерфейсе Zabbix:

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

Введение

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

То же самое на Debian 10, если предпочитаете его:

В заббикс существуют различные способы получать данные для мониторинга. Наиболее распространенные источники информации:

  • Zabbix агент. Устанавливается на наблюдаемую машину и отправляет данные на сервер мониторинга.
  • SNMP агент. Чаще всего присутствует на устройстве, либо может быть установлен на сервер.
  • Простые проверки - simple check. Выполняются непосредственно на сервере zabbix с помощью встроенных инструментов, не требуют дополнительных действий со стороны хоста.
  • Внешние проверки - external checks. Как и простые проверки выполняются на сервере мониторинга, но не встроенными средствами, а внешними скриптами.

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

Дальше придумал через UserParameter запускать какой-нибудь скрипт, который будет проверять запущен ли сервис в системе или нет. Например с помощью ps ax | grep squid. В принципе, рабочий вариант, но мне казалось, что такую простую задачу можно решить проще и быстрее, без создания на каждом хосте скрипта и изменения файла конфигурации. И я не ошибся. Есть 2 различных способа мониторинга служб (сервисов) в linux с помощью zabbix. Рассмотрим первый из них.

Описание работы простых проверок (simple check)

Стал искать материал на эту тему и прочитал про simple check (простые проверки) в zabbix. Оказалось, это то, что нужно. Их можно использовать для безагентских проверок удаленных сервисов. При этом требуется минимум настроек и только на сервере. Можно создать шаблон и распространить на любое количество хостов.

Принцип работы простых проверок следующий. Вы создаете item, в нем указываете тип simple check, в качестве ключа выбираете net.tcp.service[сервис,<ip>,<порт>], указываете соответствующие параметры в скобках и все. Сервер сам начинает опрашивать указанный сервис и возвращать в зависимости от его доступности 0 или 1. Устанавливать агент на хост не нужно. Мониторить можно любую сетевую службу, к которой есть доступ по tcp.

Возвращаемые значения net.tcp.service
0 сервис недоступен
1 сервис работает

Мониторинг доступности сервиса по сети

В качестве примера настроим мониторинг доступности прокси сервера squid. Он запущен на linux сервере и этот хост уже добавлен на сервер мониторинга. Данные поступают с помощью агента, но мы не будет его использовать. Просто создадим одиночный item для проверки доступности squid и trigger для отправки уведомления, если сервис не работает. В данном примере я рассмотрю настройку на примере конкретного хоста. Если у вас несколько серверов с squid, которые вы хотите мониторить, то все элементы лучше создать не отдельно на каждом хосте, а сразу сделать template и назначить его нужным хостам.

Итак, идем в Configuration -> Hosts и выбираем там хост, на котором установлен squid. Переходим в раздел Items и нажимаем Create item.

создание item

Заполняем необходимые параметры элемента.

параметры мониторинга squid

Обязательно заполнить первые 3, остальные на ваше усмотрение. Я считаю, что проверять каждые 30 секунд и хранить 90 дней информацию излишне, поэтому изменяю эти параметры в сторону увеличения.

Squid status Имя итема.
Simple check Тип итема.
net.tcp.service[tcp,,3128] Проверять tcp порт 3128 на указанном хосте. Если вы проверяете статус службы, расположенной не на том же хосте, к которому прикрепляете item, то после первой запятой можно указать необходимый адрес.

Сразу создадим триггер, который в случае возврата в последних двух проверках значения итемом 0, будет отправлять уведомление о том, что служба недоступна. Для этого идем в раздел triggers и жмем Create trigger. Заполняем параметры элемента.

создание триггера оповещения недоступности сервиса

Выражение =0 означает, что триггер срабатывает, если 2 последних значения были равны 0.

Ждем пару минут и идем в Latest data проверять поступаемые значения.

статус мониторинга squid

Чтобы проверить работу триггера, достаточно зайти на сервер и остановить squid. Если вы все сделали правильно, то после второй проверки, которая определит, что squid не отвечает по заданному адресу, вы получите уведомление на почту об этом. Если у вас не настроены или не работают уведомления на почту в zabbix, то читайте мою статью на эту тему.

Мониторинг локальной службы в linux

С мониторингом удаленного tcp сервиса разобрались, а что делать, если служба работает локально и к ней невозможно подключиться из вне. Тут уже не обойтись без установки zabbix агента. Если он установлен на хосте, то можно воспользоваться итемом с ключом proc.num. Этот ключ возвращает в качестве значения количество запущенных процессов. И если таких процессов больше одного, можно считать, что служба запущена.

Рассмотрим на примере мониторинга службы postgrey, реализующей greylist для борьбы со спамом. Она работает локально на почтовом сервере linux и является критическим сервисом, так как без него почтовый сервер postfix не будет принимать почту, выдавая временную ошибку почтовой системы. Проверим работу ключа proc.num:

Все в порядке, zabbix агент возвращает значение 1 при запущенном сервисе. Идем на сервер мониторинга, выбираем хост или шаблон и создаем новый item.

мониторинг сервиса в linux

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

Создаем триггер с оповещением о недоступности сервиса. При последних двух значениях равных 0 срабатываем.

триггер оповещения о недоступности сервиса

Я настраиваю триггер в шаблоне, поэтому сразу для удобства в названии триггера указываю маску для имени, чтобы было понятно в оповещении, на каком хосте сработал триггер. Как обычно, проверить поступаемые значения можно в Latest data.

мониторинг почтового сервера

Вот и все. Мы настроили мониторинг локальных служб linux в заббиксе.

Заключение

В своем материале я рассмотрел два различных способа, с помощью которых можно мониторить любой удаленный сервис по протоколу tcp, либо локальную службу на сервере linux. Конкретно в моих примерах можно было воспользоваться вторым способом в обоих случаях. Я этого не сделал, потому что первым способом я не просто проверяю, что служба запущена, я еще и обращаюсь к ней по сети и проверяю ее корректную работу для удаленного пользователя.

Разница тут получается вот в чем. Допустим, сервер squid у вас запущен и работает на сервере. Проверка работы локальной службы показывает, что сервис работает и возвращает значение 1. Но к примеру, вы настраивали firewall и где-то ошиблись. Сервис стал недоступен по сети, пользователи не могут им пользоваться. При этом мониторинг будет показывать, что все в порядке, служба запущена, хотя реально она не может обслужить запросы пользователей. В таком случай только удаленная проверка покажет, что с доступностью сервиса проблемы и надо что-то делать.

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

Сервер Zabbix используется для сбора и анализа информации о состоянии узлов сети. В данной статье будет рассмотрен процесс его установки и развертывания веб-интерфейса для его управления. В качестве сервера баз данных мы будем использовать MariaDB/MySQL. Версия операционной системы, которая использовалась для написания инструкции — 18.04 (LTS), версия Zabbix — 4.2.

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

Перед установкой Zabbix выполняем подготовительные процедуры.

1. Правильное время

Для получения актуальной информации необходимо, чтобы на сервере было правильное время.

Для этого сначала задаем правильную временную зону:

timedatectl set-timezone Europe/Moscow

* в данном примере задается московское время.

Затем устанавливаем и запускаем сервис синхронизации времени:

apt-get install chrony

systemctl enable chrony

systemctl start chrony

2. Настройка брандмауэра

Для работы сервера, открываем следующие порты:

ufw allow 80,443,10050,10051/tcp

ufw allow 10050,10051/udp

Установка веб-сервера

Управление сервером Zabbix будет осуществляться посредством веб-интерфейса. Для этого необходимо установить и настроить веб-сервер, СУБД и PHP.

В данному инструкции мы будем использовать сервер баз данных mariadb.

Для установки вводим:

apt-get install mariadb-server

Разрешаем автозапуск сервера баз данных и запускаем mariadb:

systemctl enable mariadb

systemctl start mariadb

Задаем пароль для суперпользователя СУБД:

mysqladmin -u root password

* после ввода команды система потребует ввести пароль два раза.

Веб-сервер

Для наших целей будем использовать веб-сервер NGINX.

Для его установки вводим команду:

apt-get install nginx

Запускаем nginx и разрешаем его автозапуск:

systemctl enable nginx

systemctl start nginx

Окно приветствия NGINX

PHP и PHP-FPM

Интерфейс zabbix разработан на PHP — наш веб-сервер должен обрабатывать скрипты, написанные на нем.

Устанавливаем php и необходимые компоненты:

apt-get install php php-fpm php-mysql php-pear php-cgi php-common php-ldap php-mbstring php-snmp php-gd php-xml php-gettext php-bcmath

Для настройки php, открываем файл:

* где 7.2 — версия PHP. В вашем случае это может быть другая версия. Проверить можно командой php -v.

Редактируем следующие параметры:

date.timezone = "Europe/Moscow"
.
max_execution_time = 300
.
post_max_size = 16M
.
max_input_time = 300
.
max_input_vars = 10000

Разрешим запуск php-fpm и перезапустим его:

systemctl enable php7.2-fpm

systemctl restart php7.2-fpm

NGINX + PHP

Для того, чтобы NGINX обрабатывал PHP, открываем конфигурационный файл:

В секции location добавляем параметр index:

Внутри секции server добавим следующее:

\.php$ set $root_path /var/www/html;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
>

Проверяем настройки nginx:

И перезагружаем его:

systemctl restart nginx

Создаем index.php со следующим содержимым:

Сводная информация по PHP

Веб-сервер готов для работы с Zabbix Web.

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

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

Установка

Копируем ссылку на нужный релиз Zabbix

Скачиваем файл репозитория командой:

dpkg -i zabbix-release_4.2-1+bionic_all.deb

Обновляем списки пакетов:

Устанавливаем сервер, вводя команду:

apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-get

Настройка базы данных

Создаем базу данных:

> CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_bin;

* мы создали базу zabbix.

Создаем пользователя для подключения и работы с созданной базой:

* в данном примете мы создали пользователя zabbix с доступом к базе zabbix и паролем zabbixpassword.

Выходим из sql-оболочки:

В составе zabbix идет готовая схема для СУБД MySQL/MariaDB или postgreSQL. В нашем случае, нам нужен MySQL.

Для применения схемы переходим в каталог:

Распаковываем архив с дампом базы:

Восстанавливаем базу их дампа:

mysql -v -u root -p zabbix < create.sql

* после ввода команды система запросит пароль. Необходимо ввести пароль, который мы задали после установки mariadb.

Настройка zabbix

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

* мы настраиваем портал на подключение к базе с паролем zabbixpassword, который задали при создании базы для zabbix.

И проверяем следующие строки:

* имя базы и пользователя должны быть zabbix (как мы и создали в mariadb).

Создаем каталог для инклудов конфигурационных файлов (по какой-то причине, он может быть не создан при установке):

Также создаем каталог для логов и задаем владельца:

chown zabbix:zabbix /var/log/zabbix-server

Запуск zabbix-server

Разрешаем автозапуск сервера мониторинга:

systemctl enable zabbix-server

После запускаем сам сервер zabbix:

systemctl start zabbix-server

Настройка nginx

При установке zabbix-web файлы портала копируются в каталог /usr/share/zabbix. Наш веб-сервер работает с каталогом /var/www/html.

Меняем это — открываем конфигурационный файл nginx:

Редактируем параметры root и set $root_path:

.
root /usr/share/zabbix;
.
set $root_path /usr/share/zabbix;
.

systemctl restart nginx

Установка портала для управления Zabbix

Кликаем по ссылке Next Step для начала установки Zabbix

В следующем окне внимательно смотрим на результаты проверки нашего веб-сервера — справа мы должны увидеть все OK. Если это не так, проверяем настройки и исправляем предупреждения и ошибки, после перезапускаем страницу F5 для повторной проверки настроек.

Когда все результаты будут OK, кликаем по Next Step:

Кликаем по Next Step для продолжения установки Zabbix

В следующем окне мы оставляем настройки подключения к базе как есть — дополнительно прописываем пароль, который задали при создании пользователя zabbix. После нажимаем Next Step:

Вводим пароль для пользователя Zabbix

* в нашем случае, пароль был zabbixpassword;

В следующем окне оставляем все как есть:

Вводим название сервера Zabbix

. и нажимаем Next Step.

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

Установка завершена — нажимаем Finish:

Установка Zabbix завершена

В открывшемся окне вводим логин Admin и пароль zabbix (по умолчанию) — откроется окно со сводной информацией по мониторингу:

Сводная информация по мониторингу Zabbix

Zabbix Agent

В качестве примера установим и настроим zabbix agent на наш сервер. Так как мы уже устанавливали репозиторий, установка агента выполняется командой:

apt-get install zabbix-agent

Откроем конфигурационный файл:

Отредактируем следующую опцию:

* в данном примере мы указываем агенту сервер Zabbix — мы может указать его имя или IP-адрес.

Читайте также: