Elasticsearch, Fluentd и Kibana: поиск и визуализация журнала с открытым исходным кодом

Статья из Fluentd

обзор

Elasticsearch, Fluentd и Kibana (EFK) позволяют собирать, индексировать, искать и визуализировать данные журнала. Это отличная альтернатива проприетарному программному обеспечению Splunk, которое позволяет начать бесплатно, но требует увеличения платной лицензии при увеличении объема данных.

Из этого туториала Вы узнаете, как создать решение для журналов, используя три программных компонента с открытым исходным кодом: http://www.elasticsearch.org [Elasticsearch], Fluentd и http: // www. kibana.org [Kibana].

Предпосылки

  • Капелька с * Ubuntu 14.04 *

  • Пользователь с sudo привилегиями

Установка и настройка Elasticsearch

Получение Java

Elasticsearch требует Java, поэтому первым шагом является установка Java.

sudo apt-get update
sudo apt-get install openjdk-7-jre-headless --yes

Убедитесь, что Java действительно установлена. Run:

java -version

Вывод должен быть следующим:

java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)

Получение Elasticsearch

Затем загрузите и установите пакет Deb Elasticsearch следующим образом.

sudo wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.2.2.deb
sudo dpkg -i elasticsearch-1.2.2.deb

Обеспечение Elasticsearch

До версии 1.2 возможность динамического написания сценариев в Elasticsearch была включена по умолчанию. Поскольку этот учебник настраивает панель мониторинга Kibana для доступа из общедоступного Интернета, давайте отключим динамические сценарии, добавив следующую строку в конце + / etc /asticsearch /asticsearch.yml +:

script.disable_dynamic: true

Начиная Elasticsearch

Запустите Elasticsearch с помощью следующей команды.

sudo service elasticsearch start

Установка и настройка Kibana

Получение Кибана

Перейдите в свой домашний каталог:

cd ~

Мы будем загружать Kibana следующим образом:

curl -L https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz | tar xzf -
sudo cp -r kibana-3.1.0 /usr/share/

Конфигурирование Kibana

Поскольку Kibana будет использовать порт 80 для связи с Elasticsearch, в отличие от порта по умолчанию 9200, Kibana + config.js + должен быть обновлен.

Откройте + / usr / share / kibana-3.1.0 / config.js + и найдите следующую строку:

elasticsearch: "http://"+window.location.hostname+":",

и замените его следующей строкой:

elasticsearch: "http://"+window.location.hostname+":",

Установка и настройка Nginx (Proxy Server)

Мы будем использовать Nginx в качестве прокси-сервера, чтобы разрешить доступ к панели мониторинга из общедоступного Интернета (с базовой аутентификацией).

Установите Nginx следующим образом:

sudo apt-get install nginx --yes

Kibana предоставляет хороший по умолчанию nginx.conf, который мы немного изменим.

Сначала установите файл конфигурации следующим образом:

wget https://assets.digitalocean.com/articles/fluentd/nginx.conf
sudo cp nginx.conf /etc/nginx/sites-available/default

Примечание. Исходный файл взят из этого Kibana GitHub репозитория.

Затем отредактируйте + / etc / nginx / sites-available / default + следующим образом (изменения отмечены красным):

