Настройка и использование NGINX Amplify

В двух словах, NGINX Amplify — сервис для мониторинга как самого NGINX, так и его компонентов, составляющих веб-сервис. Развертывание системы состоит из нескольких шагов:
- Регистрация на портале сервиса.
- Установка агента на сервер.
- Настройка NGINX.
Регистрация на сервисе
Заходим на портал NGINX Amplify и создаем учетную запись или используем аккаунт Google:
После создания и входа учетной записи, мы увидим инструкцию по установке агента:
Установка агента
Подключаемся к нашему серверу по SSH и, согласно инструкции, скачиваем файл install:
wget https://github.com/nginxinc/nginx-amplify-agent/raw/master/packages/install.sh
Согласно инструкции на портале, запускаем установку:
API_KEY='47e5827b88a0067a4e8207b38731810f' sh ./install.sh
* где 47e5827b88a0067a4e8207b38731810f — ключ, который мы получили после регистрации.
Система предложит установить недостающие компоненты — соглашаемся. Готово.
Добавляем агента в автозагрузку.
Для CentOS:
chkconfig amplify-agent on
Для Ubuntu:
update-rc.d amplify-agent defaults
Настройка NGINX
Возвращаемся на портал и кликаем по Continue. Запуститься процесс настройки.
После настройки системы мы увидим следующие подсказки по настройке веб-сервера NGINX:
Создаем дополнительный конфигурационный файл в NGINX.
Для CentOS:
vi /etc/nginx/conf.d/stub_status.conf
Для Ubuntu:
vi /etc/nginx/sites-enabled/stub_status.conf
Со следующим содержимым:
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 -t
Перезапускаем nginx:
systemctl restart nginx
На портале NGINX Amplify снова нажимаем Continue. Ждем.
Мы увидим последнюю подсказку — либо настраиваем расширенные метрики, либо кликаем по Finish.
Дополнительные метрики
Для получения большей информации, необходимо поменять формат логов в NGINX.
Открываем основной конфигурационный файл NGINX:
vi /etc/nginx/nginx.conf
Создаем новый формат логов, дописав:
log_format main_ext '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'"$host" sn="$server_name" '
'rt=$request_time '
'ua="$upstream_addr" us="$upstream_status" '
'ut="$upstream_response_time" ul="$upstream_response_length" '
'cs=$upstream_cache_status' ;
* где main_ext — название формата.
И применяем созданный формат, отредактировав access_log:
access_log /var/log/nginx/access.log main_ext;
Проверяем настройки и перезапускаем веб-сервер:
nginx -t
systemctl restart nginx