win7/centos7搭建relk日誌管理系統

本文中日誌管理系統relk分別爲 redis-3.0.7,elasticsearch-2.1.1.zip,logstash-2.1.1.zipkibana-4.3.1-windows(kibana-4.3.1-linux-x64.tar.gz),jdk1.7+

這裏我們使用的是我們分別在win7及centos7系統下搭建:需要到相應os系統下的,分別到相應的模塊下參考下。(另:本人的開發環境爲win7,ES、Kibana等是通過HTTP協議訪問,沒有用戶權限管理,生產地址不允許外部訪問。可以通過Nginx轉發添加簡單的HTTP_BASIC認證。所以在本人開發環境的centos7下安裝的es及kibana,都給了遠程訪問的權限,但是在生產環境中不推薦使用

一:window下搭建elk

jdk安裝略

1)安裝redis

redis的github下載地址:redis  本人用的redis:redislocal

安裝過程就不過多解釋了,直接run.redis.bat,


啓動成功。

redis-cli.exe:命令行操作頁面。

當然有免費的桌面工具:比如本人用的redis-desktop-manager-0.8.3.3850

默認端口6379。

這裏就不在多敘述了,有需要的朋友自己百度下。


2)logstash的安裝。

logstash的安裝包就不放了,看了下版本比較老了,2.1.1的版本晚上搜下就可以了。

注意的是:文件的編碼格式。

配置文件路徑:logstash-2.1.1\bin\toredis.conf(沒有則自行創建)

input {
    file {
        path => "d:\logs\activity.log"
        start_position => beginning
	    codec => multiline {
            pattern => "^%{TIMESTAMP_ISO8601}"
            negate => true
            what => "previous"
			charset => "UTF-8"
        }
		type => "api-log"
    }
 
}
filter {
	grok {
		match => { "message" => 
			"%{TIMESTAMP_ISO8601:date} \[(?<thread_name>.+?)\] (?<log_level>\w+)\s*(?:%{NOTSPACE:col1}|-) - (?<content>.*)"
		}
		overwrite => [ "message" ]
	}
}
output {
    stdout {}
	redis {
		host => "127.0.0.1"
		port => "6379"
		data_type => "list"
		key => "logstash:redis"
    }
}
logstah的用法參考:http://udn.yyuap.com/doc/logstash-best-practice-cn/index.html

啓動命令:logstash -f toredis.conf,toredis.conf是上面的配置文件。

注意:conf的文件編碼格式是ANSI,其他的會報錯。

這裏我在最後的outout裏面加了stdout {},會在命令行打印出來的,生產請去掉。

最後我們可以觀察redis的logstash:redis,我們用之前安裝的redis-desktop-manager查看


這樣我們把log裏面的日誌全部放到了redis裏面。

3)elasticsearch的安裝

本文的es是elasticsearch-2.1.1,直接安裝即可,
安裝head插件,命令:
> cd \elasticsearch根目錄\bin\
> plugin  install  mobz/elasticsearch-head
啓動:bin\elasticsearch
打開:http://localhost:9200/_plugin/head/
接着就是從redis到es了,這裏我們的logstash用的還是之前那個我們安裝好的logstash,增加:toelasticsearch.conf

input {
  redis{
    host        => '127.0.0.1'
    port =>'6379'
    data_type   => 'list'
    key         => 'logstash:redis'
  }
}
filter {}
output {	
	elasticsearch {
			hosts => "127.0.0.1:9200"
			index => "api-log-%{+YYYY.MM.dd}"
	}
}
我們可以更具之前的type來分別到不同的es,或者不同的索引。

if [type] == "api-log-rest" {
elasticsearch {
hosts => ["127.0.0.1:9200","127.0.0.1:9201"]
index => "api-log-test-%{+YYYY.MM.dd}"
}
}else{

...

}

本文只是簡單的搭建就不深入了。

到logstash目錄,啓動命令:logstash -f toelasticsearch.conf

再次進入http://localhost:9200/_plugin/head/。



4)kibana安裝

直接安裝kibana4.3.1,這裏需要註釋的是要注意和es的版本匹配問題。
之前一個項目安裝了比這個還早的一個版本4.1.2,啓動直接報錯,找了半天才發現是版本不匹配。

ok,我們可以查看了。

http://localhost:5601/


create就可以了。


kibana的操作就不在此處詳細展開了。window版本到這裏。


二:centos7下搭建elk

jdk安裝略(jdk1.7+)

1)安裝redis

tar -zxvf redis-3.2.3.tar.gz

cd redis

安裝:make && make install

修改 redis.conf下:

# bind 127.0.0.1

啓動:src/redis-server

命令行:src/redis-cli

127.0.0.1:6379> CONFIG SET protected-mode no

centos7下firewall開啓/添加端口
systemctl status firewall 查看firewall服務狀態
firewall-cmd --state 查看firewall的狀態
firewall-cmd --list-all 查看防火牆規則
1)firewall-cmd --permanent --add-port=6379/tcp 插入防火牆規則,放通6379端口。
2)/etc/firewalld/zones/public.xml
firewall-cmd --permanent --query-port=6379/tcp 查詢剛插入的規則是否生效


這樣我們在window的redis管理客戶端可以訪問了。

2)logstash的安裝

直接解壓,編寫conf文件,啓動:bin/logstash -f toredis.conf。可以在window遠程的redis管理客戶端查看

3)elasticsearch的安裝

1.解壓
2.到config目錄下,修改elasticsearch.yml,找到Network,修改network.host: 172.16.250.192(本機的地址)
3.安裝head命令:bin/plugin install mobz/elasticsearch-head
4.啓動 bin/elasticsearch
5.到logstash目錄,啓動命令:logstash -f toelasticsearch.conf
6.防火牆添加端口9200
6.window系統瀏覽器進入http://172.16.250.192:9200/_plugin/head/

4)kibana安裝

和window一樣,注意版本匹配問題。
1.解壓
2.config目錄下的kibana.yml,修改elasticsearch.url: "http://172.16.250.192:9200"
3.window訪問kibana:http://172.16.250.192:5601/

ok,centos的圖片就不放了,當然這裏只是簡單的個人本地部署,生產上我們可以必須講logstash分離開來,es及logstash,redis都可以集羣,這裏就不深入了。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章