Как мониторить производительность стэка LEMP с помощью Nginx Amplify на Ubuntu 20.04/18.04
10:57, 12.12.2023
Nginx Amplify - гибкое, а главное - бесплатное решение, которое применяется для анализа, определения характеристик производительности и нагрузки веб-серверов Nginx. Клиент очень прост и поставляется вместе с такими плагинами, как PHP-FPM, MySQL, что позволяет вести полноценный мониторинг.
Этот клиент был разработан компанией Nginx. Достаточно установить Nginx Amplify на сервер, и он будет работать, собирая всю необходимую информацию и отправляя ее в SaaS-сервис. Amplify будет собирать следующие данные:
- Данные MariaDB/My SQL (запросы на обновление, select/insert/slow запросы и др.)
- Данные Nginx (трафик, запросы, время ответа, статус HTTP и другие)
- Данные PHP-FPM (очередь соединений, медленные запросы и др.)
- Системные метрики (использование диска/задержка, использование оперативной памяти, процессор, сетевой трафик и другие)
Установка Nginx Amplify на сервер Ubuntu 18.04/20.04
Для установки этого агента сначала необходимо зарегистрировать учетную запись. После проверки электронной почты следующим шагом будет установка агента на сервер. Все необходимые команды для установки легко найти на официальном сайте этого агента. Просто скопируйте их на сервер. Единственное, о чем следует помнить, - все эти команды должны выполняться с доступом root.
Весь процесс выглядит следующим образом: установка агента - загрузка скрипта - запуск скрипта - проверка статуса.
Настройка Stub_status в конфигурации Nginx
Чтобы начать процесс сбора метрик, настройте stub_status Nginx. Сначала откройте файл с именем nginx.conf. Добавьте серверную часть в контекст http {...}. После внесения изменений сохраните их и закройте этот файл. Чтобы начать сбор необходимых метрик, перезагрузите Nginx.
Настройка лог-форматов Nginx
Для получения необходимой информации о производительности приложения, такой как количество обращений к кэшу, время запроса, время отклика восходящего потока и т.д., необходимо создать собственный лог-формат. Сначала откройте файл nginx.conf.
После этого добавьте несколько строк в контекст http {...}. Например, пользователь должен создать формат журнала с именем apm, который будет содержать информацию о “upstream_connect_time” (времени_подключения_потока) и “upstream_header_time” (времени_заголовка_потока), “request_time” (времени_запроса) и “upstream_response_time” (времени_ответа_потока). Добавьте следующие 2 строки в контекст server {...}:
access_log /var/log/nginx/linuxbabe.com.access.log apm;
error_log /var/log/nginx/linuxbabe.com.error.log warn;
После закрытия этого файла перезагрузите Nginx. Все должно работать без препядствий. Если же что-то перестало работать, то можно поискать новую версию Nginx и произвести необходимые обновления.
Исключение вашего IP-адреса из журналов доступа Nginx
Исключить IP-адрес очень просто. Заполните все следующие строки в конфигурационном файле Nginx и измените нужный IP-адрес.
map $remote_addr $log_ip {
"12.34.56.78" 0;
default 1;
}
После этого измените директиву access_log и закройте файл. Конечно, не забудьте перезагрузить Nginx.
Мониторинг серверов баз данных MariaDB/MySQL
Начните с создания пользователя в My SQL/MariaDB и войдите в монитор. Из агента Amplify необходимо создать нового пользователя и изменить пароль. Выйдите из сервера. Затем с помощью следующей строки включите плагин Amplify в конфигурационном файле.
sudo nano /etc/amplify-agent/agent.conf
Затем выберите True для включения необходимого плагина. После этого в разделе My SQL измените пароль по умолчанию и перезапустите агент.
Включение журнала медленных запросов MariaDB
Журнал медленных запросов отвечает за отображение запросов, требующих больше времени для ответа. Для его включения необходимо отредактировать файл конфигурации сервера. В файле найдите строку с long_query_time и удалите #. Затем измените значение на 1 сек. или можно указать 0,5.
Затем добавьте следующую строку, чтобы включить работу этого журнала запросов.
slow_query_log = 1
Закройте файл с сохраненной модификацией и перезапустите My SQL или MariaDB.
Настройка регистрации медленных запросов в MySQL 8
Для пользователей MySQL 8 необходимо отредактировать файл конфигурации, добавив в конец этого файла следующие строки:
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 1
log-queries-not-using-indexes = ON
slow_query_log = 1
В конце закройте этот файл и перезапустите сервер.
Мониторинг производительности PHP-FPM
По умолчанию PHP-FPM включен, поэтому для сбора информации необходимо изменить статус, отредактировав файл конфигурации pool.
В файле необходимо найти следующую строку и удалить точку с запятой:
;pm.status_path = /status
Выполнив этот шаг, вы включите мониторинг производительности. Закройте и перезапустите систему, после чего начнется сбор метрик.
Анализ показателей производительности с помощью графиков
На странице обзора можно посмотреть всю необходимую информацию в виде графиков. На этой странице графиков можно увидеть такие данные, как MySQL, Nginx, System и PHP-FPM.
Инсайты панели инструментов на Nginx Amplify
Панели инструментов позволяют создавать настраиваемые графики/диаграммы на одной странице. Например, пользователи могут легко отобразить все данные о конкретном URL. Также можно добавить в панель графики кэширования Nginx.
Использование анализатора Amplify Analyzer
Анализатор Nginx Amplify представляет собой действительно полезный инструмент для проведения необходимого анализа. С его помощью можно получить рекомендации по безопасности, производительности и надежности. Кроме того, он может быть использован для выявления ошибок.
Настройка оповещений для мониторинга
Если агент Nginx Amplify не работает, то вы получите уведомление об этом по электронной почте. Получение остальных оповещений на адрес электронной почты также можно настроить. Например, пользователь может выбрать получение письма в случае, если время отклика превышает 1 с в течение последних 4 минут.
Вы также можете получить уведомление, если произошла ошибка 5xx или на сервере закончилась оперативная память.
Мониторинг производительности Linux-сервера
Для мониторинга производительности PHP, My SQL и Nginx используется Nginx Amplify. Однако для получения дополнительной информации об операционной системе, производительности или характеристиках диска можно использовать Netdata.
Подведение итогов: Основные выводы
Теперь вы знаете о наиболее полезном агенте для мониторинга производительности сервера, который называется Nginx Amplify. Из статьи вы узнали о процессе его установки, настройке функций мониторинга и графиках, которые можно использовать для визуализации.