Использование системы мониторинга zabbix с 1с для мониторинга ключевых показателей бизнеса

Zabbix — мощный инструмент для мониторинга ит-инфраструктуры

Настройка сервера Zabbix

Добавление шаблона

  1. Создайте файл dci_template.yaml: 

    Содержимое файла

    YML

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

    BASH

    Пояснения к команде

    admin_pass — пароль пользователя

    dci6.example.com — доменное имя или IP-адрес сервера с платформой

    Сохраните значение token из ответа:

    Пример ответа

    CODE

  3. В интерфейсе Zabbix:
    1. Перейдите в Configuration → Templates → .
    2. файл dci_template.yaml и нажмите Import: 
    3. Перейдите в Configuration → Hosts → Create host.
    4. Укажите настройки:
      1. Host name — произвольное имя для обозначения сервера в базе данных Zabbix. Например, DCI6.
      2. Visible name — произвольное имя для отображения сервера в интерфейсе Zabbix.
      3. Template — выберите шаблон Template DCImanager 6.
      4. Groups — выберите группы объектов для мониторинга. Например, Discovered hosts, Linux servers, Templates/Operating systems.
      5. Interfaces — сетевые интерфейсы. Нажмите Add → Agent.
      6. IP address — IP-адрес сервера c платформой.
      7. DNS name — имя DNS-сервера. Оставьте пустое значение по умолчанию.
      8. Connect to — тип подключения. Выберите IP.
      9. Port — порт подключения. Оставьте значение по умолчанию — 10050.
      10. Description — произвольный комментарий.
      11. Monitored by proxy — используемый прокси. Выберите (no proxy).
      12. Enabled — включите опцию, чтобы активировать мониторинг платформы.
    5. Перейдите на вкладку Macros и добавьте макросы:
      1. {$DCI_TOKEN} — токен для авторизации в платформе.
    6. Нажмите Add.

Изменение интервала опроса

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

  1. Перейдите в Configuration → Templates → выберите шаблон Template DCImanager 6 → Discovery.
  2. В открывшемся списке нажмите Location discovery.
  3. Укажите значение интервала в параметре Update interval.
  4. Нажмите Update.

Создание дашборда

Дашборд Zabbix — это информационная панель, на которую вы можете добавить нужные графики.

Пример дашборда

Чтобы создать дашборд:

  1. Перейдите в Monitoring → Dashboard → Create dashboard.
  2. Укажите произвольное название дашборда в поле Name.
  3. Нажмите Apply.
  4. Чтобы добавить график на дашборд:
    1. Нажмите в любое свободное место.
    2. В поле Type выберите Graph.
    3. Нажмите Select справа от поля host pattern и выберите сервер для мониторинга.
    4. Нажмите Select справа от поля item pattern и выберите параметр для построения графика.
    5. Нажмите Add.

Низкоуровневое обнаружение

Функция Низкоуровневого обнаружения (LLD) автоматически создает элементы и триггеры, которые позволяют отслеживать системы сервера, находящимся под наблюдением. Включение функции происходит через настройку атрибутов, которую можно сделать, пройдя по пути: «Настройка» → «Шаблоны» → «Обнаружение» (вкладка в строке с шаблоном) → вкладки «Правила обнаружения»/«Фильтры».

Что можно обнаружить

  • Распространённые OID, используемые SNMP.
  • Сетевые интерфейсы.
  • Процессоры, их ядра.
  • Файловые системы.
  • Службы Windows.
  • ODBC.

Дополнительные типы

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

  • SSH;
  • LDAP;
  • SMTP;
  • FTP;
  • HTTP;
  • POP;
  • NNTP;
  • IMAP;
  • TCP.

Если хост пропадает или обнаруживается, для события можно привязать любое действие — условия и операцию для них.

Получение доступа к API Яндекс

Вам нужно будет заполнить несколько обязательных полей:

  1. Название приложения.
  2. В качестве платформы указать Веб-сервисы.
  3. Callback URI установить — https://oauth.yandex.ru/verification_code.
  4. В Доступах указать: Яндекс.Метрика, Получение статистики, чтение параметров своих и доверенных счетчиков.

Все остальное можно не указывать. Вы должны получить ID приложения и Пароль.

После разрешения, вы получите токен, с помощью которого можно подключаться к api.

Используя этот токен, можно получать данные из Метрики через API. Для примера зайдем на сервер мониторинга и через консоль запросим данные о посещаемости сайта. Для этого нам нужно узнать номер его id в метрике. Можно это сделать прямо в ней же.

Далее формируем запрос через curl с указанием токена в header.

