1. 程式人生 > >Logstash筆記(一)

Logstash筆記(一)

logstash

(一)含義:

logstash是一種分布式日誌收集框架,開發語言是JRuby,當然是為了與Java平臺對接,不過與Ruby語法兼容良好,非常簡潔強大,經常與ElasticSearch,Kibana配置,組成著名的ELK技術棧,非常適合用來做日誌數據的分析。

當然它可以單獨出現,作為日誌收集軟件,你可以收集日誌到多種存儲系統或臨時中轉系統,如MySQL,redis,kakfa,HDFS, lucene,solr等並不一定是ElasticSearch


(二)安裝

1,下載和安裝。通過官網進行下載目前最新的版本 https://www.elastic.co/cn/downloads/logstash

[[email protected] local]# wget https://artifacts.elastic.co/downloads/logstash/lo
gstash-5.4.0.tar.gz
--2017-05-22 17:05:29--  https://artifacts.elastic.co/downloads/logstash/logstash-5.4.0.tar.gz
Resolving artifacts.elastic.co... 174.129.40.40, 184.72.234.88, 184.73.227.9, ...
Connecting to artifacts.elastic.co|174.129.40.40|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 92546670 (88M) [application/x-gzip]
Saving to: “logstash-5.4.0.tar.gz”
100%[======================================>] 92,546,670  9.10M/s   in 14s     
2017-05-22 17:05:44 (6.52 MB/s) - “logstash-5.4.0.tar.gz” saved [92546670/92546670]
[[email protected]
/* */ local]# tar xf logstash-5.4.0.tar.gz

2,常用的命令

[[email protected] local]# logstash/bin/logstash -V
logstash 2.2.2

常用的選項有:

選項:
-f , 指定加載一個後綴為.conf文件的logstash配置模塊
-e , 命令行指定參數 , 通常用來調試
-w, 指定logstash的工作線程數
-l, 指定logstash的默認日誌寫入到一個文件中,如果不指定,默認是標準輸出
--quiet 靜默模式,僅僅只有error級別信息輸出

--verbose info級別的log輸出
--debug debug 級別的log輸出.
-V, --version 查看logstash的版本
-p, --pluginpath PATH 加載自定義的logstash插件
-t, --configtest 檢查logstash配置是否有效
-h, --help 打印幫助


(三)常用的模型

(1)input => output

(2)input => filter => output

具體的解釋如下:

a . input常用的輸入源有:file ,syslog,redis,log4j,tomcat_log,nging.log,以及各種業務log


b.filter常用的選項有:

grok:支持正則提取任何非結構化數據或結構化數據,其中logstash內置120多種正則,比如常見的時間,ip,用戶名,等等也支持自定義正則解析
mutate:修改字段名,刪除,更新等操作,轉換字段類型等
drop: 刪除某些時間,如debug
clone:拷貝一份事件副本,用來添加或刪除字段
geoip : 通過ip獲取地理位置信息,在做kibana區域統計圖非常酷炫
ruby: 支持原生的ruby代碼,操作事件,實現強大的其他功能


c.output常用的輸出選項有:

elasticsearch 比較常用
file:寫入文件
redis:寫入隊列
hdfs:寫入HDFS,需插件支持
zabbix: zabbix監控
mongodb:寫入mongodb庫

codecs:編碼插件,常用來處理json數據或者多行數據源


(四)常見的操作

(1),-e使用命令行調試。結束已ctrl+d直接結束:

[[email protected] logstash]# /usr/local/logstash/bin/logstash -e "input{stdin{}} 
output{stdout{}}" 
Settings: Default pipeline workers: 1
Logstash startup completed
hello world
2017-05-22T09:28:04.364Z localhost.localdomain hello world
test
2017-05-22T09:28:52.170Z localhost.localdomain test

(2),-f調試。如果配置比較多的話,可以寫成以.conf結尾的配置文件裏,然後使用-f 命令進行加載。

[[email protected] etc]# vim hello.conf
input{stdin{}}
output{stdout{}}
[[email protected] etc]# /usr/local/logstash/bin/logstash -f hello.conf --configte
st
Configuration OK
[[email protected] etc]# /usr/local/logstash/bin/logstash -f hello.conf 
Settings: Default pipeline workers: 1
Logstash startup completed
hello world
2017-05-22T09:40:23.044Z localhost.localdomain hello world


本文出自 “清風明月” 博客,請務必保留此出處http://liqingbiao.blog.51cto.com/3044896/1928343

Logstash筆記(一)