Установка Nginx Amplify на CentOS 8/RHEL 8 для мониторинга производительности стека LEMP
11:38, 13.12.2023
Nginx Amplify - это отличный инструмент для мониторинга веб-серверов Nginx. Его особенность заключается в возможности полного мониторинга стека LEMP. LEMP - это сокращенная версия для PHP, Nginx, Linux и MySQL/MariaDB.
Этот продукт был разработан компанией Nginx. Inc. Функционирование Amplify заключается в сборе и отправке полученных данных в SaaS-сервис. Инструмент считается очень легковесным и имеет открытый исходный код. Если говорить о конкретной информации, которую он собирает, то это такие данные, как:
- Данные из MariaDB/MySQL (обновление/вставка/выбор запросов, соединения и т.д.)
- Данные PHP-FPM (медленные запросы, очередь соединений и т.д.)
- Данные Nginx (трафик, запросы, время ответа, соединения и т.д.)
- Системные метрики (сетевой трафик, задержка на диске, использование оперативной памяти, процессора и т.д.).
Инструмент также может быть полезен для оповещения о необычном поведении и улучшения конфигурации Nginx.
Настройка Nginx Amplify на CentOS 8/RHEL 8
Сначала пользователям необходимо зарегистрировать свой аккаунт на официальном сайте этого инструмента и пройти верификацию с помощью адреса электронной почты. Далее следует установка агента на сервер. На официальных ресурсах можно найти множество полезных рекомендаций и конкретных команд, которые помогут в процессе установки, поэтому достаточно просто скопировать их.
Важно отметить два момента: эти команды следует выплнять с правами root и при наличии Python2. После того как у вас есть Python2, установите скрипт - запустите его - и проверьте статус после установки.
Настройка модуля Stub_status в Nginx
Агент Nginx Amplify сразу после установки собирает системные данные. Для получения других метрик, например, Nginx, необходимо настроить модуль stub_status. Сначала создайте конфигурационный файл. Затем добавьте следующие строки в контекст http{...}:
server {
listen 127.0.0.1:80;
server_name 127.0.0.1;
location /nginx_status {
stub_status on;
allow 127.0.0.1;
deny all;
}
На этом все, теперь закройте этот файл с добавленными изменениями и перезагрузитесь.
Настройка лог-форматов Nginx
Агент также может работать, собирая данные из лог-файлов. При использовании формата по умолчанию количество данных ограничено. В случае если необходимо получать актуальную информацию о производительности, рекомендуется сделать пользовательский лог-формат.
Сначала необходимо открыть конфигурационный файл и над директивами include добавить необходимые строки. Затем создайте пользовательский лог-формат, назовите его APM и заполните информацией о времени upstream_header_time, request_time, upstream_connect_time и др. Затем закройте этот файл с внесенными изменениями.
Чтобы включить журнал ошибок и доступа, добавьте следующие две строки в файл конфигурации виртуального хоста в контексте server {...}:
access_log /var/log/nginx/linuxbabe.com.access.log apm;
error_log /var/log/nginx/linuxbabe.com.error.log warn;
Закройте файл с внесенными изменениями. Теперь все должно работать как надо, а Nginx Amplify будет иметь всю необходимую информацию в графиках.
Исключение своего IP из журналов доступа Nginx
В некоторых случаях можно навредить достоверности данных Nginx своей активностью. Чтобы исключить подобные риски, рекомендуется удалить свой личный IP из журнала доступа.
Для этого необходимо добавить в http-контекст конфигурационного файла следующие строки. При этом номер 23.56.32.23 должен быть заменен на Ваш реальный IP.
map $remote_addr $log_ip {
"23.56.32.23 " 0;
default 1;
}
Последним шагом будет изменение access_log, как указано ниже:
access_log /var/log/nginx/linuxbabe.com.access.log apm if=$log_ip;
Мониторинг базы данных MariaDB/MySQL
Для начала необходимо создать пользователя в MySQL или MariaDB и выполнить вход в учетную запись. Затем необходимо создать нового пользователя для Nginx Amplify и изменить пароль.
Следующим шагом будет выход из сервера и включение плагина MySQL в конфигурационном файле Amplify. Выберите True, и это включит плагин.
После этого в строке [mysql] найдите строку, в которой указаны значения unix_socket и password, и измените эти значения. Пароль должен быть изменен на тот же, что и в агенте Amplify, а unix_socket должен быть следующим:
/var/lib/mysql/mysql.sock
Закройте файл, и в течение нескольких минут агент начнет собирать данные.
Мониторинг производительности PHP-FPM
По умолчанию плагин PHP-FPM включен. Однако для сбора данных этот плагин также должен быть включен. Начните с открытия файла pool конфигурации. Затем найдите указанную ниже строку и удалите точку с запятой:
;pm.status_path = /status
Обзор Amplify
Обзор включает в себя такие ключевые характеристики, как общее количество запросов, использование процессора, ошибки 5xx, трафик, время запроса и оценка работоспособности приложения. Кроме того, можно выбрать временной интервал, есть следующие варианты - 1ч, 4ч, 1д, 2д и 1н. Показатель health score полностью коррелирует с количеством ошибок. Если ошибок нет, то, скорее всего, вы получите 100%.
Визуализация данных с помощью графиков
В разделе "Графики" (Graphs) данные распределены по категориям System, Nginx, MariaDB/MySQL и PHP-FPM. Щелкнув на каждой категории, вы получите несколько графиков в каждой секции. Например, для Nginx будет представлена информация о запросах, соединениях, текущих запросах и текущих соединениях. Кроме того, информация может быть отсортирована по часам, дням и неделям.
Навигация по инструментальным панелям Nginx Amplify
Панели инструментов позволяют создавать настраиваемые графики и диаграммы и отображать их по мере необходимости на одной странице. Графики, которые будут отображаться, выбираются индивидуально, поэтому пользователи могут добавлять в них абсолютно все, что им нравится. Например, можно показать все данные по определенному URL-адресу или вывести все характеристики производительности для лучшей визуализации.
Это очень удобно, когда нужно получить конкретную визуализацию на одной странице без необходимости постоянно искать ту или иную информацию.
Углубленный анализ с помощью анализатора Amplify Analyzer
В категории "Анализатор" (Analyzer) находятся такие разделы, как виртуальные серверы, сборка и статистический анализ. Последний раздел является очень полезным. Nginx Amplify может давать рекомендации на основе конфигурационного файла. Эти рекомендации могут касаться надежности, производительности и безопасности. Перейдя в раздел статического анализа, можно увидеть ошибки и значительно улучшить конфигурацию.
После внесения нескольких корректировок необходимо подождать, пока они будут реализованы и уведомление исчезнет.
Настройка оповещений в Amplify
В случае прекращения работы агента пользователи будут автоматически получать это уведомление по почте. Это функция по умолчанию. Для получения других дополнительных оповещений следует перейти на соответствующую страницу и настроить все необходимое. Например, пользователь может выбрать получение уведомлений, когда время отклика выше по потоку превышает 1 с и длится в течение 3 минут. Также пользователь может выбрать получение писем, когда время восстановления работоспособности составляет менее 120 с в течение последних 3 мин.
Как видите, это очень важный инструмент, который может немедленно сообщить вам, если что-то не работает так, как нужно.
Устранение проблем с агентом Amplify
Бывают ситуации, когда без видимых причин агент перестает отправлять информацию о производительности. В этом случае будет полезно сделать задание Cron для перезапуска агента и решения этой проблемы.
В файл crontab необходимо добавить следующую строку:
@daily systemctl restart amplify-agent
Это означает, что агент будет перезапускаться раз в сутки, и после добавления этой строки закройте файл.
Заключение
Теперь у вас есть полная инструкция по установке Nginx Amplify и началу мониторинга производительности приложения LEMP. Есть несколько дополнительных рекомендаций по созданию собственного лог-формата Nginx, мониторингу серверных баз данных, включению PHP-FPM и многое другое. Помимо мониторинга данных, вся собранная информация может быть легко структурирована в виде графиков и обобщенных дашбордов. Таким образом, все пользователи могут получить необходимую информацию наиболее простым и удобным для них способом. Nginx Amplify - это отличный инструмент для анализа и сбора информации, а главное - очень простой и гибкий.