Как собрать метрики инфраструктуры с помощью Topbeat и ELK в Ubuntu 14.04

Вступление

Topbeat, который является одним из нескольких поставщиков данных «Beats», который помогает отправлять различные типы серверных данных в экземпляр Elasticsearch, позволяет собирать информацию о процессоре, памяти и активности процессов на ваших серверах. При использовании со стеком ELK (Elasticsearch, Logstash и Kibana) Topbeat может использоваться в качестве альтернативы другим инструментам визуализации метрик системы, таким как https://www.digitalocean.com/community/tutorials/how-to-use- prometheus-to-monitor-your-ubuntu-14-04-server [Прометей] или https://www.digitalocean.com/community/tutorials/how-to-configure-statsd-to-collect-arbitrary-stats-for -graphite-на-убунту-14-04 [Statsd].

В этом руководстве мы покажем вам, как использовать стек ELK для сбора и визуализации метрик инфраструктуры с помощью * Topbeat * на сервере Ubuntu 14.04.

Предпосылки

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

Мы также будем предполагать, что в дополнение к серверу ELK у вас есть как минимум один клиентский сервер Ubuntu 14.04, с которого вы хотите собирать системные показатели с помощью Topbeat.

Загрузить инструментальные панели Kibana на сервере ELK

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-] ГГГГ.ММ.ДД

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

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

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

cd ~
curl -O https://raw.githubusercontent.com/elastic/topbeat/master/etc/topbeat.template.json

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

curl -XPUT 'http://localhost:9200/_template/topbeat' [email protected]

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

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

Выполните эти шаги для каждого сервера Ubuntu или Debian, на который вы хотите отправить данные метрик в Logstash на вашем сервере ELK. Инструкции по установке Topbeat в дистрибутивах Linux на базе Red Hat (например, RHEL, CentOS и т. Д.), См. Https://www.digitalocean.com/community/tutorials/how-to-gather-infrastructure-metrics-with-topbeat-and-elk-on-centos-7[CentOS вариация этого урока.

Копировать сертификат 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.

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

На * Client Server * убедитесь, что список источников Beats существует. Откройте + / etc / apt / sources.list.d / beats.list + для редактирования:

sudo vi /etc/apt/sources.list.d/beats.list

Убедитесь, что эта строка существует (вставьте ее, если ее еще нет):

/etc/apt/sources.list.d/beats.list

deb https://packages.elastic.co/beats/apt stable main

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

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

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

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

sudo apt-get update
sudo apt-get install topbeat

Tobeat теперь установлен, но еще не настроен.

Настроить Topbeat

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

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

sudo vi /etc/topbeat/topbeat.yml

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

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

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

topbeat.yml - 1 из 2

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

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

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

topbeat.yml - 2 из 2

...

     # List of root certificates for HTTPS server verifications

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

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

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

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

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

Теперь Topbeat отправляет метрики системы, процессов и файловой системы вашего клиентского сервера на ваш сервер ELK! Повторите этот раздел для всех других серверов, для которых вы хотите использовать показатели Topbeat.

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

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

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

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

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

Sample Output:{
     "_index" : "topbeat-2016.02.01",
     "_type" : "process",
     "_id" : "AVKeLSdP4HKUFv4CjZ7K",
     "_score" : 1.0,
     "_source":{"@timestamp":"2016-02-01T18:51:43.937Z","beat":{"hostname":"topbeat-01","name":"topbeat-01"},"count":1,"proc":{"cpu":{"user":0,"user_p":0,"system":50,"total":50,"start_time":"12:54"},"mem":{"size":0,"rss":0,"rss_p":0,"share":0},"name":"jbd2/vda1-8","pid":125,"ppid":2,"state":"sleeping"},"type":"process","@version":"1","host":"topbeat-01"}
}

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

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

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

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

Продолжайте и выберите * [topbeat] -YYY.MM.DD * в меню Index Patterns (слева), чтобы просмотреть данные Topbeat в представлении Discover:

изображение: https: //assets.digitalocean.com/articles/elk/topbeat-index-select.gif [Выбрать шаблон индекса Topbeat]

Здесь вы можете искать и анализировать различные записи Topbeat.

Затем вы захотите проверить образец панели мониторинга Topbeat, которую мы загрузили ранее. Нажмите * Dashboard * (вверху), затем щелкните значок * Load Saved Dashboard *. Перейдите на вторую страницу инструментальных панелей, затем нажмите * Topbeat-Dashboard *:

image: https: //assets.digitalocean.com/articles/elk/topbeat-view-dashboard.gif [Посмотреть пример Topbeat Dashboard]

Здесь вы увидите различные метрики, которые были собраны с ваших клиентских серверов, на которых вы установили Topbeat.

Заключение

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

Related