Как установить Elasticsearch, Logstash и Kibana (ELK Stack) на CentOS 7

Вступление

В этом руководстве мы рассмотрим установку стека Elasticsearch ELK в CentOS 7, то есть Elasticsearch 2.2.x, Logstash 2.2.x и Kibana 4.4.x. Мы также покажем вам, как настроить его для сбора и визуализации системных журналов ваших систем в централизованном месте, используя Filebeat 1.1.x. Logstash - это инструмент с открытым исходным кодом для сбора, анализа и хранения журналов для дальнейшего использования. Kibana - это веб-интерфейс, который можно использовать для поиска и просмотра журналов, проиндексированных Logstash. Оба эти инструмента основаны на Elasticsearch, который используется для хранения журналов.

Централизованное ведение журнала может быть очень полезно при попытке выявить проблемы с вашими серверами или приложениями, так как оно позволяет вам искать во всех ваших журналах в одном месте. Это также полезно, поскольку позволяет идентифицировать проблемы, которые охватывают несколько серверов, сопоставляя их журналы в течение определенного периода времени.

Можно использовать Logstash для сбора журналов всех типов, но мы ограничим область применения этого руководства сбором syslog.

Наша цель

Цель этого руководства - настроить Logstash для сбора системных журналов с нескольких серверов и настроить Kibana для визуализации собранных журналов.

Наша установка стека ELK состоит из четырех основных компонентов:

  • * Logstash *: серверный компонент Logstash, который обрабатывает входящие журналы

  • * Elasticsearch *: хранит все журналы

  • * Kibana *: веб-интерфейс для поиска и визуализации логов, которые будут проксироваться через Nginx

  • * Filebeat *: Установленный на клиентских серверах, которые будут отправлять свои журналы в Logstash, Filebeat служит агентом доставки журналов, который использует сетевой протокол lumberjack для связи с Logstash.

изображение: https: //assets.digitalocean.com/articles/elk/elk-infrastructure.png [Инфраструктура ELK]

Мы установим первые три компонента на одном сервере, который мы будем называть нашим * ELK-сервером *. Filebeat будет установлен на всех клиентских серверах, для которых мы хотим собирать журналы, которые мы будем называть нашими * Клиентскими серверами *.

Предпосылки

Чтобы завершить это руководство, вам потребуется root-доступ к CentOS 7 VPS. Инструкции по настройке можно найти здесь (шаги 3 и 4): Initial Server Setup с CentOS 7.

Если вы предпочитаете использовать вместо этого Ubuntu, ознакомьтесь с этим руководством: https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu- 14-04 [Как установить ELK в Ubuntu 14.04].

Объем ЦП, ОЗУ и хранилища, которые требуются вашему серверу ELK, зависит от объема журналов, которые вы собираетесь собирать. В этом руководстве мы будем использовать VPS со следующими спецификациями для нашего сервера ELK:

  • ОС: CentOS 7

  • RAM: 4 ГБ

  • Процессор: 2

В дополнение к вашему ELK-серверу вам понадобятся несколько других серверов, с которых вы будете собирать журналы.

Давайте приступим к настройке нашего сервера ELK!

Установите Java 8

Elasticsearch и Logstash требуют Java, поэтому мы установим это сейчас. Мы установим последнюю версию Oracle Java 8, потому что именно это рекомендует Elasticsearch. Однако он должен хорошо работать с OpenJDK, если вы решите пойти по этому пути. Выполнение шагов в этом разделе означает, что вы принимаете Бинарное лицензионное соглашение Oracle для Java SE.

Перейдите в свой домашний каталог и загрузите JDK RPM Oracle Java 8 (обновление 73, самое позднее на момент написания этой статьи) с помощью следующих команд:

cd ~
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u73-b02/jdk-8u73-linux-x64.rpm"

Затем установите RPM с помощью этой команды yum (если вы скачали другую версию, замените имя файла здесь):

sudo yum -y localinstall jdk-8u73-linux-x64.rpm

Теперь Java должна быть установлена ​​в + / usr / java / jdk1.8.0_73 / jre / bin / java + и связана с + / usr / bin / java +.