# curl --header "Authorization: OAuth AgAAaaaaaaaaaaaDDDDDDDDDddd" --header "Content-Type: application/x-yametrika+json" -X GET "https://api-merika.yandex.ru/stat/v1/data?&ids=23506456&metrics=ym:s:users,ym:s:visits,ym:s:pageviews&dimensions=&date1=today&pretty=true"

В данном запросе я указал:

  • AgAAAAAAGk3WAAaaYZaUSgzNyU7uvqAKCGwDSro — токен;
  • ids=23506456 — id сайта в метрике;
  • metrics=ym:s:users,ym:s:visits,ym:s:pageviews — запрошенные метрики — пользователи, визиты, просмотры страниц;
  • date1=today — дата, сегодняшний день в данном случае;
  • pretty=true — вывести в формате удобочитаемого json.

Получили ответ в виде подробного json. Он отлично подходит для zabbix, так как последний умеет из коробки парсить json. У вас есть 2 варианта дальнейшей настройки мониторинга:

  1. Сделать скрипт на сервере, который будет слать запросы в api яндекса и передавать полученное значение в zabbix с помощью агента. Плюс решения в том, что нагрузка на сервер мониторинга минимальная. Неудобство в том, что нужно куда-то добавлять скрипт.
  2. Слать запросы к api напрямую с zabbix сервера с помощью HTTP Агента. И сразу там же парсить полученный ответ. Плюс этого подхода в том, что все настройки хранятся в шаблоне и легко сохраняются или переносятся через экспорт шаблона. Минус в том, что все вычисления и запросы выполняются самим заббиксом.
    Я обычно иду по второму пути, потому что так удобнее.

В таком виде это можно отправлять в Zabbix, чем мы далее и займемся.

Шаг 2 — Подключение официального репозитория Zabbix и исправление ошибок:)

В этом руководстве я буду объяснить, как установить сервер Zabbix в системе Ubuntu 20.04 LTS.

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

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

# wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu20.04_all.deb
# dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb
# apt update

И здесь бабамс!!! Получаем ошибку: N: Skipping acquire of configured file ‘main/binary-i386/Packages’ as repository ‘http://repo.zabbix.com/zabbix/ /ubuntu InRelease’ doesn’t support architecture ‘i386’

Самое интересное изучил штук 7 руководств по установке Zabbix на Ubuntu и нигде такой ошибки нет! Вопрос, а кто в интернете пишет эти руководства, на том же digitalocean и других гуру администрирования, это копипаст какой-то?!! Ладно как всегда иду на новозеландские англоязычные форумы и нахожу ответ не по Заббиксу, но решение проблемы понятно. Кому интересно это связано с мультиархитектурностью ядра Linux и поддержкой одновременно приложений i386 и amd64. Ниже команды для анализа вашего сервера по поддержке 32 и 64:

root@zab:/# dpkg --print-foreign-architectures
i386
root@zab:/# dpkg --print-architecture
amd64

Вот команда для удаления мульти-архитектуры (только если у вас нет 32-битных приложений), но запускать ее не надо. Я ее указал просто для полного раскрытие этой ошибки.

sudo dpkg --remove-architecture i386

РЕШЕНИЕ: Правим файл /etc/apt/sources.list.d/zabbix.list и добавляем опцию . Мой измененный файл:

deb arch=amd64 https//repo.zabbix.com/zabbix/6.0/ubuntu focal main
deb-src arch=amd64 https//repo.zabbix.com/zabbix/6.0/ubuntu focal main

И снова запускаем

# apt update

Всё, ошибки нет!

Инструкция по установке Zabbix 5

Для установки Zabbix вам необходим выделенный сервер под управлением одного из популярных дистрибутивов Linux. Например Ubuntu.

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

Идем на сайт zabbix.com и в разделе Download выбираем пакеты для своего дистрибутива. В данном примере показана установка последней версии на момент написания статьи Zabbix 5.4 и использованием веб-сервера Apache в Ubuntu 20.04

Если вы по каким-то причинам будете использовать предыдущую версию обратите внимание на версии пакетов, например php в 18.04 из репозиториев имеет версию 7.2, а в 20.04 php 7.4

После этого переходим ко второму шагу. Скачивание пакета репозитория и установка.

wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1+ubuntu20.04_all.deb
sudo dpkg -i zabbix-release_5.4-1+ubuntu20.04_all.deb
sudo apt update

Установка zabbix сервера, веб-интерфейса и агента.

sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

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

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

sudo apt install mysql-server

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

sudo mysql_secure_installation

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

sudo mysql -uroot -p

Вводим заданный ранее пароль и выполняем следующие команды для создания пустой базы данных. В данных командах вы создадите пользователя zabbix@localhost с паролем P@ssw0rd для доступа к базе zabbix. C точки зрения безопасности необходимо заменить их на что-то более секретное.

