如果搭建elk,建議先安裝好elasticsearchcentos
來自官網,版本爲2.3緩存
wget -c https://download.elastic.co/logstash/logstash/packages/centos/logstash-2.3.4-1.noarch.rpm
rpm -ivh logstash-2.3.4-1.noarch.rpm
logstash的配置文件爲/etc/sysconfig/logstash,本文不須要修改它,默認便可elasticsearch
日誌位於/var/log/logstash/測試
爲防止重複解析,logstash會記錄文件的解析進度到/var/lib/logstash/.sincedb_xxxxxxx,若是但願重複解析(好比測試的時候)記得刪除這裏的緩存url
解析日誌相關的配置文件放到/etc/logstash/conf.d/,默認文件夾是空的,這個是須要本身寫的,下面先來一個簡單的:spa
mkdir -p /data/logs/
touch /data/logs/test.log
vi /etc/logstash/conf.d/first.conf(意思是解析test.log內容,輸出到標準輸出,這裏會重定向輸出到/var/log/logstash/logstash.stdout)日誌
input { file { path => "/data/logs/test.log" } } output { stdout {} }
啓動logstashcode
/etc/init.d/logstash start
在test.log中追加信息,而後查看輸出blog
echo 'hello world 1' >> /data/logs/test.log echo 'hello world 2' >> /data/logs/test.log tail /var/log/logstash/logstash.stdout
能夠看到追加的信息被logstash以必定格式輸出到了stdout索引
下面來個複雜的日誌文件,下載官方的測試log:https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz
而後解壓到/data/logs/logstash/logstash-tutorial.log
新加一個日誌解析配置:
vi /etc/logstash/conf.d/second.conf
input { file { path => "/data/logs/logstash/*.log" start_position => beginning ignore_older => 0 } } output { stdout {} }
能夠看到指定文件那裏能夠用匹配模式指定
start_position:默認是從文件末尾開始解析(監控)
ignore_older:默認超過24小時的日誌不解析,0表示不忽略任何過時日誌
重啓logstash,能夠看到logstash-tutorial.log的解析結果會輸出到stdout
輸出到stdout並無用,咱們如今把結果存儲到elasticsearch:
output {
elasticsearch {}
stdout {}
}
若elasticsearch不是在本機
elasticsearch {
hosts => "192.168.1.111"
}
若elasticsearch不是默認端口9200
elasticsearch {
hosts => "192.168.1.111:9292"
}
先中止logstash,清空解析緩存,再啓動
/etc/init.d/logstash stop
rm -rf /var/lib/logstash/*
/etc/init.d/logstash start
在elasticsearch中查詢能夠看到多了一個索引logstash-2016.11.25,數據已經存儲在裏面
(並且是解析過的,ip、url、時間等,解析是用的過濾器filter,這裏沒有配置單應該用的是默認filter:grok)
基礎用法至此結束