Logstash 进阶实战:sincedb 重新采集、date 时间处理与自定义索引
记录 Logstash 四段进阶实践:file 输入 sincedb 的 offset 机制与旧数据重新采集、date 插件处理日志时间、ES 自定义索引名,以及 grok 自定义正则配合 geoip/useragent/translate 等 filter 的完整案例。
记录 Logstash 四段进阶实践:file 输入 sincedb 的 offset 机制与旧数据重新采集、date 插件处理日志时间、ES 自定义索引名,以及 grok 自定义正则配合 geoip/useragent/translate 等 filter 的完整案例。
完整演示基于 ELFK 架构分析 Nginx 访问日志的全流程:Logstash 编写 05-beats-filter-es.conf(beats 输入 9999、grok 用 HTTPD_COMBINEDLOG 解析 combined 格式、geoip 指定本地 GeoLite2-City.mmdb、ruby 将经纬度拼成 dawn-geo 的 [lon,lat] 数组、useragent 解析 dawn-device、rename 规避字段冲突、date 对齐 @timestamp),输出到 Elasticsearch 的 dawn-logstash-nginx 索引;Filebeat 启用 nginx 模块并将数据推送至 Logstash;最后在 Kibana 建立索引模式,制作访客地理分布 Maps、设备类型/操作系统饼图、响应状态码柱状图,并整合进统一 Dashboard。
围绕 ElasticStack 中 ES 与 Logstash 两个组件展开实战:一是 ES 的 JVM 基础环境优化,调整堆内存(-Xms/-Xmx,生产建议物理内存一半且不超 32GB),将 jvm.options 经 scp 分发至 11.0.1.112/113 并三节点重启生效;二是 Logstash 环境搭建,下载安装 logstash-7.17.22、加入 PATH、用 stdin-to-stdout 配置跑通管道;三是用 Logstash 处理自定义业务日志,编写 generate_log.py 造数,借助 mutate 过滤器(split 切分、add_field 加字段、convert 类型转换)将文本日志结构化后写入 Elasticsearch。
围绕 Filebeat 官方 modules 模块展开实战:先介绍模块概念,演示还原 Nginx 访问日志格式并热加载生效;再通过 filebeat modules enable/disable/list 启用 nginx、tomcat 模块(本质是 modules.d 下 *.yml.disabled 重命名为 *.yml);最后用 nginx 模块采集访问/错误日志写入 Elasticsearch(索引 dawn-log-modules-nginx,模板名 dawn-modules),并在 Kibana 查看数据。
围绕 Filebeat 新版 filestream 输入类型展开实战:一是用 ndjson parser 解析 JSON 格式日志并写入 Elasticsearch(索引 dawn-log-filestream-nginx);二是用 multiline pattern 正则实现多行错误日志匹配(索引 dawn-log-filestream-tomcat-errorlog);三是综合案例,组合 multiline count_lines 与 ndjson 解析一段多行 JSON 日志(索引 dawn-log-filestream-case-demo)。