Встановіть Nginx Amplify на CentOS 8/RHEL 8 для моніторингу продуктивності стека LEMP
12:30, 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
Спочатку користувачі повинні зареєструвати свої акаунти на офіційному сайті цього інструменту і підтвердити за допомогою адреси електронної пошти. Далі йде установка агента на сервер. Офіційні ресурси надають багато корисних рекомендацій та конкретних команд, які допоможуть у процесі інсталяції, тому все, що вам потрібно зробити - це скопіювати їх.
Є 2 речі, які є важливими - запуск цих команд через 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) та інші. Потім закрийте цей файл із внесеними змінами.
Щоб увімкнути журнал помилок та доступу, додайте наступні 2 рядки до конфігураційного файлу віртуального хосту в контексті 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 увімкнено. Однак, для збору даних статус цього плагіна також має бути увімкнений. Почніть з відкриття конфігураційного файлу пулу. Потім знайдіть згаданий нижче рядок і видаліть крапку з комою:
;pm.status_path = /status
Ознайомлення з оглядом Amplify
Огляд включає в себе ключові характеристики, такі як загальна кількість запитів, використання процесора, 5xx помилки, трафік, час запиту і оцінка стану програми. Крім того, ви можете вибрати часовий проміжок, доступні наступні варіанти - 1 год, 4 год, 1 дн, 2 дн і 1 тиж. Показник здоров'я повністю корелюється з кількістю помилок. Якщо їх немає то, швидше за все, ви отримаєте 100 відсотків.
Візуалізація даних за допомогою графіків
У розділі Графіки дані розподілені за категоріями: Система, Nginx, MariaDB/MySQL і PHP-FPM. Натиснувши на кожну категорію, ви отримаєте кілька графіків в кожному розділі. Наприклад, Nginx надасть інформацію про запити, з'єднання, поточні запити і поточні з'єднання. Також інформацію можна відсортувати за годинами, днями і тижнями.
Навігація по дашбордам Nginx Amplify
Дашборди допомагають створювати настроювані діаграми і графіки та відображати їх на одній сторінці. Діаграми, які будуть відображатися, вибираються індивідуально, тому користувачі можуть додавати абсолютно все, що їм подобається. Наприклад, можна показати всі дані про певну URL-адресу або відобразити всі характеристики продуктивності для кращої візуалізації.
Це дійсно зручна річ, коли ви хочете отримати конкретну візуалізацію на одній сторінці без необхідності постійно шукати певну інформацію.
Поглиблений аналіз за допомогою аналізатора Amplify Analyzer
У категорії Аналізатор є такі розділи, як віртуальні сервери і статичний аналіз. Останній розділ є дійсно корисним. Nginx Amplify може давати рекомендації на основі конфігураційного файлу. Ці поради можуть стосуватися надійності, продуктивності та безпеки. Натиснувши на розділ статичного аналізу, ви можете побачити помилки і значно покращити конфігурацію.
Після того, як ви зробите кілька коригувань, вам потрібно буде почекати, поки вони будуть застосовані і повідомлення зникне.
Налаштування сповіщень в Amplify
У разі припинення роботи агента, користувачі автоматично отримають сповіщення про це на пошту. Ця функція працює за замовчуванням. Для інших додаткових сповіщень вам слід перейти на окрему сторінку і налаштувати все необхідне. Наприклад, користувачі можуть налаштувати отримання сповіщень, коли час очікування більше 1 секунди і триває більше 3 хвилин. Також користувачі можуть вибрати отримання електронних листів, коли показник безвідмовної роботи становить менше 120 секунд за останні 3 хвилини.
Як бачите, це дуже важливий інструмент, який може швидко повідомити вас, якщо щось не працює належним чином.
Вирішення проблем з агентом Amplify
Можуть виникнути ситуації, коли без очевидної причини агент перестає надсилати інформацію про свою роботу. Тому буде чудово, якщо ви зробите обробку утилітою Cron, щоб перезапустити агента і вирішити цю проблему.
У файл crontab слід додати наступний рядок:
@daily systemctl restart amplify-agent
Це означає, що агент буде перезапускатися раз на день і після додавання цього рядка закрийте файл.
Висновок
Тепер у вас є повна інструкція про те, як встановити Nginx Amplify і почати моніторинг продуктивності програми LEMP. Є кілька додаткових рекомендацій щодо створення власного формату логів Nginx, моніторингу баз даних сервера, ввімкнення PHP-FPM та багато іншого. Окрім моніторингу даних, всю зібрану інформацію можна легко структурувати у вигляді графіків та узагальнених дашбордів. Таким чином, всі користувачі можуть отримати необхідну інформацію найбільш простим і зручним для них способом. Nginx Amplify - це чудовий інструмент для аналізу та збору інформації, і більш того - він дійсно простий і гнучкий.