Поиск по сайту:

Как установить Elasticsearch, Logstash и Kibana (стек ELK) в Ubuntu 14.04


Введение

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

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

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

Наша цель

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

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

  • Logstash: серверный компонент Logstash, обрабатывающий входящие журналы.
  • Elasticsearch: сохраняет все журналы.
  • Kibana: веб-интерфейс для поиска и визуализации журналов, которые будут передаваться через Nginx.
  • Filebeat: установленный на клиентских серверах, которые будут отправлять свои журналы в Logstash, Filebeat служит агентом доставки журналов, который использует сетевой протокол lumberjack для связи с Logstash

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

Предпосылки

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

Если вы предпочитаете вместо этого использовать CentOS, ознакомьтесь с этим руководством: Как установить ELK на CentOS 7.

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

  • ОС: Ubuntu 14.04
  • ОЗУ: 4 ГБ
  • ЦП: 2

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

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

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

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

Добавьте Oracle Java PPA в apt:

  1. sudo add-apt-repository -y ppa:webupd8team/java

Обновите базу данных пакетов apt:

  1. sudo apt-get update

Установите последнюю стабильную версию Oracle Java 8 с помощью этой команды (и примите всплывающее лицензионное соглашение):

  1. sudo apt-get -y install oracle-java8-installer

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

Установить эластичный поиск

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

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

  1. wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Если ваше приглашение просто висит там, вероятно, оно ожидает ввода пароля вашего пользователя (для авторизации команды sudo). В этом случае введите свой пароль.

Создайте список источников Elasticsearch:

  1. echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list

Обновите базу данных пакетов apt:

  1. sudo apt-get update

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

  1. sudo apt-get -y install elasticsearch

Теперь Elasticsearch установлен. Отредактируем конфигурацию:

  1. sudo vi /etc/elasticsearch/elasticsearch.yml

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

network.host: localhost

Сохраните и закройте elasticsearch.yml.

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

  1. sudo service elasticsearch restart

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

  1. sudo update-rc.d elasticsearch defaults 95 10

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

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

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

Создайте исходный список Kibana:

  1. echo "deb http://packages.elastic.co/kibana/4.5/debian stable main" | sudo tee -a /etc/apt/sources.list.d/kibana-4.5.x.list

Обновите базу данных пакетов apt:

  1. sudo apt-get update

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

  1. sudo apt-get -y install kibana

Кибана установлена.

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

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

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

server.host: "localhost"

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

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

  1. sudo update-rc.d kibana defaults 96 9
  2. sudo service kibana start

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

Установите Nginx

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

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

Используйте apt для установки Nginx и Apache2-utils:

  1. sudo apt-get install nginx apache2-utils

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

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

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

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

  1. sudo vi /etc/nginx/sites-available/default

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

  1. server {
  2. listen 80;
  3. server_name example.com;
  4. auth_basic "Restricted Access";
  5. auth_basic_user_file /etc/nginx/htpasswd.users;
  6. location / {
  7. proxy_pass http://localhost:5601;
  8. proxy_http_version 1.1;
  9. proxy_set_header Upgrade $http_upgrade;
  10. proxy_set_header Connection 'upgrade';
  11. proxy_set_header Host $host;
  12. proxy_cache_bypass $http_upgrade;
  13. }
  14. }

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

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

  1. sudo service nginx restart

Kibana теперь доступна через ваше полное доменное имя или общедоступный IP-адрес вашего сервера ELK, например http://elk-server-public-ip/. Если вы зайдете туда в веб-браузере, после ввода учетных данных \kibanaadmin вы должны увидеть страницу приветствия Kibana, которая попросит вас настроить шаблон индекса. Вернемся к этому позже, после того, как мы установим все остальные компоненты. .

Установить Логсташ

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

  1. echo 'deb http://packages.elastic.co/logstash/2.2/debian stable main' | sudo tee /etc/apt/sources.list.d/logstash-2.2.x.list

Обновите базу данных пакетов apt:

  1. sudo apt-get update

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

  1. sudo apt-get install logstash

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

Создание SSL-сертификатов

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

  1. sudo mkdir -p /etc/pki/tls/certs
  2. sudo mkdir /etc/pki/tls/private

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

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

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

  1. sudo vi /etc/ssl/openssl.cnf

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

subjectAltName = IP: ELK_server_private_IP

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

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

  1. cd /etc/pki/tls
  2. sudo openssl req -config /etc/ssl/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 и перейдите к настройке Logstash.

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

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

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

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

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