Вы можете удалить архивный файл, который вы скачали ранее:

rm ~/jdk-8u*-linux-x64.rpm

Теперь, когда Java 8 установлена, давайте установим ElasticSearch.

Установить Elasticsearch

Elasticsearch можно установить с помощью менеджера пакетов, добавив хранилище пакетов Elastic.

Выполните следующую команду, чтобы импортировать открытый ключ GPG Elasticsearch в rpm:

sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

Создайте новый файл репозитория yum для Elasticsearch. Обратите внимание, что это одна команда:

echo '[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
' | sudo tee /etc/yum.repos.d/elasticsearch.repo

Установите Elasticsearch с помощью этой команды:

sudo yum -y install elasticsearch

Elasticsearch теперь установлен. Давайте изменим конфигурацию:

sudo vi /etc/elasticsearch/elasticsearch.yml

Вы захотите ограничить внешний доступ к вашему экземпляру Elasticsearch (порт 9200), чтобы посторонние не могли прочитать ваши данные или отключить кластер Elasticsearch через HTTP API. Найдите строку, которая определяет + network.host +, раскомментируйте ее и замените ее значение на localhost, чтобы она выглядела следующим образом:

отрывок эластичного поиска.yml (обновлено)

network.host: localhost

Сохраните и выйдите из +asticsearch.yml +.

Теперь запустите Elasticsearch:

sudo systemctl start elasticsearch

Затем выполните следующую команду, чтобы автоматически запустить Elasticsearch при загрузке:

sudo systemctl enable elasticsearch

Теперь, когда Elasticsearch запущен и работает, давайте установим Kibana.

Установить Кибана

Пакет Kibana использует тот же ключ GPG, что и Elasticsearch, и мы уже установили этот открытый ключ.

Создайте и отредактируйте новый файл репозитория yum для Kibana:

sudo vi /etc/yum.repos.d/kibana.repo

Добавьте следующую конфигурацию хранилища:

/etc/yum.repos.d/kibana.repo

[kibana-4.4]
name=Kibana repository for 4.4.x packages
baseurl=http://packages.elastic.co/kibana/4.4/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

Сохранить и выйти.

Установите Kibana с помощью этой команды:

sudo yum -y install kibana

Откройте файл конфигурации Kibana для редактирования:

sudo vi /opt/kibana/config/kibana.yml

В файле конфигурации Kibana найдите строку, в которой указано + server.host +, и замените IP-адрес (по умолчанию «0.0.0.0») на «localhost»:

kibana.yml выдержка (обновлено)

server.host: "localhost"

Сохранить и выйти. Этот параметр позволяет Kibana быть доступным только для локального хоста. Это нормально, потому что мы установим обратный прокси-сервер Nginx на том же сервере, чтобы разрешить внешний доступ.

Теперь запустите сервис Kibana и включите его:

sudo systemctl start kibana
sudo chkconfig kibana on

Прежде чем мы сможем использовать веб-интерфейс Kibana, нам нужно настроить обратный прокси-сервер. Давайте сделаем это сейчас, с Nginx.

Установить Nginx

Поскольку мы настроили Kibana для прослушивания + localhost +, мы должны настроить обратный прокси-сервер, чтобы разрешить внешний доступ к нему. Мы будем использовать Nginx для этой цели.

  • Примечание: * Если у вас уже есть экземпляр Nginx, который вы хотите использовать, не стесняйтесь использовать его вместо этого. Просто настройте Kibana так, чтобы он был доступен для вашего сервера Nginx (вы, вероятно, захотите изменить значение + host + в + / opt / kibana / config / kibana.yml + на частный IP-адрес вашего сервера Kibana) , Также рекомендуется включить SSL / TLS.

Добавьте репозиторий EPEL к yum:

sudo yum -y install epel-release

Теперь используйте yum для установки Nginx и httpd-tools:

sudo yum -y install nginx httpd-tools

Используйте htpasswd для создания пользователя-администратора с именем «kibanaadmin» (вы должны использовать другое имя), который может получить доступ к веб-интерфейсу Kibana:

