004-Logstash操做

Logstash 介紹

Logstash是一個徹底開源的工具,他能夠對你的日誌進行收集、分析,並將其存儲供之後使用(如,搜索),您能夠使用它。說到搜索,logstash帶有一個web界面,搜索和展現全部日誌 kibana也是一個開源和免費的工具,他能夠幫助您彙總、分析和搜索重要數據日誌並提供友好的web界面。他能夠爲 Logstash 和 ElasticSearch 提供的日誌分析的 Web 界面 提示: logstash與es沒有任何關係html

ELK的幾個概念

INPUT OUTPUT Logstash 收集日誌,Logstash能夠在日誌發送以前作一個過濾(OUPUT以前)java

Logstash的部署與配置

功能點web

INPUT  進
FILTER  (支持過濾的功能)
OUTPUT 出
部署
yum install ntpdate -y && ntpdate time1.aliyun.com &&  timedatectl set-timezone Asia/Shanghai
yum install -y java
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
cat >>/etc/yum.repos.d/logstash.repo<<EOF
[logstash-2.3]
name=Logstash repository for 2.3.x packages
baseurl=https://packages.elastic.co/logstash/2.3/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOF
yum install -y logstash
配置

利用多一些插件 普通插件centos

[root@3 es-date]# /opt/logstash/bin/logstash -e 'input { stdin{} } output { stdout{} }'
Settings: Default pipeline workers: 2
Pipeline main started
test for logstash
2019-12-10T17:20:58.708Z 3 test for logstash

input插件stdin(標準輸入)
output插件 stdout(標準輸出)
/opt/logstash/bin/logstash 前臺啓動
提示:標準輸入和標準輸出的意思就是咱們輸入什麼就會輸出什麼

美觀輸出數組

\[root[@3](https://my.oschina.net/u/2648711) es-date\]# /opt/logstash/bin/logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug} }' Settings: Default pipeline workers: 2 Pipeline main started test for logstash { "message" => "test for logstash", "@version" => "1", "@timestamp" => "2019-12-10T17:24:38.221Z", "host" => "3" }

配置主機及索引(生產環境寫入配置文件中)

/opt/logstash/bin/logstash -e 'input { stdin{} } output { elasticsearch { hosts => \["192.168.83.20:9200"\] index => "logstash-%{+YYYY.MM.dd}" } }' 而後界面查看輸出的日誌 \[root[@3](https://my.oschina.net/u/2648711) yabo\]# /opt/logstash/bin/logstash -e 'input { stdin{} } output { stdout{ codec => rubydebug } elasticsearch { hosts => \["192.168.83.30:9200"\] index => "logstash-%{+YYYY.MM.dd}" } }' Settings: Default pipeline workers: 2 Pipeline main started test { "message" => "test", "@version" => "1", "@timestamp" => "2019-12-10T17:58:11.440Z", "host" => "3" } test happy { "message" => "test happy", "@version" => "1", "@timestamp" => "2019-12-10T17:58:25.886Z", "host" => "3" }

丟到後臺中運行

提示:在收集的時候全部的機器都須要安裝一個logstash(經過網絡能夠不須要)由於在INPUT和OUTPUT插件有一個經過http的插件,這樣能夠經過網絡進行傳輸。若是是文件我全部的節點都須要安裝一個logstash /etc/init.d/logstash腳本中定義的yum安裝的方式讀取的目錄地址爲/etc/logstash/conf.druby

定義一個conf配置文件

\[root@3 conf.d\]# cat test.conf input{ stdin{} }

filter{ }

output{ elasticsearch { hosts => \["192.168.83.30:9200"\] index => "logstash-%{+YYYY.MM.dd}" } stdout{ codec => rubydebug } }

配置信息解析網絡

配置文件的語法須要包含INPUT or OUTPUT,其中filter能夠沒有。 INPUT和OUTPUT中的{}不能夠搞錯,其中INPUT存放INPUT插件,OUTPUT存放OUTPUT插件 (其中插件也須要有{花括號}) 「=>」表明等於,寫一個數組須要使用[中括號]多個能夠使用逗號分隔。 字符串須要使用「雙引號」 #號表明註釋 日誌中信息都是一行一行的,在logstash中叫作事件(由於logstash能夠將多行進行合併) 流程: 事件 –> input –> codec –> filter –> codec –> outputapp

指定配置文件啓動

/opt/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf 實現簡單寫入內容丟給eselasticsearch

收集messasage錯誤日誌

INPUT插件介紹 file插件地址:https://www.elastic.co/guide/en/logstash/current/plugins-inputs-file.htmlide

input { file{ path => \["/var/log/messages","/var/log/secure"\] type => "system-log" start_position => "beginning" }

}

filter{ }

output{ elasticsearch { hosts => \["192.168.83.30:9200"\] index => "system-log-%{+[YYYY.MM](http://YYYY.MM)}" } }

相關文章
相關標籤/搜索