OpenSearch Установка и настройка OpenSearch OpenSearch Dashboards Установка и настройка OpenSearch Dashboards Logstash Установка и настройка logstash Beats Установка и настройка filebeat Установка и настройка auditbeat Установка и настройка heartbeat Установка и настройка metricbeat Установка и настройка packetbeat Отображение данных в OpenSearch Dashboards Создание шаблона индексов Создание информационной панели OpenSearch Dashboards Использование Discover
Окружение
OpenSearch стек (OpenSearch, Logstash, OpenSearch Dashboards) — это форк ELK стека (Elasticsearch, Logstash, Kibana). Конвейер обработки данных журнала состоит из трёх этапов: агрегация, обработка и хранение. В традиционном стеке обработка и агрегация данных осуществлялись с использованием Logstash. Из-за проблем с производительностью и сложностью обработки данных возникла потребность в использовании Beats.
Beats — это легковесные агенты сбора данных, каждый из которых предназначен для определенной задачи:
Opensearch — это распределенная система полнотекстового поиска и анализа данных, работающая в режиме реального времени. После добавления данных в opensearch можно выполнять полнотекстовый поиск со сложными функциями: поиск по полю, поиск по нескольким индексам, повышение полей, ранжирование результатов по баллам, сортировка результатов по полю и агрегирование результатов.
Opensearch можно использовать в качестве серверной части для поискового приложения, система обеспечивает хорошую производительность и имеет возможность масштабироваться в зависимости от потребностей приложения.
Для установки opensearch выполните следующий алгоритм действий:
1. Выполните установку пакетов (потребуются права администратора).
Для установки opensearch необходимо определить собственный пароль администратора, чтобы настроить демонстрационную конфигурацию безопасности.
sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD=<custom-admin-password> dnf install opensearch
где:
<custom-admin-password> — установите самостоятельно заданный пароль администратора длиной от 12 символов, содержащий прописные буквы (A-Z), строчные буквы (a-z), спецсимволы, цифры (0-9).
2. Перезагрузите конфигурацию диспетчера systemd:
sudo systemctl daemon-reload
3. Добавьте opensearch в автозагрузку и запустите службу:
sudo systemctl enable opensearch --now
4. Настройки opensearch находятся в файле /etc/opensearch/opensearch.yml. Внесите изменения в конфигурационный файл:
sudo nano /etc/opensearch/opensearch.yml
5. Измените следующие строки:
network.host: 0.0.0.0 discovery.seed_hosts: ["127.0.0.1", "[::1]"]
Сохраните внесённые в конфигурацию изменения и перейдите в терминал.
6. Перезапустите службу opensearch:
sudo systemctl restart opensearch
7. Для проверки статуса службы opensearch можно использовать команду:
sudo systemctl status opensearch
При успешно выполненных настройках в статусе должно отображаться active (running).
8. Проверьте работу opensearch:
curl -X GET https://localhost:9200 -u 'admin:<custom-admin-password>' --insecure
В терминале должна отобразится информация приблизительно следующего содержания:
{ "name" : "localhost.localdomain", "cluster_name" : "opensearch", "cluster_uuid" : "6c3fb4JuQJ2HJxQEfLiqIg", "version" : { "distribution" : "opensearch", "number" : "2.13.0", "build_type" : "tar", "build_hash" : "7ec678d1b7c87d6e779fdef94e33623e1f1e2647", "build_date" : "2024-05-13T00:00Z", "build_snapshot" : false, "lucene_version" : "9.10.0", "minimum_wire_compatibility_version" : "7.10.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "The OpenSearch Project: https://opensearch.org/" }
OpenSearch Dashboards — это веб-интерфейс для opensearch, предоставляющий комплексное решение для визуального анализа, обнаружения и запроса данных мониторинга. При работе с opensearch через консоль OpenSearch Dashboards использовать необязательно. Также вместо OpenSearch Dashboards в качестве веб-интерфейса можно использовать другие инструменты, например, Grafana.
Для установки и настройки opensearch-dashboards выполните следующий алгоритм действий:
1. Выполните установку пакетов:
sudo dnf install opensearch-dashboards
3. Затем запустите и добавьте в автозагрузку службу opensearch-dashboards:
sudo systemctl enable opensearch-dashboards --now
4. Откройте конфигурационный файл opensearch_dashboards.yml:
nano /etc/opensearch-dashboards/opensearch_dashboards.yml
5. Добавьте строку для внешнего подключения к веб-панели:
server.host: "192.168.2.15"
192.168.2.15 — IP-адрес хоста.
6. Перезапустите службу opensearch-dashboards:
sudo systemctl restart opensearch-dashboards
7. Проверьте статус службы opensearch-dashboards:
sudo systemctl status opensearch-dashboards
Отобразится текущий статус службы opensearch-dashboards, включая информацию о том, запущена ли служба, возникли ли ошибки или проблемы при запуске, а также последние записи журнала, связанные со службой. При успешном подключении в статусе должно отображаться: active (running).
Logstash является механизмом обработки событий на стороне сервера. Утилита извлекает данные из широкого спектра источников, трансформирует их и отправляет в opensearch в реальном времени.
Возможности logstash:
Logstash принимает входные данные из следующих источников:
При наличии большого количества разрозненных данных их отправка напрямую в opensearch неудобна, в таких случаях можно использовать предобработку в logstash.
При использовании logstash на него отправляются данные со всех beats и настройки перемещаются в единый центр, где происходит управление, распределение индексов, изменение полей. При большой нагрузке есть возможность вынести logstash на отдельную машину.
Конвейер logstash состоит из трёх компонентов — ввода, фильтров и вывода. Таких блоков может быть любое количество.
input { input_plugin => {...} } filter { filter_plugin => {...} } output { output_plugin => {...} }
Для установки и настройки logstash выполните следующий алгоритм действий:
1. Выполните установку logstash (потребуются права администратора):
sudo dnf install logstash
2. Откройте для редактирования конфигурационный файл pipelines.yml:
nano /etc/logstash/pipelines.yml
3. Добавьте следующие настройки:
- pipeline.id: main path.config: "/etc/logstash/conf.d/*.conf"
4. Создайте конфигурационный файл input.conf:
nano /etc/logstash/conf.d/input.conf
5. Добавьте в него следующие настройки:
input { beats { port => 5044 } }
6. Создайте конфигурационный файл filter.conf:
nano /etc/logstash/conf.d/filter.conf
7. Добавьте в него следующие настройки:
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } add_field => [ "received_at", "%{@timestamp}" ] add_field => [ "received_from", "%{host}" ] } date { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
8. Создайте файл output.conf:
nano /etc/logstash/conf.d/output.conf
9. Добавьте в него следующие настройки:
output { opensearch { hosts => ["https://localhost:9200"] ssl => true ssl_certificate_verification => false user => "admin" password => "custom-admin-password" manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } }
10. Проверьте конфигурацию logstash:
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t /usr/share/logstash/bin/logstash -f
Если конфигурация корректна, в ответе команды появится примерно следующее сообщение: Starting server on port: 5044. Если есть ошибки в конфигурации, будут показаны сообщения об ошибках, которые нужно исправить.
11. Добавьте службу logstash в автозагрузку:
systemctl enable logstash
12. Перезапустите службу logstash:
systemctl restart logstash
13. Проверьте статус logstash:
sudo systemctl status logstash
При успешном подключении появится статус: active (running).
Beats — это легковесные агенты для доставки данных с открытым исходным кодом, располагающиеся на стороне клиента. Их особенность заключается в задействовании небольшого количества ресурсов.
Beats содержит несколько пакетов, являющихся различными модулями системы обработки и анализа данных. Каждый из них предоставляет специальные возможности для сбора и анализа данных, что облегчает создание сквозных решений для анализа логов.
Компоненты beats и logstash являются взаимодополняемыми и в зависимости от задач можно использовать их либо вместе, либо по отдельности.
Модуль используется для сбора и доставки логов из локальных файлов в систему пользователя для мониторинга и анализа. Filebeat может мониторить различные источники данных, такие как логи приложений, системные журналы, а также JSON- и текстовые файлы.
1. Для установки программы filebeat используйте команду (потребуются права администратора):
sudo dnf install filebeat
2. Откройте конфигурационный файл filebeat.yml:
nano /etc/filebeat/filebeat.yml
3. В настройках укажите путь к файлам, которые необходимо собрать, и адрес, куда отправлять результаты.
В разделе Filebeat inputs включите опцию сбора лога:
Filebeat inputs
filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log
В разделе Kibana закомментируйте следующие строки:
Kibana
#setup.kibana: #host: "localhost:5601
В разделе Elasticsearch Output закомментируйте следующие строки:
Elasticsearch Output
#output.elasticsearch: #hosts: ["localhost:9200"]
В разделе Logstash Output раскомментируйте следующие строки, вместо localhost укажите IP-адрес сервера:
Logstash Output
output.logstash: hosts: ["192.168.2.15:5044"]
Сохраните изменения и закройте файл.
4. Активируйте модуль logstash:
sudo filebeat modules enable logstash
5. В файле /etc/filebeat/modules.d/logstash.yml измените настройки модуля. Вы должны включить хотя бы один набор файлов в модуле. По умолчанию наборы файлов отключены. Поменяйте значение enabled: false на true.
- module: logstash access: enabled: true
6. Перед запуском filebeat рекомендуется протестировать файл конфигурации на наличие ошибок:
sudo filebeat test config
При успешных настройках появится сообщение: «Config OK».
7. Настройте автозагрузку filebeat и запустите службу:
sudo systemctl enable --now filebeat
8. Проверьте состояние filebeat с помощью команды:
sudo systemctl status filebeat
При успешно выполненных настройках в статусе службы должно отображаться active (running).
Модуль системы обработки и анализа данных, предназначенный для мониторинга активности пользователей и процессов операционной системы. Он собирает данные об аудите безопасности, такие как журналы аудита, и отправляет их в opensearch или logstash для анализа и визуализации. Auditbeat отправляет эти события в режиме реального времени в opensearch для дальнейшего анализа. Можно следить за изменениями в определенных папках, идентифицировать потенциальные нарушения политики безопасности.
1. Для установки программы auditbeat используйте команду (потребуются права администратора):
sudo dnf install auditbeat
2. Настройте auditbeat:
sudo nano /etc/auditbeat/auditbeat.yml
В разделе Logstash Output раскомментируйте следующие строки:
3. Перед запуском auditbeat рекомендуется протестировать файл конфигурации на наличие ошибок:
sudo auditbeat test config
4. После настройки файла конфигурации необходимо запустить и настроить службу auditbeat для автозагрузки:
sudo systemctl enable --now auditbeat
5. Проверьте состояние auditbeat с помощью команды:
sudo systemctl status auditbeat
Это модуль мониторинга доступности, предназначенный для проверки доступности и производительности служб и ресурсов. Он может мониторить HTTP-эндпоинты, TCP-службы, DNS-серверы и другие ресурсы, отправляя тестовые запросы и анализируя ответы. Heartbeat отслеживает доступность служб с помощью активного поиска. Получив список URL-адресов, heartbeat задаёт вопрос о доступности системы и отправляет эту информацию и время отклика в остальную часть стека для дальнейшего анализа.
Для установки программы heartbeat используйте команду (потребуются права администратора):
sudo dnf install heartbeat
1. Откройте конфигурационный файл heartbeat.yml:
sudo nano /etc/heartbeat/heartbeat.yml
2. Настройте параметры в файле heartbeat.yml в соответствии с примером:
Включите монитор, который необходимо использовать.
heartbeat.monitors: - type: http urls: ["https://192.168.2.15:9200"] schedule: '@every 60s' id: dashboards name: 'Opensearch Dashboards' username: "admin" password: "custom-admin-password"
В этом примере файл heartbeat.yml настраивает параметры мониторинга и управления кластером из двух узлов с использованием heartbeat для обеспечения высокой доступности. В случае неисправности одного из узлов, другой узел возьмёт на себя его роль.
Перед запуском heartbeat рекомендуется протестировать файл конфигурации на наличие ошибок:
sudo heartbeat test config
3. После настройки файла конфигурации необходимо запустить и настроить службу heartbeat для автозагрузки:
sudo systemctl enable --now heartbeat-elastic
4. Проверьте состояние heartbeat с помощью команды:
sudo systemctl status heartbeat-elastic
Metricbeat — это модуль сбора метрик, предназначенный для сбора различных системных метрик и сервисной статистики. Он может собирать данные о производительности хостов, сетевого трафика, использования ресурсов контейнеров и многого другого. Применяется для мониторинга серверов/приложений.
Для установки программы metricbeat используйте команду (потребуются права администратора):
sudo dnf install metricbeat
Для настройки metricbeat выполните следующий алгоритм действий:
1. Откройте основной файл конфигурации /etc/metricbeat/metricbeat.yml для редактирования:
sudo nano /etc/metricbeat/metricbeat.yml
2. Измените настройки.
В разделе Modules configuration измените значение параметра reload.enabled на true.
Modules configuration
metricbeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: true
3. Откройте на редактирование конфигурационный файл metricbeat.reference.yml:
sudo nano /etc/metricbeat/metricbeat.reference.yml
4. Заполните конфигурационный файл и сохраните настройки.
metricbeat.config.modules: path: ${path.config}/modules.d/*.yml reload.period: 10s reload.enabled: true metricbeat.max_start_delay: 10s metricbeat.modules: - module: system metricsets: - cpu - load - memory - network - process - process_summary - uptime - socket_summary enabled: true period: 10s processes: ['.*']
5. Перед запуском metricbeat рекомендуется протестировать файл конфигурации на наличие ошибок:
sudo metricbeat test config
6. После настройки файла конфигурации, необходимо запустить и активировать автозагрузку metricbeat:
sudo systemctl enable --now metricbeat
7. Проверьте статус metricbeat:
sudo systemctl status metricbeat
8. Для просмотра всех модулей выполните команду:
metricbeat modules list
9. Активируйте нужные модули:
metricbeat modules enable logstash
Packetbeat — модуль для сбора метрик, предназначенный для мониторинга и анализа сетевого трафика протоколов уровня приложений в реальном времени. Packetbeat может анализировать различные протоколы, такие как HTTP, DNS, MySQL и другие службы, а также обнаруживать аномалии и атаки в сети. Мониторинг сетевого трафика имеет важное значение для управления инфраструктурой, обеспечивая высокий уровень производительности и безопасности.
На клиентской машине нужно настроить агент-отправитель. После сбора и обработки данных с хостов и контейнеров агент отправляет сгенерированные отчеты в logstash или opensearch.
Для установки программы packetbeat используйте команду (потребуются права администратора):
sudo dnf install packetbeat
После установки packetbeat нужно настроить. Основной файл конфигурации packetbeat.yml находится в каталоге /etc/packetbeat/. Откройте его для редактирования:
sudo nano /etc/packetbeat/packetbeat.yml
Настройте сетевые интерфейсы, которые packetbeat будет использовать для мониторинга трафика, например:
packetbeat.interfaces.device: any
any — означает мониторинг всех доступных интерфейсов. Можно указать конкретный интерфейс, например eth0.
Включите и настройте протоколы, которые packetbeat будет анализировать. Например:
packetbeat.protocols: - type: http ports: [80, 8080, 8000, 5000, 8002] - type: mysql ports: [3306] - type: dns ports: [53] - type: redis ports: [6379]
Этот пример включает анализ HTTP, MySQL, DNS и Redis трафика на указанных портах.
Перед запуском packetbeat рекомендуется протестировать файл конфигурации на наличие ошибок:
sudo packetbeat test config
После настройки файла конфигурации, необходимо запустить и настроить службу packetbeat для автозагрузки:
sudo systemctl enable --now packetbeat
Проверьте статус packetbeat:
sudo systemctl status packetbeat
Для просмотра данных в веб-панели OpenSearch Dashboards подключитесь через веб-браузер, используя IP-адрес машины, на которой развернут logstash:
http://192.168.2.15:5601
Введите аутентификационные данные, созданные при установке opensearch.
Для осуществления поиска данных с помощью OpenSearch Dashboards необходимо создать шаблон индексов. Перейдите в «Основное меню» (1) — «Dashboards Management» (2).
Выберите «Index Pattern».
Нажмите кнопку «Create index pattern».
В поле «Index pattern name» (1) введите имя индекса «filebeat-*» и нажмите «Next step» (2).
В поле «Time field» выберите значение «@timestamp» (1) и нажмите «Create index pattern» (2).
Аналогичным образом создаются индексы для auditbeat-*, heartbeat-*, metricbeat-*, packetbeat-*.
Для отображения данных в OpenSearch Dashboards необходимо создать информационную панель. Для этого перейдите в «Основное меню» (1) — «Dashboards» (2).
На панели «Dashboards» выберите «Create» — «Dashboards».
Выберите значок календаря и установите временной фильтр, например, 30 дней.
Выберите на панели «Add an existing» для добавления существующего объекта.
В окне «Add panels» выберите необходимую панель, а затем закройте панель. В результате будет создана базовая панель для мониторинга.
С помощью раздела Discover можно выбирать данные для анализа, устанавливать временной диапазон для этих данных, выполнять поиск с помощью языка запросов Dashboards и фильтровать результаты.
В навигационном меню OpenSearch Dashboards выберите раздел «Discover».
На странице Discover выберите шаблон индекса «filebeat-*» (1) из выпадающего меню в левом верхнем углу. Выберите значок для изменения временного фильтра и установите значение «Last 30 minutes» (2).
Результат для индекса «auditbeat-*»:
Результат для индекса «heartbeat-*»:
Результат для индекса «metricbeat-*»:
Результат для индекса «packetbeat-*»:
Дата последнего изменения: 24.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Нажимая «Отправить запрос», вы соглашаетесь с условиями обработки персональных данных.
Вы будете получать только актуальную информацию по обновлению безопасности
Подписываясь на уведомления, вы соглашаетесь с условиями обработки персональных данных.
На ваш почтовый адрес отправлено письмо с подтверждением подписки.