Введение
Содержание веб-серверных логов является необходимым для гладкого func-titionрования вашего сайта, решения проблем и понимания поведения пользователей. Если вы используете Nginx, он генерирует логи доступа и ошибок, насыщенные ценными сведениями. Чтобы управлять и анализировать эти логи, вы можете использовать Logstash для обработки и пересылки их, а также Managed OpenSearch от DigitalOcean для индексации и визуализации данных.
В этом руководстве мы пойдем с вами по пути установки Logstash на Droplet, настроим его для сбора логов Nginx и отправки их в Managed OpenSearch DigitalOcean.
Предварительные требования
-
Учетная запись облачного сервиса DigitalOcean и работающая Ubuntu Droplet.
-
Nginx должен быть настроен, а журналы должны генерироваться на вашем Droplet. Чтобы установить nginx на Droplet, обратитесь к этому руководству Как установить Ngnix на Ubuntu.
-
Кластер OpenSearch должен быть запущен, и у вас должен быть доступ к нему. Для получения более подробной информации посетите Как создавать кластеры OpenSearch.
-
Знакомство с Nginx, Logstash и OpenSearch будет полезным.
Применение
Вы можете использовать эту конфигурацию, если вам нужно:
- Мониторинг и устранение проблем: Отслеживание показателей производительности и ошибок веб-сервера путем анализа реального времени логов.
- Анализ производительности: получение Insights о поведении трафика в интернете и метриках сервера.
- Централизованное ведение логов: агрегирование логов с нескольких серверов Nginx в единый экземпляр OpenSearch для более удобного управления.
Примечание: срок установки должен составлять около 30 минут.
Шаг 1 – установка Logstash на Droplet
Логсташ может быть установлен с помощью бинарных файлов, доступных здесь или репозиториев пакетов, настроенных для вашей операционной системы. Для упрощения управления и обновлений обычно рекомендуется использовать репозитории пакетов. Вы можете использовать менеджер пакетов APT на Debian-основаных системах, таких как Ubuntu, в то время как на Red Hat-основаных системах, таких как CentOS или RHEL, можете использовать yum
. оба метода обеспечивают правильную интеграцию Logstash в инфраструктуру управления пакетами вашей системы, упрощая установку и обслуживание.
В этом разделе мы проведем вас через установку Logstash с использованием обоих менеджеров пакетов apt
и yum
, чтобы убедиться, что вы можете настроить Logstash на вашем Droplet независимо от вашей дистрибутива Linux.
Чтобы найти ОС, запустите следующую команду:
Для систем на основе APT (Ubuntu/Debian)
1. Закачайте и установите Public Signing Key:
2. Если apt-transport-https еще не установлен, установите его:
3. Добавьте и сохраните определение репозитория Logstash в вашу список источников apt:
Примечание: Убедитесь, что вы не используете команды add-apt-repository
, так как они могут добавить запись deb-src
, которая не поддерживается. Если вы встретите ошибку, связанную с записью deb-src
, удалите ее из файла /etc/apt/sources.list
. Если вы добавили запись deb-src
, у вас появится ошибка, похожая на следующую:
Если вы просто удалите запись deb-src
из файла /etc/apt/sources.list
, установка应该正常工作进行。
4. Обновите индекс пакетов, чтобы включить новый репозитарий:
5. Установите Logstash с использованием менеджера пакетов apt
:
6. Запустите Logstash и настройте его, чтобы автоматически запускаться при загрузке системы:
Теперь Logstash установлен и запущен на вашей системе.
Для Систем на базе YUM (CentOS/RHEL)
1. Загрузите и установите общедоступный ключ подписи для репозитария Logstash:
2. Создайте файл репозитария Logstash в каталоге /etc/yum.repos.d/
. Например, создайте файл с именем logstash.repo
. Вы можете скопировать и вставить ниже содержимое, чтобы создать файл и обновить его содержимое:
Репозитарий готов для использования.
3. Установите Logstash с использованием менеджера пакетов YUM:
4. Запустите Logstash и настройте его, чтобы автоматически запускаться при загрузке системы:
Logstash уже установлен и запущен на вашем системе.
Шаг 2 – Установка модуля вывода Open Search
Вы можете установить модуль вывода OpenSearch, выполнив следующий приказ:
Дополнительную информацию о модуле вы можете найти на этом репозитории модуля logstash-output-opensearch.
Шаг 3 – Конфигурация Logstash для отправки журналов Nginx в OpenSearch
Путь Logstash состоит из трех основных стадий: вход, фильтрация и выход. Пути Logstash используют плагины. Вы можете использовать плагины сообщества или создавать свои собственные.
- Вход: Эта стадия собирает данные с различных источников. Logstash поддерживает множество входных плагинов для работы с источниками данных, такими как логические файлы, базы данных, очередь сообщений и облачные услуги.
- Фильтрация: Эта стадия обрабатывает и трансформирует данные, собранные на стадии входа. Фильтры могут изменять, дополнять и структурировать данные, чтобы сделать их более полезными и удобными для анализа.
- Вывод: Эта стадия отправляет обработанные данные в целевую точку. Целевые точки могут включать базы данных, файлы и хранения данных, такие как OpenSearch.
Теперь создадим поток.
1.Создайте файл настройки Logstash в /etc/logstash/conf.d/nginx-to-opensearch.conf
следующим содержимым:
Замените:
OpenSearch-Hostname
на имя хоста вашего сервера OpenSearch.<your_password>
на ваш пароль OpenSearch.
2.Примените новые настройки, перезапустив Logstash:
3.Проверьте логи Logstash, чтобы убедиться, что данные корректно обрабатываются и пересылаются:
Разбор настройки nginx-to-opensearch.conf
ВВОД
Блок input
настраивает два входных потока для чтения журналов:
Журналы Nginx:
Пути:
/var/log/nginx/access.log
(для журналов доступа)
/var/log/nginx/error.log
(для журналов ошибок)
Положение начала: beginning
– Чтение начинается с начала файлов журналов.
Путь к sincedb: /dev/null
– Отключает трекинги для непрерывного чтения.
Теги:
["nginx_access"]
для журналов доступа
["nginx_error"]
для журналов ошибок
Примечание: Убедитесь, что служба Logstash имеет доступ к входным путям.
ФИルЬТР
Блок filter
обрабатывает логи на основе их метки:
Обработка логов:
Логи доступа:
Использует фильтр grok
, чтобы распарсить формат логов доступа, извлекая поля, такие как client_ip
, timestamp
, method
, request
, http_version
, response
, bytes
, referrer
и user_agent
.
Удаляет исходное поле message
и certain metadata поля.
Логи ошибок:
Проверяет наличие метки nginx_error
и применяет фильтр grok
, чтобы извлечь поля, такие как timestamp
, level
, pid
, tid
и error_message
.
Также удаляет поля message
и metadata поля.
ВЫВОД
Блок output
направляет события в OpenSearch на основе их метки:
Распределение в OpenSearch:
Для логов доступа и ошибок определяет:
ホスト: URL OpenSearch экземпляра.
Пользователь: doadmin
для аутентификации.
Пароль: Ваш пароль OpenSearch.
Индекс:
nginx_access-%{+YYYY.MM.dd}
для логов доступа
nginx_error-%{+YYYY.MM.dd}
для логов ошибок
Настройки SSL: Enables SSL и проверку сертификата.
Шаг 4 – Настроить OpenSearch
1.Откройте веб-браузер и перейдите на URL панели управления OpenSearch:
Замените OpenSearch-Hostname
на имя хоста вашего сервера OpenSearch.
2.Создайте шаблон индекса.
a. Слева на панели меню перейдите к разделу Управление > Панель управления > Шаблоны индексов.
b.クリック Создать шаблон индекса в правом верхнем углу.
c. Введите nginx_access-*
или nginx_error-*
как шаблон индекса для соответствия всем индексам, созданным Logstash, и нажмите кнопку Далее.
d. Click Создать шаблон индекса.
3. Убедитесь, что шаблон индекса успешно создан и доступен в списке шаблонов индексов.
4. Слева на панели меню перейдите к разделу Exploration (Исследование) и выберите созданный вами индекс (nginx_access-*
или nginx_error-*
). Проверьте, что записи журнала видны и корректно индексированы.
5. СоздайтеVisualizations (Визуализации) и Dashboards (Дашборды). Подробности создания дашборда смотрите в разделе Как создавать дашборд в OpenSearch.
Расчеты
Проверка соединения
Вы можете проверить, может ли Logstash подключиться к OpenSearch, продемонстрировав соединение:
Замените:
OpenSearch-Hostname
на имя хоста вашего сервера OpenSearch.<your_password>
на ваш пароль OpenSearch.
Приём данных
Вы можете убедиться, что данные правильно идентифицированы в OpenSearch, используя следующий командный ряд curl:
Замените:
OpenSearch-Hostname
на имя хоста вашего сервера OpenSearch.<your_password>
на ваш пароль OpenSearch
Фирменная поддержка брандмауэра и сетевых настроек
Убедитесь, что правила брандмауэра и сетевые настройки позволяют трафик между Logstash и OpenSearch через порт 25060
.
Заключение
В этом руководстве вы научились настраивать Logstash, чтобы собирать и пересылать логи Nginx в OpenSearch.
Вы просмотрели, как использовать менеджеры пакетов apt
или yum
, в зависимости от вашей дистрибутива Linux, чтобы запустить Logstash на вашем Drople. Также вы создали и настроили файл конфигурации Logstash, чтобы убедиться, что логи Nginx правильно обрабатываются и отправляются в OpenSearch. Затем вы настроили шаблон индекса в Dashboards OpenSearch, чтобы проверить, идеально ли логи индексируются и доступны для анализа.После выполнения этих шагов у вас должна быть работающая конфигурация, в которой Logstash собирает логи Nginx и отправляет их в OpenSearch. Эта конфигурация позволяет вам использовать мощные инструменты поиска и визуализации OpenSearch для анализа ваших серверных логов.
Если у вас возникли какие-либо проблемы, посмотрите на советы по debugging, которые мы предоставили, и обратитесь к документации Logstash и документации OpenSearch для дополнительной помощи.Regular monitoring will keep your logging system running smoothly and effectively.
Source:
https://www.digitalocean.com/community/tutorials/forward-nginx-logs-to-opensearch-using-logstash