Nginx日志从es替换到Doris记录
前言
生产现在Nginx日志,都是通过filebeat+logstash收集与转换到ES上,并通过Grafana进行可视化展示,部署详情查看:ELK-分析Nginx日志和Grafana可视化展示
现在存在一些问题在于,ES存的数据暂时未进行压缩,且其他同事学习成本也会增大(暂时只有我在维护),于是想着对es进行替换,期间也验证过ck数据库,但后面看到doris出了日志存储与分析这篇白皮书文章,就开始打算折腾一下能不能es替换到Doris。没想到经过几天研究与折腾验证还是可行的。而已只是简单修改logstash
配置即可入库,影响面也很小。
操作
过程参考官方文档:
https://doris.apache.org/zh-CN/docs/log-storage-analysis
环境准备
参考:https://199604.com/3212
快速部署
因保密需要,只能展示测试环境,我测试环境,1台fe 2c6g,3台be 2c4g(其中一台与fe共用),1台Doris Manager管理机
优化 FE 和 BE 配置
参考:
https://doris.apache.org/zh-CN/docs/log-storage-analysis#%E7%AC%AC-3-%E6%AD%A5%E4%BC%98%E5%8C%96-fe-%E5%92%8C-be-%E9%85%8D%E7%BD%AE
因暂时考虑冷热存储数据,因此未对存储
参数进行优化。
建表
因暂时考虑冷热存储数据,且暂时未使用云盘,因此与官方文档建表有出入,可自行判断。
采集日志
后面使用filebeat logstash
的版本都是:7.17.27
**对接 filebeat **
因filebeat影响不大,与elk之前配置一致。自行检查:output.logstash
下hosts配置
运行:/AppHome/filebeat-7.17.27-linux-x86_64/filebeat -e -c filebeat.yml
对接 Logstash
参考:
https://doris.incubator.apache.org/zh-CN/docs/ecosystem/logstash
可以从官网下载或者自行从源码编译 Logstash Doris output plugin。
- 从官网下载
- 不包含依赖的安装包 https://apache-doris-releases.oss-accelerate.aliyuncs.com/logstash-output-doris-1.0.0.gem
- 包含依赖的安装包 https://apache-doris-releases.oss-accelerate.aliyuncs.com/logstash-output-doris-1.0.0.zip
安装插件
- 普通安装
${LOGSTASH_HOME} 是 Logstash 的安装目录,运行它下面的 bin/logstash-plugin 命令安装插件
普通安装模式会自动安装插件依赖的 ruby 模块,对于网络不通的情况会卡住无法完成,这种情况下可以下载包含依赖的zip安装包进行完全离线安装,注意需要用 file:// 指定本地文件系统。
- 离线安装
Logstash 配置
修改${LOGSTASH_HOME}/config/logstash.yml
文件
path.config: /opt/logstash-7.17.27/config/pipeline/
为LOGSTASH的服务目录下,自行修改
新增配置文件logstash_nginx_doris_log.conf
运行 Logstash
查询和分析日志
使用webui可视化日志分析
因为webui包含类 Kibana Discover 的日志检索分析界面,提供直观、易用的探索式日志分析交互。
至此,替换es数据库,成功把elk模式替换到filebeat+logstash,入到doris数据库,并通过webui替换Kibana Discover 的日志检索分析。
参考
1.https://doris.incubator.apache.org/zh-CN/docs/ecosystem/logstash
2.https://doris.apache.org/zh-CN/docs/log-storage-analysis