create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'P@ssw0rd';
grant all privileges on zabbix.* to zabbix@localhost;
quit;

После этого создаем структуру таблиц в базе с помощью готового шаблона поставляемого с zabbix. Для этого выполните команду:

zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -uzabbix -p zabbix

Потребуется ввести пароль и немного подождать.

Настройка и запуск сервера Zabbix 5

Последними шагами в консоли настройте пароль для доступа к базе данных сервиса Zabbix. Для этого откройте в текстовом редакторе файл /etc/zabbix/zabbix_server.conf.

sudo nano /etc/zabbix/zabbix_server.conf

Раскоментируйте и отредактируйте строку DBPassword=password, где password — указанный при создании пользователя и базы пароль.

Проверьте и при необходимости исправьте временную зону в настройках php. Если вы устанавливали его по данной инструкции с использованием ubuntu и apache то вам необходимо исправить в файле /etc/php/7.4/apache2/php.ini параметр date.timezone согласно вашей временной зоне. Например так:

sudo nano /etc/php/7.4/apache2/php.ini
date.timezone = Asia/Yekaterinburg

Запустите и включите службы Zabbix.

sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2

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

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

Установка

Сначала установим репозиторий последней версии Zabbix. Для этого переходим на страницу https://repo.zabbix.com/zabbix/ и переходим в раздел с самой последней версией пакета — затем переходим в ubuntu/pool/main/z/zabbix-release/ — копируем ссылку на последнюю версию релиза:

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

wget https://repo.zabbix.com/zabbix/6.1/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.1-1%2Bubuntu20.04_all.deb

Устанавливаем его:

dpkg -i zabbix-release_*.deb

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

apt update

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

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

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

Входим в оболочку ввода sql-команд:

mysql -uroot -p

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

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

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

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

> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY ‘zabbixpassword’;

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

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

> \q

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

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

cd /usr/share/zabbix-sql-scripts/mysql

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

gunzip server.sql.gz

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

mysql -u root -p zabbix < server.sql

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

Настройка zabbix

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

vi /etc/zabbix/zabbix_server.conf

Добавляем строку:

DBPassword=zabbixpassword

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

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


DBName=zabbix

DBUser=zabbix

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

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

mkdir /etc/zabbix/zabbix_server.conf.d

Запуск zabbix-server

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

systemctl enable zabbix-server

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

systemctl start zabbix-server

Настройка nginx

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

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

vi /etc/nginx/sites-enabled/default

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


root /usr/share/zabbix;

location ~ \.php$ {
    set $root_path /usr/share/zabbix;
    …
}

Перезапускаем nginx:

systemctl restart nginx

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

Открываем браузер и переходим по адресу http://<IP-адрес сервера>/ — откроется страница установки Zabbix Web.

Выбираем нужный язык установки и кликаем по Next Step:

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

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

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

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

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

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

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

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

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

Настройка 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 окончена. Можно приступать к настройке.

Шаг 3 — Настройка Nginx для Zabbix

Для автоматической настройки Nginx установите пакет автоматической настройки:

В результате вы получите файл конфигурации , а также ссылку на него в каталоге конфигурации Nginx .

Затем вам нужно внести изменения в этот файл. Откройте файл конфигурации:

Файл содержит автоматически сгенерированную конфигурацию серверного блока Nginx. Он содержит две строки, определяющие имя сервера и порт, который он прослушивает:

/etc/zabbix/nginx.conf

Раскомментируйте две строки и замените на свое доменное имя. Ваши настройки будут выглядеть следующим образом:

/etc/zabbix/nginx.conf

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

Теперь, после настройки Nginx для обслуживания пользовательского интерфейса Zabbix, вы внесете некоторые изменения в настройку PHP, чтобы обеспечить правильность работы пользовательского интерфейса

Примечание. Как указывалось в разделе предварительных требований, рекомендуется включить на сервере SSL/TLS. Если вы хотите сделать это, перед тем как перейти к шагу 4, выполните действия нашего обучающего модуля о Let’s Encrypt в Ubuntu 20.04 для получения бесплатного сертификата SSL для Nginx. Этот процесс автоматически обнаружит ваш серверный блок Zabbix и выполнит настройку для HTTPS. После получения сертификата SSL/TLS вы можете вернуться и завершить прохождение этого обучающего модуля.

Развертывание и автоматизация

Имея все необходимые шаблоны и понимание работы продукта, настроим мониторинг тестового стенда. Для изоляции процессов я буду использовать docker.