Настроить Логсташ

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

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

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

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

  1. input {
  2. beats {
  3. port => 5044
  4. ssl => true
  5. ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
  6. ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
  7. }
  8. }

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

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

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

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

  1. filter {
  2. if [type] == "syslog" {
  3. grok {
  4. match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
  5. add_field => [ "received_at", "%{@timestamp}" ]
  6. add_field => [ "received_from", "%{host}" ]
  7. }
  8. syslog_pri { }
  9. date {
  10. match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
  11. }
  12. }
  13. }

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

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

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

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

  1. output {
  2. elasticsearch {
  3. hosts => ["localhost:9200"]
  4. sniffing => true
  5. manage_template => false
  6. index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
  7. document_type => "%{[@metadata][type]}"
  8. }
  9. }

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

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

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

  1. sudo service logstash configtest

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

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

  1. sudo service logstash restart
  2. sudo update-rc.d logstash defaults 96 9

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

Загрузить информационные панели Kibana

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

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

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

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

  1. sudo apt-get -y install unzip

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

  1. unzip beats-dashboards-*.zip

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

  1. cd beats-dashboards-*
  2. ./load.sh

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

  • [packetbeat-]ГГГГ.ММ.ДД
  • [topbeat-]ГГГГ.ММ.ДД
  • [filebeat-]ГГГГ.ММ.ДД
  • [winlogbeat-]ГГГГ.ММ.ДД

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

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

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

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

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

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

  1. curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@filebeat-index-template.json

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

Output:
{ "acknowledged" : true }

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

Настройка Filebeat (добавление клиентских серверов)

Выполните эти шаги для каждого сервера Ubuntu или Debian, журналы которого вы хотите отправлять в Logstash на вашем сервере ELK. Инструкции по установке Filebeat в дистрибутивах Linux на основе Red Hat (например, RHEL, CentOS и т. д.) см. в разделе «Настройка Filebeat (добавление клиентских серверов)» варианта CentOS этого руководства.

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

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

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

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

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

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

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

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

На клиентском сервере создайте список источников Beats:

  1. echo "deb https://packages.elastic.co/beats/apt stable main" | sudo tee -a /etc/apt/sources.list.d/beats.list

Он также использует тот же ключ GPG, что и Elasticsearch, который можно установить с помощью этой команды:

  1. wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Затем установите пакет Filebeat:

  1. sudo apt-get update
  2. sudo apt-get install filebeat

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

Настроить Filebeat

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

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

  1. sudo vi /etc/filebeat/filebeat.yml

Примечание. Файл конфигурации Filebeat имеет формат YAML, а это означает, что отступы очень важны! Обязательно используйте то же количество пробелов, которое указано в этих инструкциях.

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

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

...
      paths:
        - /var/log/auth.log
        - /var/log/syslog
#        - /var/log/*.log
...

Затем найдите строку, в которой указан document_type:, раскомментируйте ее и измените ее значение на \syslog. После модификации это должно выглядеть так:

...
      document_type: syslog
...

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

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

Затем в разделе output найдите строку с текстом elasticsearch:, которая указывает на раздел вывода Elasticsearch (который мы не собираемся использовать). Удалите или закомментируйте весь раздел вывода Elasticsearch (до строки с текстом #logstash:).

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

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

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

Непосредственно под записью hosts и с тем же отступом добавьте следующую строку:

    bulk_max_size: 1024

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

...
    tls:
      # List of root certificates for HTTPS server verifications
      certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]

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

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

Теперь перезапустите Filebeat, чтобы применить наши изменения:

  1. sudo service filebeat restart
  2. sudo update-rc.d filebeat defaults 95 10

Опять же, если вы не уверены, что ваша конфигурация Filebeat верна, сравните ее с этой конфигурацией Filebeat.

Теперь Filebeat отправляет syslog и auth.log в Logstash на вашем сервере ELK! Повторите этот раздел для всех остальных серверов, для которых вы хотите собирать журналы.

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

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

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

  1. 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 вы должны увидеть страницу, предлагающую настроить шаблон индекса по умолчанию:

Идите вперед и выберите [filebeat]-ГГГ.ММ.ДД в меню «Шаблоны индексов» (слева), затем нажмите кнопку «Звезда» (Установить как индекс по умолчанию), чтобы установить индекс Filebeat по умолчанию.

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

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

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

  • Выполните поиск по слову \root, чтобы узнать, не пытается ли кто-нибудь войти на ваши серверы с правами root
  • Поиск определенного имени хоста (ищите host: hostname)
  • Измените временной интервал, выбрав область на гистограмме или в меню выше.
  • Нажимайте на сообщения под гистограммой, чтобы увидеть, как данные фильтруются.

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

Заключение

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

Чтобы улучшить свой новый стек ELK, вам следует заняться сбором и фильтрацией других журналов с помощью Logstash, а также собрать системные метрики с помощью Topbeat со стеком ELK. Все эти темы рассматриваются в других учебниках этой серии.

Удачи!