SpringCloud版本Hoxton SR5 --- 第九讲:分布式日志收集-Elasticsearch+Logstash+Kibana(ELK)

有兴趣的同学可以看我写的:SpringCloud版本Hoxton SR5 --- 第一讲:认识 先认识认识SpringCloud的一些基本知识。

 


先讲一下原理:

首先在传统项目中,一台服务器看日志,还算方便。但是在分布式架构的系统中多台服务器配置调用,每台服务器都有日志,这时候要看日志,需要在每台服务器中查看,那是非常麻烦的。

所以出现了,分布式日志系统:

首先需要一个kafka,然后通过aop技术把所有日志,使用kafka把日志信息传输给 Logstash,Logstash作用就是:获取到日志数据,处理日志数据,然后将日志数据以json的格式异步的发送给Elasticsearch保存起来,最后再使用Kibana用UI界面的形式,展示出来。(可以分时查询,关键字查询等等,就完全不需要在linux的命令行使用命令来繁琐的查看日志了)

 

aop:aop技术就是可以统一的将日志信息,通过kafka异步的传输出去

kafka: 他的作用就是异步传输数据。

Logstash: 它主要做的就是获取本地日志/获取kafaka传递过来的日志,然后处理(过滤器:排序),再以json格式异步输出。

Elasticsearch:他的作用就是存储日志

Kibana:就是提供UI界面,方便查询日志。

 

接下来就是安装的事情:

1. 先安装Elasticsearch传送门 :   docker之Elasticsearch镜像安装及运行

2. 安装zookeeper,kafka    (docker安装非常快,网络教程也是一大堆,就不说了)

2. 在安装Logstash :   docker安装命令: docker pull logstash     具体怎么安装就不说了。(最后面有原因)

3. 安装Kibana:  docker安装命令:docker pull kibana    具体怎么安装就不说了。

 

注意事项:

生产环境中:   
第一步: 安装Elasticsearch内存最好大一点。

第二步:安装完成之后,需要修改配置 (1. 指定读取日志文件的地址  2.过滤规则  3. 配置输出到Elasticsearch的连接地址和指定索引格式)

input {
    # 从文件读取日志信息 输送到控制台
    file {
        path => "/usr/local/elasticsearch-6.4.3/logs/myes.log"
        codec => "json" ## 以JSON格式读取日志
        type => "elasticsearch"
        start_position => "beginning"
    }
}

# filter {
#
# }

output {
    # 标准输出 
    # stdout {}
    # 输出进行格式化,采用Ruby库来解析日志   
     stdout { codec => rubydebug }
	 elasticsearch {
        hosts => ["192.168.212.190:9200"]
        index => "es-%{+YYYY.MM.dd}"
    }	 
}

 

 

最后说一下,我为什么不愿意写这个:分布式日志收集的安装了。

小公司,用不到。也不是说用不到吧,有更好的,阿里云提供的有服务,1年几千块钱,你想如果自己搭建,Elasticsearch集群光服务器购买一个月就是几千块钱吧,还不说Kafka集群、Zookkper集群。所以推荐使用阿里云提供的服务。如果是学习的话,阿里云也提供了30天的免费。  

大公司呢,如果有自己服务器。他们有专门的运维人员,人家搭建的比你专业,说不定,他们还会自己实现一套符合自己公司要求的分布式日志管理系统。

 

所以,学无止境,衷心的建议大家学好java基础才是正道,有些东西知道原理就足够了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值