logstash elasticsearch redis Kibana 收集Nginx 和Tomcat日志配置
解释: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 查看日志录入结果
您可以根据自己需要,监控其他相关的日志信息,同时还可以设置过滤规则,进行相关信息的提取。
参考: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/
如果客户端不安装logstash 如何收集tomcat日志呢