Введение
эффективное управление логами веб-сервера является crucial для поддержания performanced вашего сайта, решения проблем и insights поведения пользователей. Apache является одним из наиболее popular web-серверов. Он генерирует логи доступа и ошибок, содержащие ценную информацию. Чтобы эффективно управлять и анализировать эти логи, вы можете использовать Logstash для обработки и forwarding их к Managed OpenSearch для indexing и visualization.
в этой учебной поделе, мы вас guidance через установку Logstash на Droplet, настройка его для collection ваших Apache логов и отправка их к Managed OpenSearch для analysis.
Предупреждения
- Droplet/s с установленным Apache Webserver.
- Managed OpenSearch Cluster
Шаг 1 – Установка Logstash
Logstash может быть установлен с использованием бинарных файлов или через репозитории пакетов. Чтобы упростить управление и обновления, обычно рекомендуется использовать репозитории пакетов.
В этом разделе мы вас проведём по установке Logstash на вашем Dropleте с использованием both APT и YUM менеджеров пакетов.
Давайте определим ОС:
Для систем на основе APT (Ubuntu/Debian)
Скачайте и установите Public Signing Key:
В Debian вам может потребоваться установить пакет apt-transport-https
перед продолжением:
Сохраните определение репозитория в /etc/apt/sources.list.d/elastic-8.x.list
:
Используйте метод echo
описанный выше, чтобы добавить репозиторий Logstash. Не используйте add-apt-repository
, так как это добавит запись deb-src
, но мы не предоставляем исходный пакет. Если вы добавили запись deb-src
, вы увидите ошибку, похожую на следующую:
Unable to find expected entry 'main/source/Sources' in Release file (Wrong sources.list entry or malformed file)
Просто удалите запись deb-src
из файла /etc/apt/sources.list
и установка должна работать как ожидалось.
Выполните sudo apt-get update
и репозиторий готов для использования. Вы можете установить его следующим образом:
Для систем на базе YUM (CentOS/RHEL)
Скачайте и установите общедоступный ключ подписи:
Добавьте следующий код в ваш файл /etc/yum.repos.d/logstash.repo
. Вы можете использовать команду `tee` для обновления и создания файла.
Ваш репозитарий готов для использования. Вы можете установить его с помощью:
Для дополнительной информации, пожалуйста, обратитесь к руководству Установка Logstash.
Шаг 2 – Configuring Logstash to Send Logs to OpenSearch
Путь Logstash состоит из трех основных стадий: вход, фильтрация и выход. Пути Logstash используют плагины. Вы можете использовать сообщественные плагины или создать свои собственные.
-
Вход: Эта стадия собирает данные из различных источников. Logstash поддерживает множество входных плагинов, чтобы обрабатывать источники данных, такие как логические файлы, базы данных, очереди сообщений и облачные сервисы.
-
Фильтр: Этап обработки и преобразования собранных данных во время этапа ввода. Фильтры могут модифицировать, дополнять и структурировать данные, делая их более полезными и легкими для анализа.
-
Вывод: Этап отправки обработанных данных в место назначения. Места назначения могут включать базы данных, файлы и хранилища данных, такие как OpenSearch.
Шаг 3 – Установка плагина вывода Open Search
Плагин вывода OpenSearch можно установить, выполнив следующую команду:
Больше информации можно найти в этом репозитории logstash-output-opensearch-plugin.
Теперь давайте создадим пайплайн:
/etc/logstash/conf.d/
apache_pipeline.conf
“`ruby
input {
file {
path => “/var/log/apache2/access.log”
start_position => “beginning”
}
}
“`
-
ИНПУТ: используется для настройки источника событий. Здесь используется плагин `file` для источника.
-
путь => “/var/log/apache2/access.log” : указывает на путь к файлу журнала доступа Apache, который Logstash будет читать.
Убедитесь, что служба Logstash имеет доступ к исходному пути.
-
позиция_start => “beginning” : определяет, откуда Logstash должен начать чтение файла журнала.VALUE “beginning” указывает, что Logstash должен начать обработку файла с начала, а не с конца.
-
путь_к_файлу_sincedb => “/dev/null”: Указывает путь к файлу sincedb. Файлы sincedb используются Logstash для управления текущим местом в лог-файлах, что позволяет ему продолжать работу сразу после перезапуска или сбоев.
- тегов => “apache_access”: Присваивает тег событиям, которые считываются с этого входа. Теги удобны для идентификации и фильтрации событий в Logstash, и их часто используют в потоках вывода или фильтрации конфигурации. Мы используем теги в последнем
-
ФИЛЬТР: используется для обработки событий.
Начиная с условиями:
Это проверяет, существует ли тэг
apache_access
в поле [теги] входящих лог-событий. Мы используем это условие, чтобы применить соответствующий FILTER GROK для апач-доступа и ошибочных логов. -
Грок фильтр (для логов Apache Access):
Грок фильтр
%{HTTPD_COMBINEDLOG}
является предопределенным шаблоном в Logstash, используемым для разбора формата логов доступа Apache combined. Это вытаскивает поля, такие как IP-адрес, время, метод HTTP, URI, код статуса и т.д., из поля сообщения входящих событий. -
Мутация фильтр
Удалить
(необязательно): После разбора логов Apache, мы используем мутацию-удалить для удаления определённых полей. -
Другая условие: блок else выполняется, если тэг
apache_access
отсутствует в [tags]. Этот блок else содержит еще один фильтр GROK для логов ошибок Apache.Этот фильтр GROK
%{HTTPD24_ERRORLOG}
обрабатывает сообщения, соответствующие формату логов ошибок Apache. Он вытаскивает поля, связанные с логами ошибок, такие как метка времени, уровень логирования, сообщение ошибки и т. д.Паттерны GROK можно найти по адресу: https://github.com/logstash-plugins/logstash-patterns-core/tree/main/patterns.
-
ВЫВОД:Plugin выдает события в определенное место назначения.
Блок ВЫВОДА начинается с условия if. Мы здесь используем условные операторы if
Это условие if используется для направления логов в OpenSearch в два различных индекса,
apache_error
иapache_access
.Посмотрим на плагин ВЫВОД OpenSearch:
<код>узлы => "https://XXX:25060" Имя хоста вашего Open search пользователь => "doadmin" Имя пользователя вашего Open search пароль => "XXXXX" Пароль OpenSearch индекс => "apache_error" Имя индекса в OpenSearch верificация_ SSL_сертификата => true Включена проверка SSL-сертификата
Шаг 4 – Запуск Logstash
После настройки потока, запустите службу Logstash:
Шаг 5 -Debugging
Проверка подключения
Вы можете проверить, что Logstash может подключиться к OpenSearch, тестируя подключение:
Замените your-opensearch-server на имя хоста вашего сервера OpenSearch и your_username, your_password на ваши учетные данные OpenSearch.
Обработка данных
Убедитесь, что данные корректно индексируются в OpenSearch:
Замените your-opensearch-server на имя хоста вашего сервера OpenSearch, your_username, your_password на ваши учетные данные OpenSearch. Также замените your-index-name на имя вашего индекса.
Файрвол и Конфигурация сети
Убедитесь, что правила файрвола и настройки сети позволяют передачу трафика между Logstash и OpenSearch на порту 25060
.
Логи
Логи для Logstash можно найти в /var/log/logstash/logstash-plain.log
Для получения подробной информации смотрите Решение проблем.
Заключение
В этом руководстве мы прошли через настройку Logstash для сбора и пересылки логов Apache в OpenSearch. Вот краткий обзор того, что мы обсудили:
Установка Logstash: Мы рассмотрели, как использовать менеджеры пакетов APT или YUM, в зависимости от вашего дистрибутива Linux, для установки Logstash на ваш Droplet.
Конфигурация Logstash: Мы создали и настроили файл конфигурации Logstash, чтобы убедиться, что логи Apache правильно анализируются и отправляются в OpenSearch.
Проверка в OpenSearch: Мы настроили шаблон индекса в OpenSearch Dashboards, чтобы подтвердить, что ваши логи правильно индексируются и доступны для анализа.
Сделав эти шаги, вы теперь должны иметь функциональную установку, где Logstash собирает логи Apache и отправляет их в OpenSearch.
Source:
https://www.digitalocean.com/community/tutorials/forward-apache-logs-to-opensearch-via-logstash