Как это всё будет работать:

  1. Zabbix server регистрирует новый узел после получения первого запроса от zabbix agent.

  2. Zabbix server выполняет скрипт, который добавляет jmx-порт и применяет шаблоны к новому узлу.

  3. Zabbix server начинает посылать запросы на Java gateway, который, в свою очередь, опрашивает приложение и возвращает метрики.

  4. Zabbix agent получает от сервера список собираемых активных метрик и начинает их отправлять на zabbix server.

  5. Zabbix server запрашивает значения пассивно собираемых метрик у zabbix agent.

Метрики от приложения поступают по JMX, новые узлы регистрируются после первого обращения zabbix agent к серверу.

Схема тестового окружения

Как установить:

  1. Скачиваем и устанавливаем docker и docker-compose, если они ещё не установлены.

  2. Скачиваем все необходимые файлы из репозитория.

  3. Переходим в скачанную папку.

  4. Запускаем сборку образа:

  5. Запускаем кластер и сервер мониторинга:

  6. Через несколько секунд zabbix будет доступен на 80 порту. Учётная запись по умолчанию – / .

Как импортировать шаблоны:

  1. Идём на вкладку Configuration->Templates->Import и импортируем шаблон ignite_jmx.xml (находится в папке, скачанной ранее). Вместе с самим шаблоном будет добавлена группа ‘Templates/Ignite autoregistration’, это название будет использоваться далее для добавления шаблонов из этой группы к новым узлам.

  2. В каждом шаблоне, который должен быть применён, указываем созданную на предыдущем шаге группу. Шаблон Template App Ignite JMX в ней уже содержится, я добавил Template App Generic Java JMX и Template OS Linux by Zabbix agent.

Создаём скрипт для авторегистрации агентов:

  1. В интерфейсе zabbix переходим на вкладку Configuration->Actions, в выпадающем списке выбираем Autoregistration actions и создаём новое действие.

  2. Даем название действию. Можем настроить условия добавления узла.

  3. В операциях добавляем пункт Add host. Это создаст новый узел в zabbix  в случае выполнения условий, указанных ранее.

  4. Добавляем запуск скрипта autoreg.php, который будет добавлять jmx-порт в настройки и применять шаблоны из указанной группы к переданному узлу. Для тех, кто разворачивает тестовый кластер из образа, он будет находиться в папке /var/lib/zabbix, для тех, кто устанавливает самостоятельно, – в репозитории, указанном выше. Запускаться в моём случае он будет командой . Должно получиться так:

Добавление запуска скрипта в правило авторегистрации

Если всё было сделано корректно, узлы должны появиться в zabbix с настроенным jmx-портом и применёнными шаблонами из группы. Если что-то пошло не так, первое, что рекомендую проверить, – Reports->Audit log.

4.4

Zabbix 4.4 for Ubuntu 18.04:

Zabbix 4.4 for Debian 10:

# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
/etc/zabbix/zabbix_server.conf
DBPassword=password
mcedit /etc/zabbix/nginx.conf
listen 80;
server_name example.com;
mcedit  /etc/zabbix/php-fpm.conf
php_value = Europe/Riga
ln -s /etc/zabbix/nginx.conf /etc/nginx/sites-available/
ln -s /etc/nginx/sites-available/nginx.conf /etc/nginx/sites-enabled/
rm /etc/nginx/sites-enabled/default
systemctl restart zabbix-server zabbix-agent nginx php7.2-fpm
systemctl enable zabbix-server zabbix-agent nginx php7.2-fpm

Первоначальная настройка веб-интерфейса Zabbix 5

После успешного запуска сервисов Zabbix перейдите в веб-интерфейс по адресу: http://server-ip/zabbix/. Запустится мастер первоначальной настройки в котором сначала произойдет проверка предварительных требований.

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

Следующим шагом будет проведена проверка соответствия системным требованиям необходимым для работы веб-интерфейса Zabbix 5. Если все пункты отмечены зеленым OK то переходите к следующему шагу кликнув по кнопке Next step.

Далее необходимо указать параметры подключения к субд. Большинство параметров правильные по умолчанию, если вы устанавливаете строго по этой инструкции, поэтому вам необходимо будет указать только пароль подключения и возможно username, которые вы задали ранее создавая базу в mysql.

Укажите адрес и имя Zabbix сервевера.

Укажите временную зону и тему оформления для веб-интерфейса Zabbix 5.4.

Финальная сводка информации по установке веб-интерфейса.

Для входа в веб-интерфейс Zabbix используйте логин Admin (с первой заглавной буквой) пароль zabbix.

После завершения установки поменяйте пароль по умолчанию и приступайте к добавлению узлов.

Понравилась статья? Поделиться с друзьями:
Быть в курсе нового
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: