Как установить Elasticsearch, Logstash и Kibana (ELK Stack) в 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 для сбора журналов всех типов, но мы ограничим область применения этого руководства сбором syslog.

Наша цель

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

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

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

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

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

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

ELK Infrastructure

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

Предпосылки

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

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

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

  • ОС: Ubuntu 14.04

  • RAM: 4 ГБ

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

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

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

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

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

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

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

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

sudo apt-get update

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

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

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

Установить Elasticsearch

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

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

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

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

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

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:

sudo apt-get update

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

sudo apt-get -y install elasticsearch

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

sudo vi /etc/elasticsearch/elasticsearch.yml

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

elasticsearch.yml excerpt (updated)

network.host: localhost

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

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

sudo service elasticsearch restart

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

sudo update-rc.d elasticsearch defaults 95 10

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

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

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

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

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:

sudo apt-get update

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

sudo apt-get -y install kibana

Kibana теперь установлена.

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

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

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

kibana.yml excerpt (updated)

server.host: "localhost"

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

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

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

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

Установить Nginx

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

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

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

sudo apt-get install nginx apache2-utils

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

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

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

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

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

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

/etc/nginx/sites-available/default

server {
    listen 80;

    server_name example.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;
        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 service nginx restart

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

Установите Logstash

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

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:

sudo apt-get update

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

sudo apt-get install logstash

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

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

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

sudo mkdir -p /etc/pki/tls/certs
sudo mkdir /etc/pki/tls/private

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

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

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

sudo vi /etc/ssl/openssl.cnf

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

openssl.cnf excerpt (updated)

subjectAltName = IP: ELK_server_private_IP

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

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

cd /etc/pki/tls
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 и перейдите к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=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

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

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

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

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

02-beats-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, в который мы добавим фильтр для сообщений системного журнала:

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

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

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 для анализа входящих журналов syslog, чтобы сделать их структурированными и доступными для запросов.

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

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

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

/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 service logstash restart
sudo update-rc.d logstash defaults 96 9

Далее мы загрузим образец приборной панели 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 apt-get -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 (Добавить клиентские серверы)

Выполните эти шаги для каждого сервера Ubuntu или Debian, на который вы хотите отправлять журналы в Logstash на вашем сервере ELK. Инструкции по установке Filebeat в дистрибутивах Linux на основе Red Hat (например, RHEL, CentOS и т. Д.), Обратитесь кSet Up Filebeat (Add Client Servers) section варианта CentOS в этом руководстве.

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

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

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

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

Теперь на вашемClient Server скопируйте сертификат 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 создайте список источников Beats:

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

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

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

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

sudo apt-get update
sudo apt-get install filebeat

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

Настроить Filebeat

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

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

sudo vi /etc/filebeat/filebeat.yml

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

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

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

filebeat.yml excerpt 1 of 5

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

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

filebeat.yml excerpt 2 of 5

...
      document_type: syslog
...

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

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

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

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

filebeat.yml excerpt 3 of 5

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

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

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

filebeat.yml excerpt 4 of 5

    bulk_max_size: 1024

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

filebeat.yml excerpt 5 of 5

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

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

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

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

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

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

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

Create index

Идите вперед и выберите[filebeat]-YYY.MM.DD в меню Index Patterns (слева), затем нажмите кнопкуStar (Set as default index), чтобы установить индекс Filebeat по умолчанию.

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

Discover page

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

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

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

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

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

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

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

Заключение

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

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

Удачи!

Related