#
# Nginx proxy for Elasticsearch + Kibana
#
# In this setup, we are password protecting the saving of dashboards. You may
# wish to extend the password protection to all paths.
#
# Even though these paths are being called as the result of an ajax request, the
# browser will prompt for a username/password on the first request
#
# If you use this, you'll want to point config.js at http://FQDN:80/ instead of
# http://FQDN:9200
#
server {
listen                *:80 ;
server_name           ;
access_log            ;
location / {
  root  /usr/share/;
  index  index.html  index.htm;
}

Наконец, перезапустите nginx следующим образом:

$ sudo service nginx restart

Теперь вы сможете увидеть общую панель управления Kibana по IP-адресу или домену вашего сервера, используя ваш любимый браузер.

изображение: https: //assets.digitalocean.com/articles/fluentd/kibana_welcome.png [Добро пожаловать в Кибана]

Установка и настройка Fluentd

Наконец, давайте установим https://www.fluentd.org [Fluentd]. Мы будем использовать td-agent, упакованную версию Fluentd, созданную и поддерживаемую http://www.treasuredata.com [Treasure Data].

Установка Fluentd через пакет td-agent

Установите Fluentd с помощью следующих команд:

wget http://packages.treasuredata.com/2/ubuntu/trusty/pool/contrib/t/td-agent/td-agent_2.0.4-0_amd64.deb
sudo dpkg -i td-agent_2.0.4-0_amd64.deb

Установка плагинов

Нам нужна пара плагинов:

  1. out_elasticsearch: этот плагин позволяет Fluentd передавать данные в Elasticsearch.

  2. outrecordreformer: этот плагин позволяет нам обрабатывать данные в более полезном формате.

Следующие команды устанавливают оба плагина (первый apt-get предназначен для out_elasticsearch: для этого требуются + make + и + libcurl +)

sudo apt-get install make libcurl4-gnutls-dev --yes
sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-elasticsearch
sudo /opt/td-agent/embedded/bin/fluent-gem install fluent-plugin-record-reformer

Затем мы настраиваем Fluentd для прослушивания сообщений системного журнала и отправки их в Elasticsearch. Откройте + / etc / td-agent / td-agent.conf + и добавьте следующие строки вверху файла:

<source>
type syslog
port 5140
tag  system
</source>
<match system.*.*>
type record_reformer
tag elasticsearch
facility ${tag_parts[1]}
severity ${tag_parts[2]}
</match>
<match elasticsearch>
type copy
<store>
  type stdout
</store>
<store>
type elasticsearch
logstash_format true
flush_interval 5s #debug
</store>
</match>

Начиная Fluentd

Запустите Fluentd с помощью следующей команды:

sudo service td-agent start

Пересылка rsyslog трафика на Fluentd

Ubuntu 14.04 поставляется с rsyslogd. Он должен быть перенастроен для пересылки событий системного журнала на порт, который прослушивает Fluentd (порт 5140 в этом примере).

Откройте + / etc / rsyslog.conf + (вам нужно + sudo +) и добавьте следующую строку вверху

*.* @127.0.0.1:5140

После сохранения и выхода из редактора перезапустите rsyslogd следующим образом:

sudo service rsyslog restart

Настройка панелей приборов Kibana

Панели Kibana по умолчанию очень общие, поэтому рекомендуется их настраивать. Здесь мы показываем два метода.

Способ 1: использование шаблона

Команда Fluentd предлагает альтернативную конфигурацию Kibana, которая работает с этой настройкой лучше, чем конфигурация по умолчанию. Чтобы использовать эту альтернативную конфигурацию, выполните следующую команду:

wget -O default.json https://assets.digitalocean.com/articles/fluentd/default.json
sudo cp default.json /usr/share/kibana-3.1.0/app/dashboards/default.json

Примечание. Исходный файл конфигурации взят из авторской GitHub gist.

Если вы обновите домашнюю страницу панели управления Kibana по URL-адресу вашего сервера, теперь Kibana должен быть настроен на отображение гистограмм по серьезности и средствам системного журнала, а также по последним строкам журнала в таблице.

Способ 2: ручная настройка

Перейдите по IP-адресу или домену вашего сервера, чтобы просмотреть панель управления Kibana.

изображение: https: //assets.digitalocean.com/articles/fluentd/kibana_welcome.png [Добро пожаловать в Кибана]

Есть несколько начальных шаблонов, но давайте выберем пустой, называемый * Blank Dashboard: я удобно настраиваюсь самостоятельно *, показанный внизу текста приветствия.

изображение: https: //assets.digitalocean.com/articles/fluentd/kibana_blank.png [Пустой шаблон Кибана]

Затем нажмите кнопку * + ADD A ROW * с правой стороны панели инструментов. Должен появиться экран конфигурации для новой строки (строка * состоит из одной или нескольких панелей). Введите название, нажмите кнопку * Создать строку *, а затем * Сохранить *. Это создает ряд.

изображение: https: //assets.digitalocean.com/articles/fluentd/kibana_row.png [Кибана Роу]

Когда создается пустая строка, Kibana показывает приглашение * Добавить панель в пустую строку * слева. Нажмите эту кнопку. Вы перейдете на экран конфигурации, чтобы добавить новую панель. Выберите * гистограмму * из выпадающего меню. Гистограмма - это временная диаграмма; для получения дополнительной информации см. Kibana документацию.

изображение: https: //assets.digitalocean.com/articles/fluentd/kibana_histogram.png [Гистограмма Кибаны]

Есть много параметров для настройки новой гистограммы, но вы можете просто прокрутить вниз и нажать кнопку * Сохранить *. Это создает новую панель.

изображение: https: //assets.digitalocean.com/articles/fluentd/kibana_histogram_details.png [Детали гистограммы Кибаны]

Дальнейшая информация

Дополнительную информацию о настройке Kibana см. На странице документации Kibana.

Related