Установим систему управления логами logstash. Logstash можно использовать для сбора, последующего анализа и сохранения логов.
Можно использовать logstash для передачи логов на Graylog2 сервер, используя GELF output
GELF output. This is most useful if you want to use logstash to output events to graylog2.
Можно установить как для сбора логов с одного сервера, так и для централизованного хранения логов с нескольких серверов. В данной статье мы рассмотрим standalone установку logstash, и отправку логов в Graylog2 сервер.
Посмотреть презентацию объясняющую принципы работы и возможные варианты использования Logstash.
Система на которой будем устанавливать logstash
# uname -a Linux centos.bezha.od.ua 2.6.32-220.el6.x86_64 #1 SMP x86_64 GNU/Linux # cat /etc/issue CentOS release 6.2 (Final)
Устанавливаем Java и gcc и curl-devel zlib-devel
# yum -y install lsb gcc make java-1.6.0-openjdk curl-devel zlib-devel
Скачиваем logstash monolithic jar
# mkdir /etc/logstash && cd /etc/logstash # wget http://semicomplete.com/files/logstash/logstash-1.1.0-monolithic.jar
Создаем свой конфигурационный файл. Конфигурационный файл logstash состоит из inputs, filters и output.
Для простоты эксперимента Создадим только inputs – все системные сообщения из папки /var/log/ и output – отправим все логи храниться в elasticsearch
input { file { type => "linux-syslog" # Wildcards work, here :) path => [ "/var/log/*.log", "/var/log/messages", "/var/log/syslog", "/var/log/*" ] } } output { # This will use elasticsearch to store your logs. # The 'embedded' option will cause logstash to run the elasticsearch # server in the same process, so you don't have to worry about # how to download, configure, or run elasticsearch! elasticsearch { embedded => true } }
Сохраним данный конфигурационный файл
# vi /etc/logstash/logstash.conf
Запускается logstash со следующими опциями:
java -jar /etc/logstash/logstash-1.1.0-monolithic.jar agent -f /etc/logstash/logstash.conf — web –backend elasticsearch:///?local
Можно заходить на Web-Interface
http://logstash.bezha.od.ua:9292
И запустить например поиск ip адресов с которых заходили root
Более интересно и позновательно брать логи syslog, сервисов фильтровать их и переслать в Graylog сервер.
Простой пример отправки apache access и error logs на Graylog2 сервер
nput { file { type => "linux-syslog" path => [ "/var/log/secure" ] } file { type => "apache-access" path => "/var/log/httpd/access_log" } file { type => "apache-error" path => "/var/log/httpd/error_log" } } output { gelf{ chunksize => 1420 host => log port => 12201 sender => logstash } }
В /etc/hosts прописан хост graylog2 сервера
192.168.1.100 log
Заходим в Graylog2 сервер и проверяем host
И искать необходимую информацию по логам. Например 404 Error