Консультация Oblako.kz

Установка и настройка стека ELK на Centos 7.3

В больших и высоконагруженных системах анализ журнальных файлов (логов) представляется достаточно сложным делом, так как генерируется большой объем информации, иногда также и разбросанной по различным местам. Для облегчения сбора и анализа логов таких систем существуют различные продукты, одним из примеров которых является и стек ELК. Это три продукта, логически связанные между собой:

Эти продукты не входят в стандартные репозитории ОС, поэтому, чтобы не ставить их вручную из исходных кодов, предварительно скачаем и установим платформу JAVA используя пакетный менеджер yum. Скачать Java можно например отсюда. Необходимо выбрать версию для нашей ОС и скачать её, нажав соответствующую кнопку. Установка выполняется также через Yum. Также на сайте справа есть инструкция по установке Java.

Загрузка Java

  • Поисковый движок ElasticSearch для анализа логов;
  • Logstash - демон пересылки логов, позволяет перенаправлять различные журналы для дальнейшего анализа, может фильтровать эти журналы по определенным признакам;
  • Kibana - интерфейс для анализа содержимого лог-файлов и наглядного представления полученной информации.
yum localinstall jre1.8-1.8.0_181-fcs.x86_64.rpm

Скачиваем и добавляем ключ репозитория

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch yum install https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.rpm yum install https://artifacts.elastic.co/downloads/logstash/logstash-6.3.2.rpm yum install https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-x86_64.rpm

После этого можно начинать настройку. Рассмотрим для примера настройку анализа файлов журналов Nginx локального сервера (на котором установлен стек ELK).

Раскомментируем в файле /etc/elasticsearch/elasticsearch.yml строчки network.host и http.port, заповнив их значениями указанными ниже. Они указывают с каких хостов и по какому порту elasticsearch будет принимать соединения. В нашем случае localhost - то есть этот же компьютер.

network.host: localhost http.port: 9200

После этого стартуем сервис elasticsearch и включаем его автозапуск.

systemctl enable elasticsearch systemctl start elasticsearch

Теперь создадим правило для пересылки логов c локального сервера для logstash.


nano /etc/logstash/conf.d/09-nginx.conf


input {
file {
path => “/vasr/log/nginx/access.log”
}
}

filter {
date {
match => ["timestamp", "UNIX_MS"]
}
}
output {
stdout { codec => dots }

elasticsearch {
host => "localhost"
protocol => "http"
cluster => "elasticsearch"
index => "nginxplus_json_elk_example"
document_type => "logs"
template => "./nginxplus_json_template.json"
template_name => "nginxplus_json_elk_example"
template_overwrite => true
}
}

Любая конфигурация logstash содержит эти разделы (могут быть и другие):

  • input - какие данные и где брать для анализа.. В данном случае это файл /var/log/nginx/access.log
  • output - выходной раздел - место для отправки input- в данном случае принимающий демон на этой же машине.
  • filter - фильтр input если какая-то часть данных не нужна для анализа.

Включаем logstash

systemctl enable logstash systemctl start logstash

Последним настраивается web-интерфейс kibana. В файле /etc/kibana/kibana.yml необходимо задать как-минимум адрес на котором будет доступна kibana, порт и url elasticsearch.

server.port: 5601 server.host: "78.140.223.147" elasticsearch.url: "http://localhost:9200"

После этого можно запустить Kibana командой systemctl.

systemctl enable kibana systemctl start kibana

Теперь можно зайти в Kibana по указанному адресу и порту 5601. Firewall должен быть настроен на разрешение доступа к порту Кибана. http://78.140.223.147:5601

Kabana ELK

Последнее обновление: 27.09.2018