计算机系统应用教程网站

网站首页 > 技术文章 正文

通过ELK快速搭建一个集中化日志平台

btikc 2024-10-18 04:50:39 技术文章 10 ℃ 0 评论

在项目初期的时候,大家都是赶着上线,一般来说对日志没有过多的考虑,当然日志量也不大,所以用log4net就够了,随着应用的越来越多,日志散落在各个服务器的logs文件夹下,确实有点不大方便,这个时候就想到了,在log4net中配置 mysql的数据源,不过这里面有一个坑,熟悉log4net的同学知道写入mysql有一个batch的阈值,比如说batchcache中有100条,才写入mysql,这样的话,就有一个延迟的效果,而且如果batchcache中不满100条的话,你在mysql中是看不到最新的100条日志。。。而且采用中心化的mysql,涉及到tcp传输,其中的性能大家也应该明白,而且mysql没有一个好的日志界面,只能自己去写UI,所以还还得继续寻找其他的解决方案,也就是本篇的ELK。

一:ELK名字解释

ELK就是ElasticSearch + LogStash + Kibana,这三样搭配起来确实非常不错,先画张图给大家看一下。

1. LogStash

它可以流放到各自的服务器上收集Log日志,通过内置的ElasticSearch插件解析后输出到ES中。

2.ElasticSearch

这是一个基于Lucene的分布式全文搜索框架,可以对logs进行分布式存储,有点像hdfs哈。。。

3. Kibana

所有的log日志都到ElasticSearch之后,我们需要给他展示出来,对吧? 这个时候Kibana就出手了,它可以多维度的展示es中的数据。这也解决了用mysql存储带来了难以可视化的问题。

二:快速搭建

1. 官方下载 :https://www.elastic.co/cn/products,在下面这张图上,我们找到对应的三个产品,进行下载就好了。

直接下载放到某个目录下tar -xvf XXX解压即可

我们在192.168.0.4上部署 ElasticSearch + Kibana

2. logstash配置

我们在192.168.0.1~3 上部署 LogStash ,以192.168.0.1为例

解压完之后,我们到bin目录中新建一个logstash.conf配置。

cd /home/elk/logstash-6.3.0/bin

然后做好input ,filter,output三大块, 其中input是吸取logs文件下的所有log后缀的日志文件,filter是一个过滤函数,这里不用配置,output配置了导入到hosts为192.168.0.4:9200的elasticsearch中,每天一个索引。

配置完了之后,我们就可以到bin目录下启动logstash了,配置文件设置为logstash.conf

[elk@VM_zabbix ~]$ ./logstash -f logstash.conf

通过日志可以看到当前开启端口9200

Successfully started Logstash API endpoint {:port=>9600}

3. elasticSearch

这个其实也是ELK中的核心,启动的时候一定要注意,因为es不可以进行root账户启动,所以你还需要开启一个普通账户。

接下来我们默认启动就好了,什么也不用配置,然后在日志中大概可以看到开启了9200,9300端口。

4. kibana

它的配置也非常简单,你需要在kibana.yml文件中指定一下你需要读取的elasticSearch地址和可供外网访问的bind地址就可以了。因为小编的ElasticSearch和 Kibana装在同一台服务器上,所以elasticsearch.url没作修改,默认是连接本机的9200端口

然后就是启动,从日志中可以看出,当前开了5601端口。

cd /home/elk/kibana-6.3.0-linux-x86_64/bin

5. 浏览器中输入:http://192.168.0.4:5601/ 你就可以打开kibana页面了,下面是我汉化后的界面。

好了,本篇就说这么多吧,希望对你有帮助。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表