博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Fluentd日志处理-插件使用和调试问题(四)
阅读量:6838 次
发布时间:2019-06-26

本文共 3122 字,大约阅读时间需要 10 分钟。

fluentd一些插件的使用

geoip的配置模版

@type geoip geoip_lookup_keys client_ip backend_library geoip2_c geoip_database /fluentd/plugin/GeoLite2-City.mmdb
location '[${location.latitude["client_ip"]},${location.longitude["client_ip"]}]' city ${city.names.en["client_ip"]} country_name ${country.names.en["client_ip"]} region_name ${subdivisions.0.names.en["client_ip"]}

健康日志的过滤模版

@type grep
key message pattern /.*healthcheck.*|.*prometheusMetrics.*|.*(v1+\/)+(configurations)+(\/+versions).*/

删除某些字段

@type record_transformerremove_keys message

fluentd优化的问题。

1.有日志有些会丢失,

path      /log-dir/*-app.log  pos_file  /log-dir/app.log.pos

多个日志文件的位置记录写入一个位置记录文件,会导致日志位置记录的错误,想的办法:为每个日志文件单独配置一个位置记录的文件。

path      /log-dir/*-app.log  pos_file  ${path}.ops

想通过引用的方式来为每个path创建一个ops,但是结局不生效通过仔细阅读官方文档,发现一个in_tail进程里的ops是可以存放多个path

2.日志会在一分钟后传输到ES上

我把日志写入docker日志文件,发现fluentd处理读取和处理速度并不慢,猜测可能是fluentd传输到ES过程中的问题。

通过在在match输出上面刷新缓冲区,及时把缓冲区的数据送到ES,

@type elasticsearchhost elasticsearchlog-lb.elasticsearch-logindex_name s3-fluentd-idaastype_name s3-fluentd-idaasflush_interval 2sinclude_timestamp truessl_verify false

第二个方法就是找到冲突的地方删除掉冲突点(仅仅是个想法)

3.fluentd报警刷屏

id和key都没问题,因为昨天晚上我从S3上拉取下来过,

今天s3的桶里面加上了路径

Amazon S3 logstash-idaas/2018/10/20/

容器日志报出的错误

error_class=Aws::S3::Errors::NoSuchKey error="The specified key does not exist."

(1)测试没有前缀的时候是否会报错

结局:报错少了一些,但是还是会报错

(2)排错过程:

1.我想看看logstash中S3插件是否会给我产生灵感      否2.我想测试fluentd中是否有插件导致了这个问题       否    通过把原有插件卸载,使用最简插件方案来运行这个配置文件3.Google搜索看看    否4.SQS队列里含有各桶的数据,相互之间冲突,新建一个SQS解决这个问题  nice    测试出来的原因就是SQS处理多个S3桶数据的时候,每个桶之间的数据会相互杂糅,促使fluentd拉去数据的时候前缀路径冲突,这个时候我们每一个桶分配一个SQS解决这个问题

4.这个队列无法访问

2018/11/12 上午11:52:552018-11-12 11:52:55 +0800 [error]: #0 unexpected error error_class=Aws::SQS::Errors::NonExistentQueue error="The specified queue does not exist or you do not have access to it

检查队列名字和SQS的权限配置,还有需要检查S3桶的事件通知

5.报出一个错误

2018/11/15 下午7:00:222018-11-15 19:00:22 +0800 [warn]: #0 dump an error event: error_class=Fluent::Plugin::ElasticsearchErrorHandler::ElasticsearchError error="400 - Rejected by Elasticsearch" location=nil tag="app.idaas"

通过观看,发现这个问题主要是app.idaas标签产生的,因为这个标签没有filter,后来对app.idaas进行一次filter后,这个警告问题可以大大缓解。

@type parser key_name thread_name reserve_data yes
@type regexp expression /(?
[\d\D]+)/

6.ES报出的错误

2018/11/16 下午4:16:072018-11-16 16:16:07 +0800 [warn]: #0 Could not push logs to Elasticsearch, resetting connection and trying again. read timeout reached2018-11-16 16:16:44 +0800 [warn]: #0 buffer flush took longer time than slow_flush_log_threshold: elapsed_time=66.07182049937546 slow_flush_log_threshold=20.0 plugin_id="object:2ac85a0bd4a0"

去除下面buffer中的timekey和timekey_wait

index_name    s3-fluentd-request-%Y%m%d    
timekey 4s timekey_wait 1s

fluentd日志处理-安装配置(一)

Fluentd 日志处理-S3拉取日志处理(二)
Fluentd日志处理-tail拉取(三)

转载于:https://blog.51cto.com/11078047/2320018

你可能感兴趣的文章
Java与Excel的交互!-
查看>>
使用 WebIDE 三分钟上手函数计算
查看>>
一. synchronized 的局限性 与 Lock 的优点
查看>>
大龄码农经验那么丰富,为什么很多公司都不招?
查看>>
一辈子不用考试?你可能是个假程序员
查看>>
单选框-复选框重置的方法
查看>>
Confluence 6 "Duplicate Key" 相关问题解决
查看>>
Linux IO多路复用之epoll网络编程(含源码)
查看>>
OTL调用Oracle存储过程
查看>>
【20160924】GOCVHelper MFC增强算法(1)
查看>>
走进JavaWeb技术世界7:Tomcat中的设计模式
查看>>
阅读mutate源码学习dplyr
查看>>
layui upload 额外参数上传
查看>>
我来悟微服务(3)-需求管理
查看>>
fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
查看>>
SpringBoot-14-MyBatis预热篇,MySQL小结
查看>>
深度学习基础与技巧
查看>>
Firefox 将导入 Windows 根证书,避免与杀毒软件的冲突
查看>>
Windows搭建golang开发平台
查看>>
多线程基础篇(3)——初试锁
查看>>