ELK Stack - самая популярная в мире платформа для управления журналами. Это набор продуктов с открытым исходным кодом, включая Elasticsearch, Logstash и Kibana. Все эти 3 продукта разрабатываются, управляются и обслуживаются Elastic.
ELK Stack - это мощная платформа с открытым исходным кодом, которая может управлять огромным объемом регистрируемых данных. Журнал входных данных обычно осуществляется с помощью графического веб-интерфейса (GUI).
- Elasticsearch - это поисковая и аналитическая система на основе JSON, предназначенная для горизонтальной масштабируемости и упрощения управления.
- Logstash - это интерфейс обработки данных на стороне сервера, который может одновременно собирать данные из нескольких источников. Затем он преобразует его, а затем отправляет данные в желаемый тайник. Это приложение с открытым исходным кодом.
- Kibana используется для визуализации ваших данных и навигации по эластичному стеку. Это также инструмент с открытым исходным кодом.
Установите и настройте стек ELK в Ubuntu
В этом уроке мы собираемся использовать filebeat для отправки данных журнала в Logstash. Beats - это легковесные поставщики данных, и для начала нам нужно установить агент на серверах.
Шаг 1) Установка Java 8
ElasticSearch поддерживает Java 8 и 9, но проблема в том, что Logstash совместим только с Java 8. Java 9 пока не поддерживается. Поэтому мы собираемся установить Oracle Java 8.
Запустите Терминал и добавьте репозиторий Oracle Java 8 с последующим обновлением системы и фактической установкой.
sudo add-apt-репозиторий ppa: webupd8team / java
sudo apt-get update
sudo apt установить oracle-java8-set-default
Обратите внимание на Терминал. Вам нужно будет согласиться с окнами лицензионного соглашения и выбрать «да», чтобы продолжить. После завершения установки вы можете проверить версию java, используя следующие команды:
.sudo java -version
sudo echo $ JAVA_HOME
Шаг 2) Установка и настройка Elasticsearch
Давайте начнем с wget команда для загрузки Elasticsearch, за которой следует открытый ключ подписи:
sudo wget -qO - https: // артефакты.эластичный.co / GPG-KEY-elasticsearch | sudo apt-key добавить -
Во-вторых, установите пакет apt-transport-https (это необходимо для дистрибутивов на базе Debian).
sudo apt-get install apt-transport-https
Добавьте репозиторий:
echo "deb https: // артефакты.эластичный.co / packages / 6.x / apt стабильный основной "| sudo tee -a / etc / apt / sources.список.д / резинка-6.Икс.список
Обновите список репо и установите пакет:
sudo apt-get update
sudo apt-get install elasticsearch
Давайте изменим «elasticsearch.yml »файл:
Судо Вим / и т. д. / elasticsearch / elasticsearch.yml
Раскомментируйте «сеть».host »и« http.порт ». Должна быть добавлена следующая конфигурация:
сеть.хост: localhost http.порт: 9200
Далее сохраните и закройте файл.
Чтобы обеспечить бесперебойную работу ElasticSearch, включите его при загрузке и запустите ElasticSearch.
sudo systemctl включить elasticsearch.услуга
sudo systemctl start elasticsearch.услуга
Проверить установку:
sudo curl -XGET 'локальный хост: 9200 /?симпатичный'
Шаг 3) Установка Kibana
Теперь приступим к установке Kibana и изменим настройки Kibana:
sudo apt-get install kibana
судо вим / и т. д. / кибана / кибана.yml
Раскомментируйте следующие строки:
сервер.порт: 5601 сервер.хост: "localhost" elasticsearch.url: "http: // localhost: 9200"
Сохраните и выйдите из файла.
Включите его при загрузке и запустите сервис Kibana:
sudo systemctl включить кибану.услуга
sudo systemctl start kibana.услуга
Шаг 4) Настройка Nginx в качестве обратного прокси для Kibana
В аналогичных строках установим Nginx, настроим его и запустим службу. Используйте следующие команды по очереди:
sudo apt-get установить nginx apache2-utils
Настроить виртуальный хост:
Судо Вим / и т. д. / nginx / сайты-доступные / лось
Добавьте в файл следующую конфигурацию:
сервер слушать 80; имя_сервера лось.фосслинукс.com; auth_basic «Ограниченный доступ»; auth_basic_user_file / и т.д. / nginx /.elkusersecret; местоположение / прокси-пароль http: // localhost: 5601; proxy_http_version 1.1; proxy_set_header Обновить $ http_upgrade; proxy_set_header Соединение «апгрейд»; proxy_set_header Host $ host; proxy_cache_bypass $ http_upgrade;
Создайте файл пользователя и пароля для аутентификации в веб-браузере:
sudo htpasswd -c / etc / nginx /.elkusersecret elkusr
Введите пароль и повторите. Проверьте конфигурации Nginx:
sudo nginx -t
Включите Nginx при загрузке системы и перезапустите службу:
sudo systemctl включить nginx.услуга
sudo systemctl перезапустить nginx.услуга
Шаг 5) Установка и настройка Logstash
Установите Logstash:
sudo apt-get install logstash
Здесь мы собираемся сгенерировать ключ сертификата SSL для безопасной передачи журнала от клиента файловой системы. Измените файл «hosts» перед созданием сертификата SSL.
судо vim / и т.д. / хосты
Добавьте в файл следующую строку. Обязательно измените IP и имя сервера на свои.
172.31 год.31 год.158 лось-сервер лось-сервер
Когда закончите, сохраните и выйдите из файла.
Теперь смените каталог на Logstash.
sudo cd / etc / logstash /
Создайте папку для SSL:
sudo mkdir ssl
Создать сертификат SSL. Измените elk-server на свое имя сервера в следующей команде.
sudo openssl req -subj '/ CN = elk-server /' -x509 -days 3650 -batch -nodes -newkey rsa: 2048 -keyout ssl / logstash-forwarder.ключ -out ssl / logstash-forwarder.crt
Создайте следующие файлы внутри «/ etc / logstash / conf.d ”.
sudo cd / etc / logstash / conf.d /
создать файл ввода-вывода с помощью vim.
sudo vim filebeat-ввод.conf
Добавьте к нему следующие строки.
input beats port => 5443 type => syslog ssl => true ssl_certificate => "/ etc / logstash / ssl / logstash-forwarder.crt "ssl_key =>" / etc / logstash / ssl / logstash-forwarder.ключ"
Сохраните и закройте файл и создайте новый файл конфигурации.
sudo vim syslog-фильтр.conf
Добавьте к нему следующее содержимое.
filter if [type] == "syslog" grok match => "message" => "% SYSLOGTIMESTAMP: syslog_timestamp% SYSLOGHOST: syslog_hostname% DATA: syslog_program (?: \ [% POSINT: syslog_pid \])?:% GREEDYDATA: syslog_message " add_field => [" receive_at ","% @ timestamp "] add_field => [" receive_from ","% host "] дата match => [" syslog_timestamp " , "МММ д ЧЧ: мм: сс", "МММ дд ЧЧ: мм: сс"]
Сохраните и выйдите из файла. Создавать эластичный поиск выходной файл.
sudo vim output-elasticsearch.conf
Добавьте к нему следующие строки.
вывод elasticsearch hosts => ["localhost: 9200"] hosts => "localhost: 9200" manage_template => false index => "% [@ metadata] [beat] -% + YYYY.ММ.dd "document_type =>"% [@ метаданные] [тип] "
Давайте включим Logstash при загрузке и запустим службу:
sudo systemctl включить logstash.услуга
sudo systemctl start logstash.услуга
Шаг 6) Установка и настройка Filebeat на клиентских серверах
Начните с редактирования хозяева файл для добавления записей хоста лося. Обязательно замените IP и имя на свои.
судо vim / и т.д. / хосты
172.31 год.31 год.158 лось-сервер
Сохраните и выйдите из файла.
Загрузите и установите открытый ключ подписи:
sudo wget -qO - https: // артефакты.эластичный.co / GPG-KEY-elasticsearch | sudo apt-key добавить -
Установите «apt-transport-https» и добавьте репо.
sudo apt-get install apt-transport-https
sudo echo "deb https: // артефакты.эластичный.co / packages / 6.x / apt стабильный основной "| sudo tee -a / etc / apt / sources.список.д / резинка-6.Икс.список
Обновите репо и установите Filebeat.
sudo apt-get update
sudo apt-get install filebeat
Изменить конфигурации Filebeat.
Судо vim / и т. д. / filebeat / filebeat.yml
Найдите следующую строку и измените значение на «истина».
включен: правда
Здесь мы не изменяем путь к журналу и Filebeat пересылает все журналы в папку «var / log»
пути: - / var / log / *.бревно
Раскомментируйте следующие строки:
выход.logstash: # Хосты Logstash: ["elk-server: 5443"] ssl.certificate_authorities: ["/ etc / filebeat / logstash-forwarder.crt "]
Комментарий Elasticsearch:
#выход.elasticsearch: # Массив хостов для подключения. # хостов: ["localhost: 9200"]
Сохраните и выйдите из файла.
Теперь перейдите на сервер ELK и получите «logstash-forwarder.crt »содержание
sudo cat / etc / logstash / ssl / logstash-forwarder.crt
скопировать вывод, а затем перейти на клиент-сервер Elk.
Создайте файл сертификата
Судо Вим / и т. д. / filebeat / logstash-форвардер.crt
вставить скопированный вывод и сохранить и выйти.
Давать возможность filebeat при загрузке системы Пуск filebeat услуга.
sudo systemctl включить filebeat.услуга
sudo systemctl start filebeat.услуга
Шаг 7) Просмотр панели инструментов Kibana
Запустите ваш любимый веб-браузер и введите имя домена, а затем имя пользователя и пароль.
http: // лось.фосслинукс.ком
Введите созданное имя пользователя и пароль. Вы должны увидеть страницу приветствия Kibana. Нажмите кнопку «Изучить мои собственные».
Вы должны быть перенаправлены на домашнюю страницу Kibana.
Нажмите «Обнаружить» слева. Нажмите «Создать шаблон индекса».
Затем определите шаблон индекса «filebeat- *».
Нажмите "Далее", выберите "@timestamp" и нажмите "Создать шаблон индекса".
Шаблон индекса должен быть создан.
Щелкните меню «Обнаружение», чтобы просмотреть журналы сервера.
Журналы будут отображаться в соответствии с отметкой времени. Щелкните любую метку времени, чтобы развернуть ее и просмотреть содержимое файла журнала и его подробности.
Если вы добрались сюда, это означает, что вы успешно установили и настроили стек ELK с filebeat. Есть проблемы? Не стесняйтесь сообщить нам об этом в комментариях ниже.