sudo htpasswd -c /etc/nginx/htpasswd.users

Введите пароль в командной строке. Запомните этот логин, так как он понадобится вам для доступа к веб-интерфейсу Kibana.

Теперь откройте файл конфигурации Nginx в вашем любимом редакторе. Мы будем использовать vi:

sudo vi /etc/nginx/nginx.conf

Найдите блок сервера по умолчанию (начинается с + server {+), последний блок конфигурации в файле и удалите его. Когда вы закончите, последние две строки в файле должны выглядеть следующим образом:

выдержка из nginx.conf

   include /etc/nginx/conf.d/*.conf;
}

Сохранить и выйти.

Теперь мы создадим блок сервера Nginx в новом файле:

sudo vi /etc/nginx/conf.d/kibana.conf

Вставьте следующий блок кода в файл. Обязательно обновите + server_name +, чтобы он соответствовал имени вашего сервера:

/etc/nginx/conf.d/kibana.conf

server {
   listen 80;

   server_name ;

   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;
       proxy_set_header Connection 'upgrade';
       proxy_set_header Host $host;
       proxy_cache_bypass $http_upgrade;
   }
}

Сохранить и выйти. Это настраивает Nginx для направления HTTP-трафика вашего сервера в приложение Kibana, которое прослушивает + localhost: 5601 +. Кроме того, Nginx будет использовать файл + htpasswd.users +, который мы создали ранее, и потребует базовой аутентификации.

Теперь запустите и включите Nginx, чтобы наши изменения вступили в силу:

sudo systemctl start nginx
sudo systemctl enable nginx

Kibana теперь доступен через ваше полное доменное имя или публичный IP-адрес вашего сервера ELK, т.е. Http: // лосей% 5C_server% 5C_public% 5C_ip / [Http: // лосей \ _SERVER \ _public \ _ip /]. Если вы зайдете туда в веб-браузере, после ввода учетных данных «kibanaadmin» вы увидите страницу приветствия Kibana, которая попросит вас настроить шаблон индекса. Вернемся к этому позже, после того, как мы установим все остальные компоненты.

Установите Logstash

Пакет Logstash использует тот же ключ GPG, что и Elasticsearch, и мы уже установили этот открытый ключ, поэтому давайте создадим и отредактируем новый файл репозитория Yum для Logstash:

sudo vi /etc/yum.repos.d/logstash.repo

Добавьте следующую конфигурацию хранилища:

/etc/yum.repos.d/logstash.repo

[logstash-2.2]
name=logstash repository for 2.2 packages
baseurl=http://packages.elasticsearch.org/logstash/2.2/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

Сохранить и выйти.

Установите Logstash с помощью этой команды:

sudo yum -y install logstash

Logstash установлен, но еще не настроен.

Генерация SSL-сертификатов

Поскольку мы собираемся использовать Filebeat для отправки журналов с наших клиентских серверов на наш сервер ELK, нам необходимо создать сертификат SSL и пару ключей. Сертификат используется Filebeat для проверки подлинности сервера ELK. Создайте каталоги, в которых будут храниться сертификат и закрытый ключ, с помощью следующих команд:

Теперь у вас есть два варианта для создания ваших сертификатов SSL. Если у вас есть настройка DNS, которая позволит вашим клиентским серверам разрешать IP-адрес сервера ELK, используйте * Option 2 *. В противном случае * Вариант 1 * позволит вам использовать IP-адреса.

Вариант 1: IP-адрес

Если у вас нет настройки DNS, которая позволила бы вашим серверам, с которых вы будете собирать журналы, разрешать IP-адрес вашего сервера ELK, вам придется добавить частный IP-адрес сервера ELK в + subjectAltName + (SAN) поле сертификата SSL, который мы собираемся сгенерировать. Для этого откройте файл конфигурации OpenSSL:

sudo vi /etc/pki/tls/openssl.cnf

Найдите в файле раздел + [v3_ca] + и добавьте в него следующую строку (заменив частный IP-адрес сервера ELK):

выдержка из openssl.cnf

subjectAltName = IP:

Сохранить и выйти.

Теперь создайте SSL-сертификат и закрытый ключ в соответствующих местах (/ etc / pki / tls /) с помощью следующих команд:

cd /etc/pki/tls
sudo openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

Файл logstash-forwarder.crt будет скопирован на все серверы, которые будут отправлять журналы в Logstash, но мы сделаем это чуть позже. Давайте завершим нашу конфигурацию Logstash. Если вы выбрали эту опцию, пропустите опцию 2 и перейдите к * Configure Logstash *.

Вариант 2: полное доменное имя (DNS)

Если у вас есть настройка DNS с вашей частной сетью, вы должны создать запись A, содержащую частный IP-адрес сервера ELK - это имя домена будет использовано в следующей команде для генерации сертификата SSL. Кроме того, вы можете использовать запись, которая указывает на публичный IP-адрес сервера. Просто убедитесь, что ваши серверы (те, с которых вы будете собирать журналы) смогут преобразовать доменное имя в ваш сервер ELK.

Теперь сгенерируйте SSL-сертификат и закрытый ключ в соответствующих местах (/ etc / pki / tls /…) с помощью следующей команды (подставьте в полное доменное имя сервера ELK):

cd /etc/pki/tls
sudo openssl req -subj '/CN=/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

Файл logstash-forwarder.crt будет скопирован на все серверы, которые будут отправлять журналы в Logstash, но мы сделаем это чуть позже. Давайте завершим нашу конфигурацию Logstash.

Настроить Logstash

Файлы конфигурации Logstash находятся в формате JSON и находятся в /etc/logstash/conf.d. Конфигурация состоит из трех разделов: входы, фильтры и выходы.

Давайте создадим файл конфигурации с именем + 02-beats-input.conf + и настроим наш «filebeat» вход:

sudo vi /etc/logstash/conf.d/02-beats-input.conf

Вставьте следующую * входную * конфигурацию:

02-уд-input.conf

input {
 beats {
   port => 5044
   ssl => true
   ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
   ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
 }
}

Сохранить и выйти. Это указывает на ввод + beats +, который будет прослушивать tcp порт + 5044 +, и будет использовать сертификат SSL и закрытый ключ, который мы создали ранее.

Теперь давайте создадим файл конфигурации с именем + 10-syslog-filter.conf +, в который мы добавим фильтр для сообщений syslog:

sudo vi /etc/logstash/conf.d/10-syslog-filter.conf

Вставьте следующую конфигурацию syslog * filter *:

10-Syslog-filter.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 => [ "received_at", "%{@timestamp}" ]
     add_field => [ "received_from", "%{host}" ]
   }
   syslog_pri { }
   date {
     match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
   }
 }
}

Сохранить и выйти. Этот фильтр ищет журналы, которые помечены как тип «syslog» (от Filebeat), и попытается использовать + grok + для анализа входящих журналов системного журнала, чтобы сделать его структурированным и способным выполнять запросы.

И наконец, мы создадим файл конфигурации с именем + 30 -asticsearch-output.conf +:

sudo vi /etc/logstash/conf.d/30-elasticsearch-output.conf

Вставьте следующую * выходную * конфигурацию:

/etc/logstash/conf.d/30-elasticsearch-output.conf

output {
 elasticsearch {
   hosts => ["localhost:9200"]
   sniffing => true
   manage_template => false
   index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
   document_type => "%{[@metadata][type]}"
 }
}

Сохранить и выйти. Эти выходные данные в основном конфигурируют Logstash для хранения данных ударов в Elasticsearch, который работает с + localhost: 9200 +, в индексе, названном в соответствии с используемым ударом (в нашем случае filebeat).

Если вы хотите добавить фильтры для других приложений, которые используют ввод Filebeat, обязательно назовите файлы так, чтобы они сортировались между входной и выходной конфигурациями (т.е. между 02- и 30-).

Проверьте свою конфигурацию Logstash с этой командой:

sudo service logstash configtest

Должно отображаться + Configuration OK +, если нет синтаксических ошибок. В противном случае попробуйте прочитать вывод ошибок, чтобы узнать, что не так с вашей конфигурацией Logstash.

Перезапустите и включите Logstash, чтобы изменения в конфигурации вступили в силу:

sudo systemctl restart logstash
sudo chkconfig logstash on

Далее мы загрузим образец приборной панели Kibana.

Загрузить Kibana Dashboards

Elastic предоставляет несколько образцов панелей управления Kibana и шаблонов индексов Beats, которые могут помочь вам начать работу с Kibana. Хотя мы не будем использовать инструментальные панели в этом руководстве, мы все равно будем их загружать, чтобы мы могли использовать включенный в него шаблон индекса Filebeat.

Сначала загрузите образец архива информационных панелей в свой домашний каталог:

cd ~
curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.1.0.zip

Установите пакет + unzip + с помощью этой команды:

sudo yum -y install unzip

Далее распакуйте содержимое архива:

unzip beats-dashboards-*.zip

И загрузите образцы панелей инструментов, визуализаций и шаблонов индекса Beats в Elasticsearch с помощью следующих команд:

cd beats-dashboards-*
./load.sh

Это шаблоны индекса, которые мы только что загрузили:

  • [Packetbeat-] ГГГГ.ММ.ДД

  • [Topbeat-] ГГГГ.ММ.ДД

  • [Filebeat-] ГГГГ.ММ.ДД

  • [Winlogbeat-] ГГГГ.ММ.ДД

Когда мы начнем использовать Kibana, мы выберем шаблон индекса Filebeat по умолчанию.

Загрузить шаблон индекса Filebeat в Elasticsearch

Поскольку мы планируем использовать Filebeat для отправки журналов в Elasticsearch, мы должны загрузить шаблон индекса Filebeat. Шаблон индекса настроит Elasticsearch для интеллектуального анализа входящих полей Filebeat.

Сначала загрузите шаблон индекса Filebeat в свой домашний каталог:

cd ~
curl -O https://gist.githubusercontent.com/thisismitch/3429023e8438cc25b86c/raw/d8c479e2a1adcea8b1fe86570e42abab0f10f364/filebeat-index-template.json

Затем загрузите шаблон с помощью этой команды:

curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' [email protected]

Если шаблон загружен правильно, вы должны увидеть следующее сообщение:

Output:{
 "acknowledged" : true
}

Теперь, когда наш сервер ELK готов к приему данных Filebeat, давайте перейдем к настройке Filebeat на каждом клиентском сервере.

Настроить Filebeat (Добавить клиентские серверы)

Выполните эти шаги для каждого сервера * CentOS или RHEL 7 *, для которого вы хотите отправить журналы на сервер ELK. Инструкции по установке Filebeat в дистрибутивах Linux на основе Debian (например, Ubuntu, Debian и т. Д.), Обратитесь к https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu-14-04 # set-up-filebeat (add-client-server) [раздел «Настройка Filebeat (Add Client Servers)») варианта Ubuntu этого руководства.

Копировать сертификат SSL

На вашем * ELK Server * скопируйте сертификат SSL, созданный в обязательном учебном курсе, на ваш * Client Server * (замените адрес клиентского сервера и свой собственный логин):

scp /etc/pki/tls/certs/logstash-forwarder.crt @:/tmp

После предоставления учетных данных для входа убедитесь, что копия сертификата была успешной. Он необходим для связи между клиентскими серверами и сервером ELK.

Теперь на вашем * клиентском сервере * скопируйте SSL-сертификат сервера ELK в соответствующее расположение (/ etc / pki / tls / certs):

sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

Теперь мы установим пакет Topbeat.

Установить пакет Filebeat

На * Client Server * создайте команду run для импорта открытого ключа GPG Elasticsearch в rpm:

sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch

Создайте и отредактируйте новый файл репозитория yum для Filebeat:

sudo vi /etc/yum.repos.d/elastic-beats.repo

Добавьте следующую конфигурацию хранилища:

/etc/yum.repos.d/elastic-beats.repo

[beats]
name=Elastic Beats Repository
baseurl=https://packages.elastic.co/beats/yum/el/$basearch
enabled=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
gpgcheck=1

Сохранить и выйти.

Установите Filebeat с этой командой:

sudo yum -y install filebeat

Filebeat установлен, но еще не настроен.

Настроить Filebeat

Теперь мы настроим Filebeat для подключения к Logstash на нашем сервере ELK. Этот раздел проведет вас через изменение файла конфигурации примера, который идет с Filebeat. После выполнения этих шагов у вас должен быть файл, который выглядит примерно так: this.

На * Client Server * создайте и отредактируйте файл конфигурации Filebeat:

sudo vi /etc/filebeat/filebeat.yml

В верхней части файла вы увидите раздел + prospectors +, в котором вы можете определить * prospectors *, который определяет, какие файлы журналов следует отправлять и как с ними обращаться. Каждый разведчик обозначается символом + - +.

Мы изменим существующий инструмент поиска, чтобы отправлять журналы + secure + и + messages + в Logstash. В + paths + закомментируйте файл + - / var / log / *. Log +. Это предотвратит отправку Filebeat каждого + .log + в этом каталоге в Logstash. Затем добавьте новые записи для + syslog и` + auth.log`. Когда вы закончите, это должно выглядеть примерно так:

filebeat.yml выдержка 1 из 5

...
     paths:


       - /var/log/*.log
...

Затем найдите строку, которая указывает + document_type: +, раскомментируйте ее и измените ее значение на «syslog». Это должно выглядеть после модификации:

filebeat.yml выдержка 2 из 5

...
     document_type:
...

Это указывает, что журналы в этом поисковике имеют тип * syslog * (это тип, который ищет наш фильтр Logstash).

Если вы хотите отправить другие файлы на сервер ELK или внести какие-либо изменения в то, как Filebeat обрабатывает ваши журналы, не стесняйтесь изменять или добавлять записи поисковика.

Далее, в разделе + output + найдите строку с надписью +asticsearch: +, которая указывает секцию вывода Elasticsearch (которую мы не собираемся использовать). * Удалите или закомментируйте весь раздел вывода Elasticsearch * (вплоть до строки, которая говорит + logstash: +).

Найдите закомментированный раздел вывода Logstash, обозначенный строкой + # logstash: +, и раскомментируйте его, удалив предыдущий + # +. В этом разделе раскомментируйте строку + hosts: [" localhost: 5044 "] +. Измените + localhost + на частный IP-адрес (или имя хоста, если вы использовали эту опцию) вашего сервера ELK:

filebeat.yml выдержка 3 из 5

 ### Logstash as output
 logstash:
   # The Logstash hosts
   hosts: [":5044"]

Это настраивает Filebeat для подключения к Logstash на вашем сервере ELK через порт 5044 (порт, для которого мы указали вход ранее).

Прямо под записью + hosts + и с тем же отступом добавьте эту строку:

filebeat.yml выдержка 4 из 5

   bulk_max_size: 1024

Затем найдите раздел + tls + и раскомментируйте его. Затем раскомментируйте строку, которая задает + certificate_authorities +, и измените ее значение на + [" / etc / pki / tls / certs / logstash-forwarder.crt "] +. Это должно выглядеть примерно так:

filebeat.yml выдержка 5 из 5

...

     # List of root certificates for HTTPS server verifications

Это настраивает Filebeat для использования SSL-сертификата, который мы создали на сервере ELK.

Сохранить и выйти.

Теперь запустите Filebeat и включите его для изменения:

sudo systemctl start filebeat
sudo systemctl enable filebeat

Опять же, если вы не уверены, что ваша конфигурация Filebeat правильная, сравните ее с этим https://gist.githubusercontent.com/thisismitch/3429023e8438cc25b86c/raw/de660ffdd3decacdcaf88109e5683e1eef75c01f/filebeat.yml-centes[example.

Теперь Filebeat отправляет файлы syslog + messages + и + secure + на ваш сервер ELK! Повторите этот раздел для всех других серверов, для которых вы хотите собирать журналы.

Тестовая установка Filebeat

Если ваш стек ELK настроен правильно, Filebeat (на вашем клиентском сервере) должен отправлять ваши журналы в Logstash на вашем сервере ELK. Logstash должен загружать данные Filebeat в Elasticsearch в индексе с отметкой даты, + filebeat-YYYY.MM.DD +.

На вашем * ELK Server * убедитесь, что Elasticsearch действительно получает данные, запросив индекс Filebeat с помощью этой команды:

curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'

Вы должны увидеть кучу выходных данных, которые выглядят так:

Sample Output:...
{
     "_index" : "filebeat-2016.01.29",
     "_type" : "log",
     "_id" : "AVKO98yuaHvsHQLa53HE",
     "_score" : 1.0,
     "_source":{"message":"Feb  3 14:34:00 rails sshd[963]: Server listening on :: port 22.","@version":"1","@timestamp":"2016-01-29T19:59:09.145Z","beat":{"hostname":"topbeat-u-03","name":"topbeat-u-03"},"count":1,"fields":null,"input_type":"log","offset":70,"source":"/var/log/auth.log","type":"log","host":"topbeat-u-03"}
   }
...

Если ваши выходные данные показывают 0 полных обращений, Elasticsearch не загружает журналы под индексом, который вы искали, и вам следует проверить настройки на наличие ошибок. Если вы получили ожидаемый результат, перейдите к следующему шагу.

Подключиться к Кибане

Когда вы закончите настройку Filebeat на всех серверах, для которых вы хотите собирать журналы, давайте взглянем на Kibana, веб-интерфейс, который мы установили ранее.

В веб-браузере перейдите к полному доменному имени или общедоступному IP-адресу вашего сервера ELK. После ввода учетных данных «kibanaadmin» вы должны увидеть страницу, предлагающую настроить шаблон индекса по умолчанию:

изображение: https: //assets.digitalocean.com/articles/elk/1-filebeat-index.gif [Создать индекс]

Идите дальше и выберите * [filebeat] -YYYY.MM.DD * в меню Index Patterns (слева), затем нажмите кнопку * Star (Установить в качестве индекса по умолчанию) *, чтобы установить индекс Filebeat в качестве значения по умолчанию.

Теперь нажмите на ссылку * Discover * в верхней панели навигации. По умолчанию это покажет вам все данные журнала за последние 15 минут. Вы должны увидеть гистограмму с событиями журнала, с сообщениями журнала ниже:

изображение: https: //assets.digitalocean.com/articles/elk/2-filebeat-discover.png [открыть страницу]

Прямо сейчас, там не будет много, потому что вы только собираете системные журналы со своих клиентских серверов. Здесь вы можете искать и просматривать ваши журналы. Вы также можете настроить свою панель инструментов.

Попробуйте следующие вещи:

  • Выполните поиск «root», чтобы узнать, пытается ли кто-либо войти на ваши серверы как root.

  • Поиск определенного имени хоста (поиск + host:" "+)

  • Измените временной интервал, выбрав область на гистограмме или в меню выше

  • Нажмите на сообщения под гистограммой, чтобы увидеть, как данные фильтруются

У Kibana есть много других функций, таких как построение графиков и фильтров, так что не стесняйтесь возиться!

Заключение

Теперь, когда ваши системные журналы централизованы с помощью Elasticsearch и Logstash, и вы можете визуализировать их с помощью Kibana, вы должны хорошо начать с централизации всех важных журналов. Помните, что вы можете отправлять в Logstash практически любые типы журналов или индексированных данных, но эти данные становятся еще более полезными, если их анализировать и структурировать с помощью grok.

Чтобы улучшить свой новый стек ELK, вы должны изучить возможность сбора и фильтрации других журналов с помощью Logstash и creating. Кибанские приборные панели. Вы также можете захотеть https://www.digitalocean.com/community/tutorials/how-to-gather-infrastructure-metrics-with-topbeat-and-elk-on-centos-7 так, чтобы они собирали системные метрики с помощью Topbeat с вашим стеком ELK. Все эти темы рассматриваются в других уроках этой серии.

Удачи!

Related