首页 > elasticsearch, Linux, 系统监控工具 > logstash elasticsearch redis Kibana 收集Nginx 和Tomcat日志配置

logstash elasticsearch redis Kibana 收集Nginx 和Tomcat日志配置

工作原理如下图
9F87F14E-4CFF-415A-8250-D4215D7EC132

解释:logstash 主要处理两个事情,shipper和indexer。shipper 即进行日志的收集,indexer则对数据进行分析过滤处理以及持久化保存到elasticsearch中。redis 在中间起着中转的作用。Kibana 是一个日志可视化web程序。

1.准备工作

安装配置如下软件 Jdk Nginx Redis Tomcat  Elasticsearch 且确保各软件都正常运行

相关步骤请自行google

2.修改elasticsearch配置

编辑vim /etc/elasticsearch/elasticsearch.yml

增加如下内容

http.cors.allow-origin: "/.*/"
http.cors.enabled: true

相关原因 refer to https://gist.github.com/rmoff/379e6ce46eb128110f38

2.配置logstash

$ wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz
$ tar zxvf logstash-1.4.2.tar.gz -C /opt/
$ cd /opt/logstash-1.4.2
$ mkdir conf logs

新增中心logstash central.conf  配置,保存在logstash根目录下的conf下

input {
        redis {
                host => "127.0.0.1"
                port => 6379
                type => "redis-input"
                data_type => "list"
                key => "logstash-key" //shipper和indexer 严格一致
        }
}

output {
        stdout {}
        elasticsearch {
                cluster => "logstash_elasticsearch"
                codec => "json"
                protocol => "http"
        }   
}

执行如下命令,启动logstash indexer服务,实时从redis读取日志信息

bin/logstash agent --verbose --config conf/central.conf --log logs/central.log

新增nginx-shipper 配置,用于收集nginx日志记录

input {
        file {
                type => "nginx" 
                path => ["/var/log/nginx/access.log"]
        }
}

output {
        stdout {}
        redis {
                host => "127.0.0.1"
                port => 6379
                data_type => "list"
                key => "logstash-key"
        }
}

启动logstash nginx shipper服务

bin/logstash agent --verbose --config conf/nginx-shipper.conf --log logs/nginx-shipper.log

 

新增tomcat-shipper 配置,用于收集tomcat日志记录

input {
        file {
                type => "tomcat" 
                path => ["/opt/apache-tomcat-7.0.57/logs/catalina.out"]
        }
}

output {
        stdout {}
        redis {
                host => "127.0.0.1"
                port => 6379
                data_type => "list"
                key => "logstash-key"
        }
}

启动logstash tomcat shipper服务

bin/logstash agent --verbose --config conf/tomcat-shipper.conf --log logs/tomcat-shipper.log

3.配置kibana

下载 kibana,解压到nginx得html目录下,修改kibana的config.js  中elasticsearch 属性,指向elasticsearch服务器

例如我的是

 elasticsearch: "http://192.168.1.131:9200",

4.启动nginx

打开 http://192.168.1.131/kibana-3.1.1 查看日志录入结果

0E65153A-1BA1-4EEE-B355-EF22F5565C59

您可以根据自己需要,监控其他相关的日志信息,同时还可以设置过滤规则,进行相关信息的提取。

参考:http://logstash.net/docs/1.4.2/tutorials/getting-started-with-logstash

https://ianunruh.com/2014/05/monitor-everything-part-2.html

http://nkcoder.github.io/blog/20141031/elkr-log-platform-deploy/

  1. chenwh
    2015年9月17日18:17 | #1

    如果客户端不安装logstash 如何收集tomcat日志呢

  1. 本文目前尚无任何 trackbacks 和 pingbacks.
*