本文中日志管理系统relk分别为.zip,kibana-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

安装过程就不过多解释了,直接run.redis.bat,

centos查看service日志 centos7查看日志_elasticsearch

启动成功。

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:///doc/logstash-best-practice-cn/index.html

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

注意:conf的文件编码格式是ANSI,其他的会报错。

这里我在最后的outout里面加了stdout {},会在命令行打印出来的,生产请去掉。

最后我们可以观察redis的logstash:redis,我们用之前安装的redis-desktop-manager查看。

centos查看service日志 centos7查看日志_redis_02

这样我们把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/。

centos查看service日志 centos7查看日志_kibana_03


4)kibana安装


直接安装kibana4.3.1,这里需要注释的是要注意和es的版本匹配问题。


之前一个项目安装了比这个还早的一个版本4.1.2,启动直接报错,找了半天才发现是版本不匹配。


centos查看service日志 centos7查看日志_redis_04


ok,我们可以查看了。

http://localhost:5601/

centos查看service日志 centos7查看日志_kibana_05

create就可以了。

centos查看service日志 centos7查看日志_elasticsearch_06

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都可以集群,这里就不深入了。