Учебное пособие по стеку ELK: начало работы с Elasticsearch, Logstash, Kibana и Beats
ELK Stack — один из лучших инструментов для просмотра и обработки файлов в стеке ELK или Elastic Stack. Этот инструмент состоит из E-Elasticsearch, L-Logstash и K-Kibana — трех инструментов с открытым исходным кодом.
Инструменты ELK Stack используются для обработки и анализа больших объемов данных в режиме реального времени. Однако Beats — это открытая и независимая платформа для специализированных поставщиков данных. Он отправляет данные из сотен или тысяч систем и машин в Elasticsearch или Logstash.
ELK Stack широко используется в различных отраслях, таких как здравоохранение, финансы и ИТ, для устранения неполадок, мониторинга и анализа журналов. Итак, этот длинный блог предоставит вам полную информацию о стеке ELK и методах его настройки в Linux.
Учебное пособие по стеку ELK: Elasticsearch, Logstash, Kibana и Beats
Как мы уже упоминали выше, ELK Stack представляет собой комбинацию различных инструментов, поэтому давайте обсудим их все по одному, чтобы получить краткое представление о них —
Elasticsearch – Elasticsearch – это база данных с возможностью поиска файлов журналов, обеспечивающая эффективный и быстрый поиск данных. В основном этот инструмент используется для индексации и хранения данных. Он используется как масштабируемая база данных с возможностью поиска для хранения данных.
-
Logstash – Logstash действует как конвейер обработки данных для чтения, сбора, преобразования и анализа данных из различных источников, а затем отправки данных в ElasticSearch. Этот инструмент собирает журналы и другие данные из различных источников, включая приложения, серверы и устройства.
Kibana — Kibana использует интерфейс веб-браузера для организации и отображения данных. Этот инструмент имеет широкие возможности настройки, поэтому пользователи могут настроить его соответствующим образом. В то же время он позволяет создавать отчеты и интерактивные информационные панели для анализа данных, хранящихся в ElasticSearch.
Это инструмент визуализации, предлагающий удобный пользовательский интерфейс для просмотра пользовательских данных. Эта функция позволяет пользователям легко исследовать и визуализировать данные.
Бета-версия. Beats – это легкие средства доставки данных или небольшие приложения для сбора данных, предназначенные для отдельных задач. Различные приложения Beats используются для разных целей, например для доступа к другим частям сервера, чтения файлов и их отправки. Например, Packetbeat анализирует сетевой трафик, а Filebeat используется для сбора файлов журналов.
Примечание. Некоторые пользователи используют Logstash напрямую, вообще пропуская доли. При этом некоторые подключают Beats напрямую к Elasticsearch.
Особенности стека ELK
Документ JSON реплицирует сегментированное хранилище с возможностью поиска.
Поиск НЗТ (почти в реальном времени).
Полнотекстовый поиск
Геолокация и многоязычная поддержка.
Имеет веб-интерфейс REST API с выводом JSON.
Как установить стек ELK?
Вы можете установить ELK локально в Docker, Cloud и системах управления конфигурацией, таких как Chef, Puppet и Ansible. Вы можете загрузить этот инструмент в соответствии с дистрибутивом Linux, который вы используете на своем устройстве.
Предварительные условия для установки стека ELK
Давайте воспользуемся Ubuntu, чтобы показать способ установки стека ELK —
Шаг 1. Обновите репозитории
Сначала обновите систему в соответствии с последними доступными обновлениями –
sudo apt update
Шаг 2. Установите Java (требуется для Elasticsearch и Logstash).
Для установки Logstash требуется Java 8 или Java 11 в системах. Следовательно, сначала установите его с помощью следующей команды —
sudo apt install default-jre
Шаг 3. Установите Nginx
Kibana должна быть общедоступной, а nginx настроен как обратный прокси-сервер. Поэтому, пожалуйста, запустите приведенную ниже команду для установки nginx –
sudo apt install nginx -y
Чтобы проверить, установлен ли nginx, зайдите в браузер и введите свой локальный IP-сервер. Если nginx успешно установлен, вы увидите тот же результат, что и на следующем изображении.
Когда вы закончите, пришло время настроить все компоненты из apt. Более того, вы также можете скачать эти компоненты прямо с официального сайта. Здесь мы рассмотрим установку всех компонентов стека ELK по отдельности в Ubuntu 22.04.
Как установить Elasticsearch
Шаг 1. Добавьте ключ Elasticsearch
Чтобы установить Elasticsearch, сначала добавьте ключ подписи Elasticsearch с помощью следующей команды:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Примечание. Если вы уже установили вышеуказанные пакеты, вы можете пропустить указанный выше шаг.
Теперь установите пакет Transport-https с помощью следующей команды:
sudo apt-get update && sudo apt-get install apt-transport-https
Затем выполните приведенную ниже команду в терминале, чтобы добавить определение репозитория в вашу систему:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Используйте следующую команду для установки версии Elasticsearch с функциями, лицензированными под Apache 2.0:
echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Шаг 2. Установите Elasticsearch
Теперь обновите репозитории системы, а затем установите Elasticsearch –
sudo apt-get update && sudo apt-get install elasticsearch
Шаг 3. Настройте Elasticsearch
Давайте теперь настроим систему после установки Elasticsearch. Его файл конфигурации позволяет вам настраивать параметры сети, такие как порт и хост, включая такие детали, как файлы журналов и память. Добавьте свой частный IP-адрес с помощью приведенной ниже команды, чтобы открыть файл конфигурации Elasticsearch –
sudo nano /etc/elasticsearch/elasticsearch.yml
Примечание. Вы можете выбрать любой редактор, чтобы открыть указанный выше файл конфигурации.
Раскомментируйте две отмеченные выше строки в файле конфигурации и добавьте свой локальный хост по адресу 192.168.0.1.
network host: <local host name>
Поскольку вы настраиваете здесь кластер с одним узлом, перейдите в раздел «Обнаружение» и добавьте следующую строку.
discovery .type: single-node
Размер кучи JVM по умолчанию установлен на уровне 1 ГБ. Не следует устанавливать размер кучи не более половины общего объема памяти. Откройте файл ниже, чтобы установить размер кучи, используя следующую команду:
sudo nano /etc/elasticsearch/jvm.options
Следовательно, найдите строки, начинающиеся с -Xms (минимум) и -Xmx (максимум), и установите их размер 512 МБ.
-xms512m
-xms512m
Шаг 4. Запустите Elasticsearch
После завершения всей настройки в файле конфигурации Elasticsearch запустите и включите службу Elasticsearch, используя следующую команду systemctl:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
После этого проверьте статус Elasticsearch –
sudo systemctl status elasticsearch
Шаг 5. Проверьте установленный Elasticsearch
Если вы хотите проверить Elasticsearch, выполните следующую команду:
http://локальный хост:9200
Кроме того, вы также можете подтвердить это с помощью следующей команды Curl в терминале.
Curl -X GET "localhost:9200"
Если ваш результат такой же, как на изображении выше, это показывает, что Elasticsearch работает правильно.
Как установить Кибану?
Шаг 1: Установите Кибану
Вы также можете установить Kibana через репозиторий с помощью команды ниже:
sudo apt install kibana
Шаг 2. Настройте Кибану
Запустите команду ниже, чтобы открыть файл конфигурации Kibana.
sudo nano /etc/kibana/kibana.yml
Удалите знак «#» из строк, отмеченных ниже, чтобы раскомментировать следующие строки:
server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
Блокировка сервера в Nginx будет маршрутизировать весь трафик на локальный хост. Для этого вам необходимо создать новый сайт в следующем каталоге.
sudo nano /etc/nginx/sites-available/file.com
Например, мы назовем файл «file.com» и скопируем в него следующие строки:
server {
listen 80;
server_name file.com;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
prxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
Вышеупомянутый сервер перенаправит весь входящий трафик на localhost:5601 только через порт 80, который прослушивает Kibana. Наряду с этим он также проверяет подлинность всех запросов к списку пользователей Nginx.
Создайте символическую ссылку, используя следующую команду, чтобы включить вновь созданный сайт.
sudo ln -s /etc/nginx/sites-available/file.com /etc/nginx/sites-enabled/file.com
Затем проверьте файл конфигурации на наличие любой конфигурации или синтаксиса, используя следующую команду:
sudo nginx -t
Сайт по умолчанию расположен в каталоге с поддержкой сайтов Nginx, и система может загрузить его по умолчанию. Перейдите в каталог конфигурации Nginx и включите вновь созданный файл file.com.
nano /etc/nginx/nginx.conf
Наконец, перезапустите службу Nginx, сохранив файл конфигурации.
Шаг 3. Запустите и включите Kibana
Запустите и включите Kibana с помощью простой команды systemctl.
sudo systemctl start kibana
sudo systemctl enable kibana
Чтобы проверить, работает ли Kibana, вы можете проверить его статус с помощью следующей команды:
sudo systemctl status kibana
Теперь вы можете открыть Kibana в своем браузере по адресу http://localhost:5601.
Примечание. Если брандмауэр UFW включен, вы должны разрешить трафик на порту 5601 для доступа к панели управления Kibana.
sudo ufw allow 5601/tcp
Установка Логсташа
Шаг 1. Установите Логсташ
Это легко настраиваемый компонент стека ELK. Вы можете установить Logstash непосредственно из репозитория с помощью следующей команды:
sudo apt install logstash
Шаг 2. Настройте Logstash
Файлы конфигурации этого компонента находятся в /etc/logstash/conf.d/. Вы можете настроить его выходные данные, фильтры и входные конвейеры в соответствии с вашими требованиями. Все пользовательские файлы конфигурации Logstash хранятся в /etc/logstash/conf.d/.
Шаг 3. Запустите и включите Logstash
Чтобы запустить и включить logstash, выполните приведенную ниже команду.
sudo systemctl start logstsash
Вы можете проверить статус Logstash, активен он или нет, используя команду ниже:
sudo systemctl status logstsash
Установка Битов
Как и большинство других компонентов, многие поставщики Beat могут быть установлены аналогичным образом. Итак, давайте посмотрим, как установить Metricbeat.
Metricbeat отправляет показатели системного уровня, такие как память, использование ЦП и т. д. Здесь мы будем отправлять данные непосредственно в Elasticsearch.
Шаг 1. Установите Metricbeat
Сначала мы установим Metricbeat на сервер с помощью простой команды apt –
sudo apt install metricbeat
Шаг 2. Настройте Metricbeat
Откройте файл Metricbeat.yml в любом редакторе и найдите Kibana. После этого раскомментируйте локальный хост, удалив символ «#».
sudo /etc/metricbeat/metricbeat.yml
host: "localhost:5601"
Аналогичным образом раскомментируйте Elasticsearch, где это будет локальный хост. Более того, мы выполним настройку, оставив остальные настройки по умолчанию.
host: ["localhost:9200"]
Проверьте вышеуказанную конфигурацию, выполнив следующую команду.
sudo metribeat test output
Поскольку в приведенном выше выводе нет ошибок, Kibana и Elasticsearch успешно взаимодействуют с Metricbeat. Если ваш системный модуль не включен, вы можете включить его с помощью следующей команды:
sudo metricbeat modules enable <module_name>
Чтобы просмотреть файлы конфигурации каждого модуля, перейдите в каталог установки metricbeat. Все его файлы конфигурации находятся в этом каталоге Modules.d. Например, чтобы открыть модуль system.yml, используйте следующую команду:
sudo nano /etc/metricbeat/modules.d/system.yml
Вы можете внести изменения в приведенный выше файл конфигурации, но здесь мы оставим все конфигурации по умолчанию. Kibana использует несколько панелей мониторинга для визуализации данных. Это панель мониторинга по умолчанию для каждой панели мониторинга. Используйте команду ниже, чтобы установить панель мониторинга Metricbeat по умолчанию, используя следующую команду:
sudo metricbeat setup
Шаг 3. Запустите и включите Metricbeat
Запустите Metricbeat, используя следующую команду:
sudo systemctl start metricbeat
Проверьте текущий статус Metricbeat.
sudo systemctl status metricbeat
Теперь Metricbeat начинает мониторинг сервера и создает индекс Elasticsearch, который вы также можете определить в Kibana.
Плюсы и минусы стека ELK
Elastic Stack имеет определенные преимущества и недостатки.
Free to get started
Сложные требования к управлению
Official Clients in Multiple Programming Languages
Проблемы масштабирования
Real-Time Data Analysis & Visualization
Компромиссы в отношении хранения данных
Centralized Logging Capabilities
Проблемы со стабильностью и работоспособностью
Multiple Hosting Options
Высокая стоимость владения
Использование стека ELK
Мониторинг журналов в реальном времени предоставляет следующие варианты творческого использования Elastic Stack из различных ресурсов:
Обнаружение ошибок в новом приложении – при создании любого нового приложения стек ELK информирует вас о его ошибках. Благодаря этому вы сможете как можно скорее исправить ошибки и недочёты и улучшить дизайн вашего приложения.
Мониторинг трафика – помогает отслеживать данные о трафике веб-сайта и дает информацию о том, перегружен ли ваш сервер. То есть ELK Stack генерирует данные, с помощью которых пользователи могут принимать обоснованные бизнес-решения и решать проблемы.
Сбор данных из Интернета – ELK Stack может искать, индексировать и собирать неструктурированные данные из различных источников, что упрощает визуализацию и сбор информации, полученной из Интернета.
Решения для электронной коммерции. Более быстрые ответы, агрегирование, индексирование и полнотекстовый поиск повышают удобство работы пользователей. Визуальный мониторинг поискового поведения и тенденций Elasticsearch помогает улучшить анализ тенденций.
Мониторинг безопасности. Система мониторинга сервера является одним из важных приложений безопасности в стеке ELK. Это помогает обнаруживать атаки на серверы с помощью системы предупреждения в режиме реального времени, проверяя необычные запросы сразу же после их обнаружения и сводя к минимуму причиненный ими ущерб.
Подведение итогов
В этом длинном блоге мы кратко рассказали о стеке ELK. Как мы упоминали ранее, ELK Stack — это инструмент с открытым исходным кодом, то есть вы можете получить его, ничего не платя. Кроме того, мы описали подробный подход к настройке ELK Stack, включая все связанные с ним инструменты.