Приложение Topbeat позволяет собирать информацию о процессоре, памяти и активности процессов на сервере. В сочетании с сервером ELK (Elasticsearch, Logstash и Kibana) данные, собранные Topbeat, можно использовать для визуализации метрик.
Данное руководство поможет настроить взаимодействие стека ELK и Topbeat и использовать эту связку для визуализации метрик инфраструктуры на сервере CentOS 7.
Примечание: Аналогичное руководство для Ubuntu можно найти по этой ссылке.
Требования
- Предварительно установленный стек ELK.
- Минимум 1 клиентский сервер CentOS 7, с которого нужно собирать метрики при помощи Topbeat.
- SSL-сертификат на сервере ELK.
1: Загрузка дашбордов Kibana на сервер ELK
Elasticsearch предоставляет несколько образцов дашбордов Kibana и шаблонов Beats, что может помочь запустить Kibana.
Сначала загрузите архив дашбордов в домашний каталог:
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-]YYYY.MM.DD
- [topbeat-]YYYY.MM.DD
- [filebeat-]YYYY.MM.DD
- [winlogbeat-]YYYY.MM.DD
2: Загрузка шаблонов индекса 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' -d@topbeat.template.json
Сервер ELK может принимать данные Topbeat. Теперь нужно установить Topbeat на клиентский сервер.
3: Добавление клиентских серверов
Примечание: Инструкции данного раздела нужно выполнить на каждом сервере CentOS, метрики которого нужно собирать для Logstash на сервер ELK.
Скопируйте сертификат SSL
Перейдите на сервер ELK и скопируйте сертификат на клиентский сервер.
scp /etc/pki/tls/certs/logstash-forwarder.crt user@client_server_private_address:/tmp
Примечание: Замените условный адрес клиентского сервера и логин своими данными.
Убедитесь в том, что сертификат скопирован успешно.
Перейдите на клиентский сервер и скопируйте полученный SSL-сертификат в каталог /etc/pki/tls/certs:
sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/
Установите пакет Topbeat
На клиентской машине запустите следующую команду, которая импортирует открытый GPG-ключ Elasticsearch в rpm:
sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch
Создайте и отредактируйте новый репозиторий yum для Filebeat:
sudo vi /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
Сохраните и закройте файл.
Установите Topbeat:
sudo yum -y install topbeat
Настройте Topbeat
Теперь нужно настроить Topbeat для соединения с Logstash на сервере ELK.
Отредактируйте образец конфигурационного файла, который поставляется с Topbeat.
На клиентской машине создайте и отредактируйте конфигурационный файл Topbeat:
sudo vi /etc/topbeat/topbeat.yml
Примечание: Конфигурационный файл Topbeat использует формат YAML, в котором очень важны все отступы.
В начале файла находится раздел input. В нем можно указать метрики и статистические данные, которые нужно отправлять на сервер ELK.
Примечание: В руководстве используются стандартные параметры input.
В разделе output найдите строку elasticsearch:, она определяет вывод Elasticsearch. Удалите или закомментируйте весь раздел до строки #logstash:.
Найдите закомментированный раздел output для Logstash (строка #logstash:) и раскомментируйте его. Важно раскомментировать строку hosts: [“localhost:5044”] и заменить localhost внутренним IP-адресом или именем хоста сервера ELK.
_### Logstash as output
_logstash:
__# The Logstash hosts
__hosts: ["ELK_server_private_IP:5044"]
Теперь Topbeat будет подключаться к Logstash на сервере ELK на порт 5044.
Примечание: Если во время установки ELK вы выбрали другой порт, укажите его в этих настройках.
Найдите раздел 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"]
Теперь Topbeat может использовать SSL-сертификат, созданный на сервере ELK.
Сохраните и закройте файл.
Чтобы обновить настройки, перезапустите Topbeat:
sudo systemctl restart topbeat
sudo systemctl enable topbeat
Примечание: Можно сверить настройки Topbeat с этим примером настроек.
Теперь Topbeat отправляет метрики системы, процессов и файловой системы клиентского сервера на сервер ELK!
Примечание: Повторите этот раздел на всех других клиентских серверах, которые нужно отслеживать при помощи Topbeat.
4: Тестирование Topbeat
Если стек ELK настроен правильно, Topbeat на клиентском сервере будет передавать логи в Logstash на сервер ELK. Logstash будет загружать данные Topbeat в Elasticsearch (индекс topbeat-YYYY.MM.DD).
Перейдите на сервер ELK и убедитесь, что Elasticsearch получает все данные; для этого запросите данные Topbeat при помощи команды:
curl -XGET 'http://localhost:9200/topbeat-*/_search?pretty'
На экране появится примерно такой вывод:
{
"_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"}
}
Если запрос не вернул таких данных, значит, Elasticsearch не получает никаких данных Topbeat с заданным индексом. Проверьте настройки на наличие ошибок.
5: Подключение к Kibana
Настроив Topbeat на всех клиентских серверах, приступайте к настройке Kibana.
В веб-браузере откройте FQDN или IP-адрес сервера ELK. Введите его учётные данные. На экране появится приветственная страница Kibana.
Откройте меню Index Patterns и найдите шаблон [topbeat]-YYY.MM.DD, чтобы просмотреть данные Topbeat.
Также нужно проверить загруженный в начале дашборд Topbeat. Кликните Dashboard → Load Saved Dashboard → Topbeat-Dashboard. На экране появится ряд метрик, собранных с клиентского сервера.
Заключение
Теперь системные метрики централизованы при помощи Elasticsearch и Logstash. Вы можете визуализировать их при помощи Kibana.