elasticsearch+logstash+kibana
集成环境,主要为项目所产生的日志文件,提供顶级解决方案。docker-compose.yml
同目录的 .env
文件可以设置 elk
版本号,例如:默认为 7.13.3
.# 配置文件目录
elasticsearch > config
# 如果服务器配置比较高,建议将 jvm.options 配置文件中的内存使用设置大一点,例如 默认为 1g,可以设置为 2g
-Xms1g
-Xmx1g
# 特别注意(这里最容易报错,导致容器启动失败):
# 按照用户组、用户id分配权限,1000 、1000 分别表示容器内的 elasticsearch 组 和 elasticsearch 用户
chown -R 1000:1000 ./elasticsearch/*
kibana 主要提供界面展示系统,他需要连接 elasticsearch 获取数据,默认配置使用即可,不需要修改.
# 配置文件目录 , 可以在这里查询具体配置,默认即可
kibana > config
1.logstash 可以分布在任何服务器,负责采集 nginx、go应用程序的日志,向 elasticsearch 服务器发送日志.如果你的应用程序产生的日志是独立的服务器,那么就需要在每台应用服务器安装.
2.注意: logstash 采集的目标日志必须是 json 格式,例如 nginx 日志需要 json化等,此部分您可以参考:https://gitee.com/daitougege/GinSkeleton/blob/master/docs/elk_log.md.
# 配置文件目录 ,
logstash > config
> pipeline
# 其中 config 目录主要配置 logstash 本身的参数
1. logstash > config > jvm.options 可以限制内存使用 ,默认为 512M ,如果服务器配置高,可以设置为 1g
-Xms512m
-Xmx512m
2. logstash > config > logstash.yml 可以配置数据对接的 elasticsearch 服务器ip等参数,默认即可
# 本配置项定义 logstash 需要采集的目标日志文件路径、名称以及发送到 elasticsearch 服务器时的文件名等,相对比较复杂。
# 请参考我们提供的格式修改即可,这样是最简单的办法.
# 一个应用程序需要配置一个日志路径、文件名
3. logstash > pipeline > logstash.conf 配置采集的日志对象处理逻辑,请参考默认的格式配置即可
# 1.安装 docker 环境,如果没有docker环境,请先百度一下,安装。
# 1.安装 docker-compose 环境,如果没有 docker-compose 扩展,参考 http://github.com/docker/compose/
# 3.下载/克隆 本项目,在 docker-compose.yml 同目录执行命令 docker-compose up -d 即可
现在我们可以访问kibana地址:
http://172.21.0.13:5601
, 如果是云服务器就使用外网地址访问即可.
以下操作基本都是可视化界面,通过鼠标点击等操作完成,我就以截图展示一个完整的主线操作流程, 其他知识请自行查询官网或者加我们的项目群咨询讨论.
特别说明:以下数据是基于测试环境, 有一些数据是直接把老项目的日志文件覆盖到指定位置,所以界面的查询日期跨度比较大.
nginx access 的日志
goskeleton 的日志
nginx error 的日志
基于以上数据我们可以在 elk 做数据统计、分析,例如:可视化展示网站访问量. 哪些接口访问最多、哪些接口访问最耗时,就需要优先优化。 elk 能做的事情超乎你的想象(机器学习、数据关联性分析、地理位置分布分析、各种图形化等等), 请参考官方提供的可视化模板,自己做数据展示设计即可。
比较遗憾的是我们做的模板无法直接分享给其他人,只能分享最终的效果,其他开发者可自行参考制作自己的展示模板.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。