Главная > CentOS > Развертываем Logstash + ElasticSearch + Kibana 4

Развертываем Logstash + ElasticSearch + Kibana 4

Задумался я как то о том месте куда бы стекался весь лог траффик. Посмотрел решения и решил попробовать то что написано в заголовке.
Итак что нам потребуется? Установить ОС. Выбрал я CentOS 7.0, как ее ставить думаю можно много найти ссылок в интернете.
Немного о том что из себя представляют Logstash, ElasticSearch и Kibana:
— Kibana is an open source data visualization plugin for Elasticsearch. It provides visualization capabilities on top of the content indexed on an Elasticsearch cluster. Users can create bar, line and scatter plots, or pie charts and maps on top of large volumes of data.
— Elasticsearch is a search engine based on Lucene. It provides a distributed, multitenant-capable full-text search engine with an HTTP web interface and schema-free JSON documents. Elasticsearch is developed in Java and is released as open source under the terms of the Apache License. Elasticsearch is the most popular enterprise search engine followed by Apache Solr, also based on Lucene.
— Logstash is a tool for managing events and logs. When used generically the term encompases a larger system of log collection, processing, storage and searching activities.

Итак, имеем сервер с чистой ОС, начинаем установку.
Добавляем необходимые нам репозитории

rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

Переходим в директорию /etc/yum.repos.d/ и создаем необходимые файлы

touch kibana.repo
touch elasticsearch.repo
touch logstash.repo

[kibana-4.5]
name=Kibana repository for 4.5.x packages
baseurl=http://packages.elastic.co/kibana/4.5/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
 
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
 
[logstash-2.3]
name=Logstash repository for 2.3.x packages
baseurl=https://packages.elastic.co/logstash/2.3/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

Для работы logstash на необходима версия джавы не ниже 7-ой.
#Проверяем версию джавы

java -version

У меня стоит 8-ая версия, ставил так
На выходе должно быть следующее

[root@...]# java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

Далее устанавливаем наше ПО

yum install logstash
yum install elasticsearch
yum install kibana

Добавляем в автозагрузку

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl enable kibana.service

Запускаем наши сервисы

sudo systemctl start elasticsearch.service
sudo systemctl start kibana.service

Установился logstash и kibana в директорию /opt а вот elasticsearch в /usr/share/elasticsearch

Проверяем работу logstash

cd /opt/logstash
bin/logstash -e 'input { stdin { } } output { stdout {} }'

Наш продукт запускается в консоли и при вводе например hello world мы видим следующий вывод:

hello world
2015-11-21T01:22:14.405+0000 0.0.0.0 hello world

Для выхода используем команду CTRL-D.

Сам принцип работы показан на картинке ниже:
basic_logstash_pipeline

Т.е. в созданном нами конфигурационном файле (/etc/logstash/conf.d/main.conf) мы указываем откуда мы хотим получить данные, как их отфильтровать и куда отправить дальше (например в elasticsearch)
Пример

input { 
	stdin {}
		file {
		path => "/var/log/messages"
		type => "syslog"
		stat_interval => 5
		start_position => "beginning"
		discover_interval => 30
		}
}
output {
  elasticsearch { 
	hosts => ["localhost:9200"] }
}

Подробнее о том какие параметры можно указать в input, output, filter и codec
Немного про настройку но для версии 1.5 тут.

Варианты настройки конфигурационного файла тут и тут
Проверить конфиг можно командой

bin/logstash --configtest --config /etc/logstash/conf.d/main.conf

Теперь пробуем запустить logstash:
#Запускаем службу при помощи конфигурационного файла:

bin/logstash -f /etc/logstash/conf.d/main.conf

Для проверки elasticsearch можно ввести команду

curl -X GET http://localhost:9200/

Если все работает, сервер вернет вам JSON массив с какой-то информацией, например:

[root@logging opt]# curl -X GET http://localhost:9200/
{
  "name" : "Annalee",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.3.5",
    "build_hash" : "90f439ff60a3c0f497f91663701e64ccd01edbb4",
    "build_timestamp" : "2016-07-27T10:36:52Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.0"
  },
  "tagline" : "You Know, for Search"
}

Для проверки kibana нужно зайти по адресу http://localhost:5601

Думаю что пока на этом все!

Приведу пару возможно кому то полезных ссылок:
Прикручивание авторизации
Cisco ASA alerts and Kibana
Using Logstash, Elasticsearch and Kibana for Cisco ASA Syslog Message Analysis.
Kibana4-ASA-Dashboard
Анализ NetFlow v.9 Cisco ASA с помощью Logstash

Categories: CentOS Tags:
  1. Rinat
    5 февраля 2017 в 20:09 | #1

    Dobrogo dnya,

    Nashel vashu stat’u and hotel bi sprosit’ neskol’ko voprosov kak sovmestit’ Cisco syslogi v ELK stack.

    Spasibo

  1. Пока что нет уведомлений.