CentOS Logstash Standalone setup

Установим систему управления логами 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
Logstash

И искать необходимую информацию по логам. Например 404 Error
404