logstash的output插件

logstash 的output插件前端

nginx,logstash和redis在同一臺機子上java

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

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

vim nglogredissample.confnginx

input {web

file {redis

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

type => "nginxlog"瀏覽器

start_position => "beginning"ruby

}

}

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服務器

相關文章
相關標籤/搜索