如何将filebeat和logstash接入OpenStack进行日志管理?

摘要:背景 本文原发布于CSDN,现搬运至此,免得某天突然变成VIP文章,自己都看不了。 文中有2台主机: (1)1.1.1.1是OpenStack的nova节点,安装filebeat (2)1.1.1.2是logstash节点 在1.1.1.1
背景 本文原发布于CSDN,现搬运至此,免得某天突然变成VIP文章,自己都看不了。 文中有2台主机: (1)1.1.1.1是OpenStack的nova节点,安装filebeat (2)1.1.1.2是logstash节点 在1.1.1.1上通过filebeat读取OpenStack的nova-compute组件日志(/var/log/nova/nova-compute.log)的增量日志送至logstash,处理后送至下一步环节(终端输出、写入文件、kafka、elasticsearch)。 nova-compute日志格式示例如下: 2023-05-10 23:21:53.513 7 INFO nova.virt.driver [req-59da3b8b-04ed-446d-8d3e-838d3918bdc8 - - - - -] Loading compute driver 'libvirt.LibvirtDriver' 日志格式为“日期 时间 进程id(网上未查到信息) 日志等级 代码模块 请求id 日志正文”。 filebeat 安装 本文从官网(https://www.elastic.co/cn/downloads/beats/filebeat)下载rpm包并安装。 rpm -ivh filebeat-8.13.0-x86_64.rpm 配置 修改/etc/filebeat/filebeat.yml如下: filebeat.inputs: - type: log enabled: true paths: - /var/log/nova/nova-compute.log start_position: end multiline.pattern: '^\d{4}-\d{2}-\d{2}\s' multiline.negate: true multiline.match: after fields: hostip: 1.1.1.1 service: nova component: nova-compute fields_under_root: true output.console: pretty: true enable: true output.logstash: hosts: ["1.1.1.2:5000"] 其中部分配置解释如下: (1)start_position start_position: end表示从末尾开始读取,则文件中原有的历史日志都会被忽略。 (2)multiline multiline.pattern: '^\d{4}-\d{2}-\d{2}\s' multiline.negate: true multiline.match: after 针对日志正文可能出现的换行符情况,对不匹配^\d{4}-\d{2}-\d{2}\s正则表达式的行,追加至上一行后面。
阅读全文