logstash安裝與基礎用法


若是搭建elk,建議先安裝好elasticsearch

來自官網,版本為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,本文不需要修改它,默認即可

日志位於/var/log/logstash/

為防止重復解析,logstash會記錄文件的解析進度到/var/lib/logstash/.sincedb_xxxxxxx,如果希望重復解析(比如測試的時候)記得刪除這里的緩存

解析日志相關的配置文件放到/etc/logstash/conf.d/,默認文件夾是空的,這個是需要自己寫的,下面先來一個簡單的:

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 {}
}

啟動logstash

/etc/init.d/logstash start

在test.log中追加信息,然后查看輸出

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)

基礎用法至此結束


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM