Статья из 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
Установка плагинов
Нам нужна пара плагинов:
-
out_elasticsearch: этот плагин позволяет Fluentd передавать данные в Elasticsearch.
-
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.