ELK结合logback搭建日志中心
来源:互联网 发布:java try catch嵌套 编辑:程序博客网 时间:2024/05/21 11:59
ELK简介ELKStack即Elasticsearch + Logstash + Kibana。日志监控和分析在保障业务稳定运行时,起到了很重要的作用。比如对nginx日志的监控分析,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录,所以可以通过读取日志文件来分析;redis的list结构正好可以作为队列使用,用来存储logstash传输的日志数据。然后elasticsearch就可以进行分析和查询了。
本文搭建的的是一个分布式的日志收集和分析系统。logstash有agent和indexer两个角色。对于agent角色,放在单独的web机器上面,然后这个agent不断地读取nginx的日志文件,每当它读到新的日志信息以后,就将日志传送到网络上的一台redis队列上。对于队列上的这些未处理的日志,有不同的几台logstash indexer进行接收和分析。分析之后存储到elasticsearch进行搜索分析。再由统一的kibana进行日志web界面的展示。
以上为抄袭!!!
好吧,让我们切入正题:
Java环境安装
首先我们需要一台linux机器,紧哥其实非常不喜欢在window下安装软件,hoho~当然我们也默认你已经安装了java,建议版本是使用1.8,但是我使用的是1.7,就是这么任性~
colin@colindev:~$ java -version java version "1.7.0_21"Java(TM) SE Runtime Environment (build 1.7.0_21-b11)Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
Logstash安装
下载logstash并解压,推荐使用最新版本
创建simple.conf文件,并编写测试conf
input { stdin { } }output { elasticsearch { host => localhost } stdout { codec => rubydebug }}
colin@colindev:~$ wget https://download.elastic.co/logstash/logstash/logstash-2.3.1.tar.gzcolin@colindev:~$ tar -zvxf logstash-2.3.1.tar.gzcolin@colindev:~$ vim simple.conf colin@colindev:~$ /home/colin/logstash-2.3.1/bin/logstash -f simple.conf --debug
3.可以看到logstash已经运行,输入hello world会有log打印出来则安装成功
Elasticsearch安装
ElasticSearch默认的对外服务的HTTP端口是9200,节点间交互的TCP端口是9300(这个可以自配置),注意打开tcp端口
先下载并解压
安装mobz/elasticsearch-head插件
启动logstash并测试 elasticsearch
注意:启动elasticsearch的话不能用root账号哈~
colin@colindev:~$ wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.1.tar.gzcolin@colindev:~$ tar -zxvf elasticsearch-1.7.1.tar.gz [colin@colindev:bin ]$ ./plugin install mobz/elasticsearch-head[colin@colindev bin]$ elasticsearch start
启动起来的界面是:
接下来就要安装kibana了
Kibana安装
[root@hadoop-slave ~]# wget https://download.elastic.co/kibana/kibana/kibana-4.1.1-linux-x64.tar.gz[root@hadoop-slave elk]# tar -zxf kibana-4.1.1-linux-x64.tar.gz [root@hadoop-slave elk]# mv kibana-4.1.1-linux-x64 /usr/local/elk[root@hadoop-slave bin]# pwd/usr/local/elk/kibana/bin[root@hadoop-slave bin]# ./kibana &
打开http://localhost:5601/
如果需要远程访问,需要打开iptables的tcp的5601端口。
ELK+logback结合
需要修改logstash的配置文件
修改logback配置文件github-> 使用ogstash-logback-encode
input { tcp { host => "192.168.1.167" port => 9250 mode => "server" tags => ["tags"] codec => json_lines //可能需要更新logstash插件 }}output { stdout{codec =>rubydebug} elasticsearch { hosts => ["localhost:9200"] //这块配置需要带端口号 flush_size => 1000 }}
<?xml version="1.0" encoding="UTF-8"?><configuration> <property resource="properties/logback-variables.properties" /> <!-- 得到APP_NAME log_path的值 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder charset="UTF-8"> <!-- encoder 可以指定字符集,对于中文输出有意义 --> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n </pattern> </encoder> </appender> <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>192.168.1.167:9250</destination> <!-- encoder is required --> <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" /> </appender> <!--<appender name="async" class="ch.qos.logback.classic.AsyncAppender">--> <!--<appender-ref ref="stash" />--> <!--</appender>--> <root level="info"> <!-- 设置日志级别 --> <appender-ref ref="STDOUT" /> <appender-ref ref="stash" /> </root></configuration>
写一个测试程序:
import org.junit.Test;import org.slf4j.LoggerFactory;/** * Created by colinsu on 2016/4/14. */public class LogstashTest { private static final org.slf4j.Logger LGR = LoggerFactory.getLogger(LogstashTest.class); @Test public void test() { LogstashTest obj = new LogstashTest(); try{ obj.divide(); }catch(ArithmeticException ex){ LGR.error("大家好111!", ex); } } private void divide(){ int i = 10 /0; }}
使用logstash debug模式
/home/colin/logstash-2.3.1/bin/logstash -f simple.conf --debug
这里可能因为buffer大小的原因不能flush,多执行几次就好了,timestamp会相差8小时,没有什么影响,在kibana会显示正常
使用kibana来查看相应的结果
待改进和学习的地方
需要加上收集的缓冲组件。如 redis,kafka等
配置文件可以配置niginx,linux,jvm等日志
报表可视化熟练
- ELK结合logback搭建日志中心
- logback+ELK+redis日志收集服务搭建
- Logback+ELK+SpringMVC搭建日志收集服务器
- Logback+ELK+SpringMVC搭建日志收集服务器
- ELK+kafka+logback日志采集
- dubbo2.5-spring4-mybastis3.2-springmvc4-logback-ELK整合(十三) logback+ELK日志收集服务器搭建
- ELK系列-logstash跟logback结合
- ELK(ElasticSearch, Logstash, Kibana)+ SuperVisor + Springboot + Logback 搭建实时日志分析平台
- ELK(ElasticSearch, Logstash, Kibana)+ SuperVisor + Springboot + Logback 搭建实时日志分析平台
- 搭建ELK日志系统
- ELk日志系统搭建
- Springboot+logback集成ELK处理日志实例
- ELK小记(一):搭建ELK日志系统
- ELK 日志分析平台搭建
- ELK 日志分析平台搭建
- ELK日志分析系统搭建
- ELK日志分析系统搭建
- ELK 日志分析平台搭建
- MyEclipse加入jquery.js文件后出现missing semicolon的错误的解决方法
- Web模糊测试工具Powerfuzzer
- 题目1183:守形数
- Hibernate开发步骤,执行流程、方言的作用、映射文件的作用、如何进行联合主键映射
- 解决代理 Ubuntu 命令行apt-get 联网问题
- ELK结合logback搭建日志中心
- IMWeb训练营作业——todo list
- IMX6 Linux系统下串口丢包错包问题研究
- excel双击改变格式
- windows服务编写原理(下)
- 约瑟夫环
- 指针
- android library中使用butterknife的注解
- SpringBoot打包成WAR使用外置TOMCAT启动