Автозапуск zabbix agent centos
Zabbix — распределенная система мониторинга, состоящая из четырех основных компонентов:
- Zabbix-сервер. Ядро системы мониторинга. Компонент отвечает за визуализацию, агрегацию и аналитику данных, оповещения, управление распределенными компонентами (прокси и агентами). В качестве веб-сервера вендор позволяет использовать Apache или Nginx.
- Zabbix-прокси. Этот компонент отвечает за управление Zabbix-агентами. Использование прокси необязательно, но позволяет снизить нагрузку на Zabbix-сервер за счет переноса с него функций управления агентами и предобработки данных (этот функционал появился в пятой версии Zabbix).
- Zabbix-агент. Агент — конечный компонент инфраструктуры мониторинга. Выполняет сбор и отправку данных о производительности на Zabbix-прокси или Zabbix-сервер.
- База данных Zabbix. Хранилище метрик производительности. Вендор поддерживает реляционные базы данных: MySQL, PostgreSQL, SQL Server, Oracle. Обращаем внимание, что с версии 5.0 прекращена поддержка базы данных IBM DB2 .
Далее установим репозитории ПО. Это необходимо для получения актуального набора пакетов с компонентами Zabbix и PostgreSQL.
Репозитории с актуальными версиями устанавливаемых компонентов для различных платформ можно найти на сайте производителей:
Следующий шаг — установка Zabbix-сервера и Zabbix-агента:
Теперь внесем изменения в конфигурацию репозитория Zabbix: нужно включить zabbix frontend в файле конфигурации /etc/yum.repos.d/zabbix.repo, изменив значение ключа enabled со значения 0 на значение 1.
name=Zabbix Official Repository frontend - $ basearchУстановим Red Hat Software Collections для упрощения процесса дальнейшей настройки:
Следующий шаг — установка PostgreSQL и других необходимых пакетов. Обратите внимание, что в нашем примере мы работаем с локальным хранилищем на базе PostgreSQL (в случае с MySQL имя пакета для Zabbix-сервера будет отличаться).
Инициализируем, настроим автозапуск и запустим БД PostgreSQL:
После успешного запуска создадим базу данных для Zabbix и пользователя в ней. Первая команда запросит пароль:
Внесем изменения в конфигурационный файл
/var/lib/pgsql/12/data/pg_hba.conf
для корректного подключения к БД PostgreSQL с паролем. Метод для обоих подключений должен быть md5:
После создания пользователя организуем для него схему по умолчанию:
Теперь впишите созданный для БД пароль в конфигурационный файл Zabbix
/etc/zabbix/zabbix_server.conf
в параметры DBHost, DBName, DBSchema, DBUser и DBPassword.
Настроим NGINX для его корректной работы в Zabbix. Настройки выполняются в конфигурационном файле
/etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
Необходимо раскомментировать две строки и указать IP-адрес или имя сервера:
listen 80;
server_name <ip адрес или имя сервера>;
Следующий файл, который нужно скорректировать, —
/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf.
Вносим изменения в двух местах:
Теперь запускаем сервисы Zabbix и добавляем их в автозапуск:
systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
Если на предыдущих шагах все было сделано верно, при переходе по имени или адресу сервера в браузере откроется начальное окно настройки Zabbix 5.0:
Переходим на экран Configure DB connection и указываем реквизиты подключения к БД:
На экране Zabbix server details — имя хоста, на котором установлен Zabbix, порт должен остаться указанным по умолчанию:
Переходим на последний экран и нажимаем Finish. Настройка завершена.
Стандартная учетная запись для входа: Admin с паролем zabbix.
Zabbix готов к работе, и можно приступать к его настройке. В некоторых ситуациях для корректной работы системы необходимо отключить SElinux.
Установка Zabbix в виде Docker-контейнера
Быстрая установка — выполняется за 10 минут или меньше. Добавим репозиторий Docker и установим необходимые пакеты:
Следующий шаг — клонирование репозитория Zabbix с Github:
Перейдем в клонированный репозиторий. Команда ls покажет имеющиеся объекты:
agent docker-compose _ v3 _ centos _ mysql _ local . yaml java-gateway snmptraps agent2 docker-compose _ v3 _ centos _ pgsql _ latest . yaml kubernetes . yaml web-apache-mysql build . sh docker-compose _ v3 _ centos _ pgsql _ local . yaml LICENSE web-apache-pgsql docker-compose _ v3 _ alpine _ mysql _ latest . yaml docker-compose _ v3 _ ubuntu _ mysql _ latest . yaml proxy-mysql web-nginx-mysql docker-compose _ v3 _ alpine _ mysql _ local . yaml docker-compose _ v3 _ ubuntu _ mysql _ local . yaml proxy-sqlite3 web-nginx-pgsql docker-compose _ v3 _ alpine _ pgsql _ latest . yaml docker-compose _ v3 _ ubuntu _ pgsql _ latest . yaml README . md zabbix-appliance docker-compose _ v3 _ alpine _ pgsql _ local . yaml docker-compose _ v3 _ ubuntu _ pgsql _ local . yaml server-mysql zbx _ env docker-compose _ v3 _ centos _ mysql _ latest . yaml generate-stackbrew-library . sh server-pgsqlЗапустим демон Docker:
Соберем и запустим контейнеры с Zabbix:
После выполнения команды выше запустятся компоненты Zabbix, можно переходить в веб-интерфейс:
Настройка и интеграция Zabbix 5
Добавление пользователя
Каждому пользователю в Zabbix соотнесены имя пользователя и пароль — реквизиты, с которыми можно войти в систему. Все пароли в Zabbix хранятся в зашифрованном виде. При необходимости можно настроить авторизацию пользователей через Active Directory или LDAP . В этой статье мы рассмотрим работу встроенных в Zabbix пользователей.
В Zabbix каждый пользователь должен входить в группу. На основе групп в Zabbix присваиваются те или иные права.
Для добавления пользователя в веб-интерфейсе Zabbix необходимо перейти на представление Administration — Users и в верхнем правом углу нажать Create User.
После сохранения этих данных можно нажать Add на вкладке User и сохранить созданного пользователя.
Чтобы сменить пароль любого пользователя, на представлении Administration — Users нужно кликнуть на соответствующего пользователя, нажать Change password и ввести новый пароль.
Аналогичным образом создаем группу пользователей. На представлении Administration — Groups в верхнем правом углу нажмем Create user group.
Таким образом, группа создана, ей предоставлен требуемый уровень прав и привязан пользователь.
Низкоуровневое обнаружение (Low Level Discovery, LLD )
Низкоуровневое обнаружение позволяет автоматически ставить на мониторинг динамические экземпляры узлов. Например, файловые системы или сетевые интерфейсы, которые добавят администраторы, автоматически обнаружатся и появятся на мониторинге. Правила автоматического обнаружения настраиваются в рамках шаблона.
Ниже, в качестве примера, Discovery Rules (правила обнаружения) для шаблона Windows. Здесь их четыре для следующих сущностей:
- файловых систем,
- сетевых интерфейсов,
- физических дисков,
- сервисов.
Рассмотрим устройство правила обнаружения для файловых систем. В поле Key указан элемент данных vfs.fs.discovery, встроенный в Zabbix. Этот элемент возвращает список файловых систем, примонтированных к серверу. Другие встроенные элементы данных собраны на специальной странице производителя.
На вкладке Filters перечислены прототипы данных, которые в случае обнаружения новых элементов распознают их и записывают в БД.
В Zabbix возможно добавление собственных элементов данных, собственных фильтров и макросов.
Изменение шаблонов Zabbix
Шаблоны включают в себя:
- приложения (Applications),
- экземпляры (Items),
- макросы (Macros),
- триггеры (Triggers),
- правила обнаружения (Discovery rules),
- другие элементы данных.
Каждый из этих элементов отвечает за те или иные возможности. В статье мы разберем формирование пороговых схем в триггерах на примере шаблона для Windows и его части — шаблона для файловых систем.
В примере ниже мы видим прототипы триггеров, которые соответствуют порогам по файловым системам серверов Windows. Чтобы изменить пороговую схему, достаточно перейти в нужный шаблон и внести корректировки.
Получить подробную информацию о создании выражений для настройки порогов можно в документации на сайте Zabbix.
Zabbix Proxy
Zabbix Proxy — это специальный сервис, который работает на выделенном сервере. Он обеспечивает буферизацию поступающих от агентов данных и их дальнейшую трансляцию в сторону Zabbix-сервера. Zabbix Proxy использует отдельную базу данных и поддерживает SQLite, MySQL и PostgreSQL.
Сервис эффективно использовать для сбора метрик с агентов в выделенных или удаленных сетях (за файерволом), участков инфраструктуры с ненадежной связью и для снижения нагрузки на Zabbix-сервер. Начиная с версии 5.0 прокси поддерживает предобработку данных на своей стороне.
Интеграция Zabbix с внешними системами
В этом разделе разберем возможности интеграции Zabbix с системой визуализации Grafana, которую можно использовать для отображения статусов, графиков, значений и других типов данных. Для ускорения процесса установим и запустим Grafana в виде Docker-контейнера.
После установки удостоверимся, что контейнер с Grafana выполняется:
Используя ID контейнера, установим специализированный плагин для Zabbix и перезагрузим контейнер:
Zabbix — комплексное решение для мониторинга серверов, сетевых устройств и сервисов, позволяющее обрабатывать огромное количество метрик.
С 5-ой версией в Zabbix пришло множество улучшений, среди которых множество новых шаблонов и плагинов для различных сервисов, новые интеграции с системами оповещений и уведомлений, улучшена визуализация, а так же улучшена безопасность, за счет добавления пользовательских секретных макросов для хранения такой чувствительной информации как пароли и API-ключи и возможности включить шифрование между компонентами Zabbix с использованием TLS.
При всей противоречивости программного комплекса Zabbix, на сегодняшний день сложно представить какую либо систему мониторинга без его использования. Часто бывает, что стоит задача быстро развернуть такую систему мониторинга, а настройка Zabbix из коробки занимает много времени, поэтому специально для вас мы подготовитли образ Zabbix в нашем Маркетплейс.
Как мы создавали этот образ: требования к серверу
Для использования Zabbix 5 рекомендуется использовать 2 Гб RAM и 2 ядра CPU.
Основные файлы Zabbix занимают около 20 Мб, дополнительно вам понадобится место для хранения базы данных, резервных копий, которое будет зависить от количества узлов которые вы планируете мониторить и количества хранимых метрик.
Веб-интерфейс Zabbix может использовать Apache или Nginx с PHP 7.2+, а в качестве базы данных MySQL, PostgreSQL, Oracle или SQLite.
Мы будем создавать образ с использованием Nginx и MySQL.
Подготовка образа
Обновим установленные пакеты до последней версии:
Применим новые правила файрвола:
Запустим и включим сервер Nginx:
Установим PHP, PHP-FPM, и требуемые модули PHP:
Установим MySQL Server:
Включим и запустим сервер MySQL:
Так как мы делаем шаблон для VDS, а они могут быть медленными, добавим задержку старта mysqld 30 секунд, иначе могут быть проблемы со стартом сервера при первоначальной загрузке системы:
Изменим владельца каталога сессий PHP так же соответственно на nginx:
Удалим строки с коментариями из файла конфигурации /etc/nginx/nginx.conf (что бы не было двойных срабатываний для sed):
Добавим в /etc/nginx/nginx.conf настройки компрессии gzip
Добавим в /etc/nginx/nginx.conf настройки индексного файла index.php :
Добавим настройки для дефолтного сервера обработку php через сокет php-fpm, отключим лог для статических файлов, увеличим время expire, отключим лог доступа и ошибок для favicon.ico и robots.txt и запретим доступ к файлам .ht для всех:
Установим wget требуемый для установки certbot :
Скачаем исполняемый файл certbot с оффсайта:
Переместим certbot в /usr/local/bin/ :
И назначим права и владельцем root:
Установим зависимости certbot: (ответ Y в конвеер на вопрос установки зависимостей, и --install-only , что бы не инициировать установку сертификатов на данном этапе):
Установим репозиторий Zabbix, что бы дать пользователю возможность его без проблем обновлять:
Установим сервер, агент и утилиты Zabbix:
На данном этапе мы создадим пользователя с пустым паролем и базу данных для Zabbix и загрузим схему, что бы минимализировать действия пользователя при запуске VDS из шаблона.
Пароли будут сгенерированы по запросу пользователя после развертывания сервера из образа, так как, очевидно сохранять какие либо пароли в шаблоне небезопасно.
Создадим базу данных Zabbix (так же можно запустить клиент mysql и вводить команды заключенные в двойные кавычки в интерактивном режиме):
Создадим пользователя mysql zabbix с пустым паролем:
Предоставим все привелегии пользователю zabbix на базу zabbix
Загрузим схему zabbix в базу данных:
Установим шаблон конфигурации Zabbix для Nginx:
Удалим подстроку из дефолтного конфига nginx, т.к. default_server будет определен в zabbix.conf :
Добавим строку default_server в конфигурацию сервера zabbix для Nginx:
Изменим пользователя PHP-FPM с apache на nginx для Zabbix:
Установим временную зону в php.ini (Zabbix проверяет наличие этой настройки при установке):
Назначим владельцем каталога /etc/zabbix nginx (для корректной записи конфигурации веб-сервером):
Назначим группу каталога zabbix для /etc/zabbix/zabbix_* (Для чтения файлов конфигурации Zabbix сервером и агентом):
Перезапустим и активируем сервисы Zabbix server и Zabbix agent:
Далее создадим скрипт в домашнем каталоге root который по запросу пользователя сгенерирует и установит пароли для root и zabbix и скорректирует их в конфигурации сервера Zabbix и веб-интерфейса Zabbix. Воспользуемся перенаправлением heredoc с делимитером POSTINSTALL , что бы записать скрипт «как есть», без раскрытия специальных символов:
Сделаем скрипт исполняемым:
На данном этапе все настройки выполнены, остается выключить сервер и сделать снапшот:
При выполнении скрипта, мы получим пароли в консоль в таком виде:
Скрипт установит пароли в конфигурационных файлах сервера Zabbix, поэтому на этом этапе установку можно считать завершенной.
Опционально можно настроить использование сертификатов Let's Encrypt с помощью ранее установленного certbot'a, для этого необходимо указать действующее доменное имя сервера в файле /etc/nginx/conf.d/zabbix.conf исправив параметр server, например:
Готово, теперь у нас есть готовый сервер Zabbix с настроенными сертификатами Let's Encrypt!
Для владельцев бизнеса: предложите свой софт
Если вы — разработчик софта, который разворачивают и используют на VPS, то мы можем включить вас в маркетплейс. Так мы можем помочь вам привести новых клиентов, трафик и узнаваемость. Пишите нам
Просто предложить нам образ в комментариях
Напишите, какой с каким софтом вы хотели бы иметь возможность разворачивать виртуалки в один клик?
Чего вам не хватает в маркетплейсе RUVDS?
Что каждый уважающий себя хостинг должен обязательно включить в свой маркетплейс?
Установка производится на:
Для установки Zabbix-агента потребуется репозиторий Zabbix (установка описана в статье CentOS: установка сервера мониторинга Zabbix), либо Elrepo.
Выполняем установку самого агента:
Копируем файл конфигурации:
Редактируем такие поля:
Hostname должен совпадать с именем сервера:
Адрес самого Zabbix-сервера, с которым будет связан агент:
Переходим в панель управления Zabbix-сервера, раздел Configuration > Hosts, справа вверху нажимаем Create host:
Выбираем шаблон Teamplate OS Linux , жмём внизу Select:
Возвращаемся в окно Configuration > Hosts, видим что иконка Z не активна:
В данном случае помогло указание опций SourceIP (адрес Zabbix-сервера) и ListenIP (какой IP машины, на которой работает агент, слушать) в файле /etc/zabbix/zabbix_agentd.conf с последующей перезагрузкой агента:
Так же в подобных случаях бывает полезно включить опцию DebugLevel=3 , что бы записывать полную информацию в лог-файл. Устанавливать уровень 4 не советую, так как в таком случае в лог информация пишется постоянно, и найти ошибку будет сложнее.
И, конечно, убедитесь что поле Server= в конфигурации агента заполнено верно.
На этом установка агента и добавление нового хоста закончены.
Описание доступных опций конфигурации агента есть на странице проекта>>>.
Существует большое количество современных систем мониторинга, из которых каждый выбирает то, что ему больше подходит. Я расскажу об установке Zabbix на CentOS 7, так как сам предпочитаю заббикс за простоту настройки и легкость установки. В будущем планирую цикл статей на тему мониторинга всего и вся - от пользовательских компов до сайтов и баз данных.
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти . Данная статья устарела. Вышла новая версия zabbix 3.0. Есть свежий материал на тему установки и настройки zabbix 3.0. Там более подробное описание и полезные примеры: установка и подключение к серверу мониторинга linux и windows систем.Введение
Zabbix - опенсорсная система мониторинга всевозможных параметров и систем - отдельных компьютеров, серверов, сетей, сетевого оборудования. Написана нашим человеком - Алексеем Владышевым. Интерфейс управления системой работает на php и легко разворачивается на любом веб сервере. Данные хранятся в бд, которой может выступать MySQL, PostgreSQL, SQLite или Oracle.
Система состоит из серверной части, которая хранит и визуализирует данные, и агентов, которые устанавливаются на конечное оборудование, собирают и отправляют на сервер информацию. Возможен сбор данных и без агентов по SNMP и IPMI, либо сценарии для тестирования производительности web серверов.
Заббикс сервер без проблем устанавливается на все популярные дистрибутивы Linux, Freebsd, IBM AIX, IBM Power8, NetBSD, OpenBSD, HP-UX, Mac OS X, Solaris. Под Windows работают только агенты.
Много писать о zabbix не вижу смысла, лучше сходить на официальный сайт, там много полезной информации на русском языке.
Мы же приступим к установке сервера Zabbix на CentOS 7.
Подготовка сервера к установке
Если вы еще не подготовили сервер CentOS 7 рекомендую познакомиться с моими материалами на эту тему - установка и настройка centos. Заббикс для своей работы использует web сервер и базу данных. Я рекомендую их установить отдельно и настроить, прежде чем ставить сам мониторинг. Нам понадобится apache, php и mysql. Можете посмотреть подробное руководство по настройке веб сервера, здесь же я просто приведу команды на исполнение.
Устанавливаем apache и добавляем его в автозагрузку:
Устанавливаем php и необходимые компоненты для zabbix:
Устанавливаем mysql и добавляем в автозапуск:
Запускаем mysql и выполняем предварительную настройку:
и после этого перезагружаемся.
Дальше нам нужно будет подключить репозиторий заббикса:
Подготовку закончили, не забудьте настроить iptables, если используете firewall.
Установка сервера Zabbix
Установим непосредственно сервер:
Он тянет за собой целый хвост своих зависимостей, которые установятся автоматически.
Теперь создадим базу данных и таблицы:
Обратите внимание на то, что адрес каталога со скриптами mysql может изменяться в зависимости от версии сервера, который вы устанавливаете. На момент написания этой статьи, последняя версия была 2.4.6. Скорее всего во время вашей установки будет более высокая версия.Базу данных, пользователя и необходимые таблицы создали. Теперь пропишем их в конфигурационном файле:
Запускаем zabbix-server и добавляем в автозагрузку:
Теперь отредактируем настройки каталога zabbix на веб сервере:
Раскомментируем строку php_value date.timezone и установим там свой часовой пояс:
Нажимаем Next , попадаем на страницу проверки требований установки:
Во всех столбцах должно стоять OK . Дальше указываем параметры подключения к mysql:
На следующем шаге указываем адрес сервера и порт. Если он у вас на этом же сервере, где веб морда, то оставляем настройки по-умолчанию:
Проверяем введенные ранее настройки и если все в порядке, жмем Next :
Нажимаем Finish и оказываемся на странице логина в систему. Имя пользователя и пароль по-умолчанию в zabbix - Admin/zabbix.
Заходим и попадаем на главную страницу сервера мониторинга, который на данный момент пуст:
Установка zabbix сервера на этом закончена. Дальше его нужно настраивать.
Установка zabbix agent на CentOS 7
Полноценная настройка сервера заббикс тема отдельной статьи. Мы же для примера установим zabbix agent на это же сервер, чтобы его мониторить.
Устанавливаем zabbix-agent на CentOS 7:
Запускаем его и добавляем агент в автозагрузку:
Идем в веб панель и заходим в раздел Configuration -> Hosts. В статусе единственного хоста - Zabbix server нажимаем на Disabled и делаем его Enabled .
Ждем некоторое время (1-2 минуты) и идем проверять, получает ли сервер мониторинга информацию с агента. Для этого перемещаемся в раздел Monitoring -> Latest data, выбираем в фильтре хост Zabbix-server и смотрим, пришли ли данные:
Данные начали поступать. Здесь их можно посмотреть в числовом виде, либо построить графики.
Сервер полностью работоспособен и готов принимать информацию. На этом наша настройка и проверка работы заббикс закончена.
Заключение
Подведем итог того, что мы сделали:
- Подготовили веб сервер для установки zabbix.
- Установили zabbix server последней версии из стандартного репозитория.
- Установили zabbix agent на этот же сервер для его мониторинга.
- Проверили, поступают ли данные с установленного агента на сервер.
Мы выполнили всю предварительную работу по установке сервера zabbix и подготовили его к настройке полноценной системы мониторинга. Дальше можно настраивать отправку email уведомлений, добавлять агенты, сценарии мониторинга, настраивать параметры и так далее. Пример подобной настройки - мониторинг температуры windows серверов или мониторинг freebsd сервера.
Видео установки Zabbix server
Читайте также: