logstash的output插件


logstash 的output插件

nginx,logstash和redis在同一台機子上

yum -y install redis,vim /etc/redis.conf 設置bind 0.0.0.0 ,使redis監聽在所有端口上

systemctl start redis.service, cd /etc/logstash/conf.d

vim nglogredissample.conf

input {

file {

path => ["/var/log/nginx/access.log"]

type => "nginxlog"

start_position => "beginning"

}

}

filter {

grok {

match => { "message" => "%{NGINXACCESS}" }

}

}

output {

redis {

port => "6379"

host => ["127.0.0.1"]

data_type => "list"

key => "logstash-%{type}"

}

}

其中output是將nginx的日志發送給redis的list,list是一個鏈表結構,主要功能是push、pop、獲取一個范圍的所有值等等,操作中

key理解為鏈表的名字,Redis的list類型其實就是一個每個子元素都是string類型的雙向鏈表。鏈表的最大長度是(2的32次方)。我們

可以通過push,pop操作從鏈表的頭部或者尾部添加刪除元素。這使得list既可以用作棧,也可以用作隊列

%{type}是調用前面的nginxlog, date_type是將數據存入redis的list中

刷新一下nginx的頁面,使用redis-cli登陸redis,並使用命令LLEN logstash-nginxlog 就可查看到該list有多少個元素了,使用

lindex logstash-nginxlog 0命令可以查看第一個元素,如果這些元素沒被取出將會一直存在於此list中

再啟動一台logstash服務器,yum -y install logstash-1.5.4-1.noarch.rpm, cd /etc/logstash/conf.d/,

vim server.conf

input {

redis {

port => "6379"

host => "192.168.204.135"

data_type => "list"

key => "logstash-nginxlog"

}

}

output {

stdout {

codec => rubydebug

}

}

這台logstash服務器的目的是到redis上去取數據,並把數據輸出到標准輸出,這時刷新一下nginx的頁面就可以看到數據了

開啟一台elasticsearch服務器,yum -y install java-1.7.0-openjdk-devel, yum -y elasticsearch-1.7.2.noarch.rpm

編輯配置文件:vim /etc/elasticsearch/elasticsearch.yml

編輯:cluster.name: loges node.name: "node1"

service elasticsearch start

 

/usr/share/elasticsearch/bin/plugin -i bigdesk -u file:///root/bigdesk-master.zip 安裝插件

 

瀏覽器中http://192.168.204.131:9200/_plugin/bigdesk/ 訪問此插件

安裝kibana 4.1.4, kibana是一個前端展示數據工具,可以安裝在elasticsearch集群中的某一個節點,也可以安裝在一台單獨的節點

tar xf kibana-4.1.4-linux-x64.tar.gz -C /usr/local/ cd /usr/local

ln -s kibana-4.1.4-linux-x64 kibana cd kibana/config

vim kibana.yml

修改:其實默認無需修改什么,因為kibana和上面的elasticsearch服務器在同一台主機上

啟動程序在/usr/local/kibana/bin目錄下,在/usr/local/kibana目錄下使用bin/kibana -h 查看命令幫助

bin/kibana 運行在前台, bin/kibana &運行在后台 ss -tnl 查看5601端口是否開啟

瀏覽器中http://192.168.204.131:5601訪問kibana

現在將日志輸出到ES集群中去,並有kibana展示

修改前面一台logstash服務器的配置文件,vim server.conf

input {

redis {

port => "6379"

host => "192.168.204.135"

data_type => "list"

key => "logstash-nginxlog"

}

}

output {

elasticsearch {

cluster => "loges"

index => "logstash-%{+YYYY.MM.dd}"

}

}

logstash -f ./server.conf --configtest

[2016-07-21 08:27:28.434] WARN -- Concurrent: [DEPRECATED] Java 7 is deprecated, please use Java 8.

Java 7 support is only best effort, it may not work. It will be removed in next release (1.0).

Configuration OK

檢查配置文件時告訴我,雖然java 7盡力支持但見我我使用java 8 因此以后要用java 8咯

實驗做到這里報錯了,可能是版本的問題,架構是部署logstash在web服務器上收集日志,並將日志傳給redis,另外部署一台

logstash到redis上去取日志,然后將取到的日志傳給elasticsearch服務器

 


免責聲明!

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



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