当前位置:网站首页>Filebeat收集日志数据传输到Redis,通过Logstash来根据日志字段创建不同的ES索引
Filebeat收集日志数据传输到Redis,通过Logstash来根据日志字段创建不同的ES索引
2022-06-22 16:38:00 【非著名运维】
1.Filebeat.yml配置
filebeat.inputs:
- type: log
enabled: true
paths:
- /usr/local/nginx/logs/access.log
exclude_files: ['.gz$','INFO']
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
tags: ["nginx-log-messages"]
fields:
log_source: messages
fields_under_root: true
output.redis:
hosts: ["192.168.0.111:6379"]
key: nginx_log
password: nginxredis
db: 0
参数说明
fields:
log_source: messages
fields_under_root: true
使用fields表示在filebeat收集的日志中多增加一个字段log_source,其值是messages,用来在logstash的output输出到elasticsearch中判断日志的来源,从而建立相应的索引 若fields_under_root设置为true,表示上面新增的字段是顶级参数。
顶级字段在output输出到elasticsearch中的使用如下:
[[email protected] logstash]# vim config/logstash.conf
input {
redis {
data_type => "list"
host => "192.168.0.111"
db => "0"
port => "6379"
key => "nginx_log"
password => "nginxredis"
}
}
output {
# 根据redis键 messages_secure 对应的列表值中,每一行数据的其中一个参数来判断日志来源
if [log_source] == 'messages' { # 注意判断条件的写法
elasticsearch {
hosts => ["192.168.0.111:9200"]
index => "nginx-message-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "elastic123"
}
}
#或者也可以根据tags判断
if "nginx-log-messages" in [tags] {
elasticsearch {
hosts => [""192.168.0.111:9200"]
index => "nginx-message-%{+YYYY.MM.dd}"
}
}
}
2.多个应用的日志都输出到redis
filebeat.inputs:
- type: log
enabled: true
paths:
- /usr/local/nginx/logs/access.log
tags: ["nginx-log-access"]
fields:
log_source: access
fields_under_root: true
- type: log
enabled: true
paths:
- /usr/local/nginx/logs/error.log
tags: ["nginx-log-error"]
fields:
log_source: error
fields_under_root: true
output.redis:
hosts: ["192.168.0.111:6379"]
key: nginx_log
password: nginxredis
db: 0
在redis中显示的效果是都会输出到key值nginx_log对应的列表中,根据key值是没法进行区分的,只能根据key值列表中每一行数据中的log_source或者自己定义的属性来判断该行是哪一个应用的日志。
3.不同的应用日志使用不同的rediskey值
使用output.redis中的keys值,官方例子
output.redis:
hosts: ["localhost"]
key: "default_list"
keys:
- key: "error_list" # send to info_list if `message` field contains INFO
when.contains:
message: "error"
- key: "debug_list" # send to debug_list if `message` field contains DEBUG
when.contains:
message: "DEBUG"
- key: "%{[fields.list]}"
说明:默认的key值是default_list,keys的值是动态分配创建的,当redis接收到的日志中message字段的值包含有error字段,则创建key为error_list,当包含有DEBUG字段,则创建key为debug_list。
问题的解决方法是在每个应用的输出日志中新增一个能够区分这个日志的值,然后再在keys中设置,这样一来就能够把不同应用的日志输出到不同的redis的key中。
边栏推荐
- Which platform is safer to buy stocks on?
- Interview shock 58: Six differences among truncate, delete and drop!
- UI automation positioning edge -xpath actual combat
- Heartless sword in Chinese
- Azkaban startup error 2022/06/20 21:39:27.726 +0800 error [stdouterrredirect] [azkaban] exception in thread "m
- 【FPGA+PWM】基于FPGA的三相PWM整流器移相触发电路的设计与实现
- WPF achieves star effect
- 短视频直播源码,EditText输入框的使用
- TypeScript(7)泛型
- Killed by the script, and "resurrected" by camping
猜你喜欢

Power BI的五个实用小技巧(文末赠书)

How can the new generation of HTAP databases be reshaped in the cloud? Tidb V6 online conference will be announced soon!

Recommend 7 super easy-to-use terminal tools - ssh+ftp

Tasks and responsibilities of the test team and basic concepts of testing

轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷

client-go gin的简单整合十-Update

How to solve the problem of database?

clickhouse 21. X cluster four piece one copy deployment

How to do well in R & D efficiency measurement and index selection

Traitement des valeurs manquantes
随机推荐
缺失值处理
Ad20/altium Designer - oil for manhole cover
Xftp 7 (ftp/sftp client) v7.0.0107 official Chinese free official version (with file + installation tutorial)
It may be the most comprehensive Matplotlib visualization tutorial in the whole network
如何理解volatile
clickhouse 21. X cluster four piece one copy deployment
Power BI的五个实用小技巧(文末赠书)
[small program project development -- Jingdong Mall] rotation chart of uni app development
[mysql] install multiple MySQL versions on one Windows computer
redis. clients. jedis. exceptions. JedisDataException ERR invalid password.
一文带你掌握Tcpdump命令的使用
RF Analyzer Demo搭建
This article takes you to master the use of tcpdump command
[applet project development -- Jingdong Mall] subcontracting configuration of uni app development
Network intelligent operation and maintenance helps improve operation and maintenance efficiency
TypeScript(7)泛型
来厦门了!线上交流限额免费报名中
Stop automatically after MySQL server starts
STM32系列(HAL库)——F103C8T6硬件SPI点亮带字库OLED屏
The principle of locality in big talk