Filebeat和logstash 使用过程中遇到的一些小问题记录
一、filebeat 收集软链文件日志
1.1、场景
由于我们新部署的
Nginx日志都是采用的软链的形式。lrwxrwxrwx 1 root root 72 Apr 6 00:00 jy.baidu.com-80-access.log -> /usr/local/openresty/nginx/logs/jy.baidu.com-80-access.log.2022040600
-rw-r--r-- 1 nginx root 4502502 Apr 3 23:59 jy.baidu.com-80-access.log.2022040300
-rw-r--r-- 1 nginx root 5790629 Apr 5 00:00 jy.baidu.com-80-access.log.2022040400
-rw-r--r-- 1 nginx root 9166562 Apr 5 23:59 jy.baidu.com-80-access.log.2022040500
-rw-r--r-- 1 nginx root 2447936 Apr 6 09:31 jy.baidu.com-80-access.log.2022040600
我们收集日志的时候,通过配置
filebeat收集日志文件jy.baidu.com-80-access.log, 因为这个文件会一直软链到最新的日志文件。但是我们会发现在启动
filebeat后filebeat并没有报错什么。 但是我们logstash好像也没有往es 写日志。
1.2、问题排查
我们首先是通过开启
filebeat的 debug模式,就是看下filebeat的详细日志,这一步理论上来说,我们应该先通过kafka看下是否有日志写入kafka。 但是没有关系,我们通过看filebeat的详细日志。 可以一步分析到位。logging.level: debug
我们在日志中可以看到下面的信息
2022-04-03T19:48:21.675+0800 DEBUG [monitoring] memqueue/eventloop.go:228 handle ACK took: 54.938µs
2022-04-03T19:48:21.675+0800 DEBUG [monitoring] memqueue/ackloop.go:128 ackloop: return ack to broker loop:1
2022-04-03T19:48:21.675+0800 DEBUG [monitoring] memqueue/ackloop.go:131 ackloop: done send ack
2022-04-03T19:48:23.443+0800 DEBUG [input] input/input.go:152 Run input
2022-04-03T19:48:23.443+0800 DEBUG [input] log/input.go:174 Start next scan
2022-04-03T19:48:23.443+0800 DEBUG [input] log/input.go:273 File /usr/local/openresty/nginx/logs/jy.baidu.com-80-access.log skipped as it is a symlink.
2022-04-03T19:48:23.443+0800 DEBUG [input] log/input.go:195 input states cleaned up. Before: 1, After: 1, Pending: 0
2022-04-03T19:48:26.443+0800 DEBUG [input] input/input.go:152 Run input
2022-04-03T19:48:26.444+0800 DEBUG [input] log/input.go:174 Start next scan
日志内容
File /usr/local/openresty/nginx/logs/jy.baidu.com-80-access.log skipped as it is a symlink.
我们可以看到文件因为是软链接所以被忽略了。
我们查看官方文档,需要增加配置
symlinks: truefilebeat.inputs:
- type: log
symlinks: true
然后我们重启
filebeat就可以看到有日志写入kafka了。
二、logstash
2.1、logstash 解析日志不写入es
每个人的场景不一样。这里只提供大概思路。
kafka 是否有数据, 可以kafka consumer 进行订阅用不同的 group 来同一个 topic。 进行查看是否有kafka数据
看
logstash启动是否有报错。[2022-04-02T20:55:06,432][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"6.8.0"}
[2022-04-02T20:55:07,554][ERROR][logstash.agent ] Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message=>"Expected one of #, {, } at line 5, column 43 (byte 118) after input {\n kafka {\n group_id => \"hz-sg\"\n topics => [\"hz-sg-nginxlog\"]\n bootstrap_servers => \"10.59.4.50:9092\"", :backtrace=>["/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:41:in `compile_imperative'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:49:in `compile_graph'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:11:in `block in compile_sources'", "org/jruby/RubyArray.java:2577:in `map'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:10:in `compile_sources'", "org/logstash/execution/AbstractPipelineExt.java:151:in `initialize'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:22:in `initialize'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:90:in `initialize'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:43:in `block in execute'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:96:in `block in exclusive'", "org/jruby/ext/thread/Mutex.java:165:in `synchronize'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:96:in `exclusive'", "/usr/share/logstash/logstash-core/lib/logstash/pipeline_action/create.rb:39:in `execute'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:334:in `block in converge_state'"]}
[2022-04-02T20:55:07,807][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
[2022-04-02T20:55:12,703][INFO ][logstash.runner ] Logstash shut down.像这种就是配置文件格式可能存在一些问题。
[2022-04-02T20:36:04,433][ERROR][logstash.pipeline ] Error registering plugin {:pipeline_id=>"main", :plugin=>"#<LogStash::FilterDelegator:0x5fdbe919>", :error=>"pattern %{SERVICE:service} not defined", :thread=>"#<Thread:0x20114a64 run>"}这种报错就是我们没有定义变量的匹配规则。
还有一种是我们最近遇到了的,就是我在 es 的 output 的时候,引用了一个变量
service。 但是前面没有定义这个。最后这个logstash 也没有报错,就是写不到 es 里面。elasticsearch {
hosts => ["10.60.4.50","10.60.4.51","10.60.4.52"]
index => "%{[service]-%{+YYYY.MM.dd}"
template => "/etc/logstash/template/nginx.json"
template_name => "nginx.json"
template_overwrite => true
user => "elastic"
password => "1111111"
}开启日志debug.
/etc/logstash/logstash.yml#log.level: debug
2.2、logstash 配置多个后端
logstash -f /opt/logstash/conf/conf.d/注意
/conf.d/后面不要加***** 这样会导致只匹配一个。使用多个配置文件里面的input、filter、output 不是互相独立的。
logstash读取多个配置文件只是简单的将所有配置文件整合到了一起
如果要彼此独立,需要自己加字段,然后在output 判断一下 ,通过字段进行区分。
Filebeat和logstash 使用过程中遇到的一些小问题记录的更多相关文章
- js:使用js过程中遇到的一个小问题
在一个作业中使用了js,函数A调用函数B.当A和B中均含有变量i的时候,相关操作结果可能会出错. 将B中的i替换为j(j不存在于A中)后,结果正确. 目前考虑原因是两个变量i有相关性(或者说实际上就是 ...
- thinkphp 使用过程中遇到的一个小函数
1.实现导出Excel文件,并在导出的文件中显示图片 //导出 public function push(){ $goods_list=M('Dajia')->select(); $data = ...
- AdminIII连接linux Postgresql过程中的几个小问题
1.postgresql.conf主配置文件中要配置postgresql绑定的IP,如果不设置,可能只绑定本地闭环地址:127.0.0.1,可以设定为0.0.0.0:就包括了一切IPv4地址 2.pg ...
- Fiddler使用过程中容易忽略的小技巧
fiddler的基本使用,在之前的一篇博文中有详细介绍,可参见Fiddler抓包工具使用详解,今天来分享几个容易忽略的小技巧. 1.ios机装了证书,依然抓不到包 近期总被同事问及ios机装了证书,但 ...
- flowplayer+flashhls使用过程中发现的一些小问题
flashls里边有好几套代码,主要看生成路径,其中flowplayer用了flashls.swc,flashls.swc使用的代码在这里:/src/org/mangui/hls,所以要注意,当搜索代 ...
- 搭建DG(data guard),及搭建过程中遇到的一些小问题
一.准备工作:主库:虚拟机名称host06 主机名:host06 IP:192.168.100.60 db_name&SID:ENMO db_unique_name:PROD 存储:文件系统 ...
- JS中部分不常用小功能记录
1.serializeArray()在表单中使用,必须在form标签中,需要手机的元素要有name属性.源生JS将对象转成json resulrMK = JSON.stringify(resulr ...
- 【事件中心 Azure Event Hub】使用Logstash消费EventHub中的event时遇见的几种异常(TimeoutException, ReceiverDisconnectedException)
问题描述 使用EFK(Elasticsearch, Fluentd and Kibana)在收集日志的解决方案中, 可以先把日志发送到EventHub中,然后通过Logstash消费EventHub中 ...
- [.NET跨平台]Jeuxs独立版本的便利与过程中的一些坑
本文环境与前言 之前写过一篇相关的文章:在.NET Core之前,实现.Net跨平台之Mono+CentOS+Jexus初体验 当时的部署还是比较繁琐的,而且需要联网下载各种东西..有兴趣的可以看看, ...
随机推荐
- 【一】工程配置与电机控制part1
前言 学校发的无刷电机: 我们准备的有刷电机: 带霍尔编码器! 电机参数: 名称:驰名电机(直流减速电机) 型号:JGA25-370 电压:12V 转数:1360r/min 做云台,核心是使用PID控 ...
- LGP6144题解
冲了50分钟外加10分钟厕所才冲出来,请问我还有救吗. 看上去像是金组题目的加强版,实际上是金组题目的魔改版. 还是考虑像弱化版那样按照左端点排序,并且记录答案的 \(0\sim k\) 次幂和. 然 ...
- 前端面试题(css)
css 基础面试题 css 面试题 js 面试题 1.介绍下CSS的盒子模型 介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? css 是如何设置这两种模型的 box-si ...
- sqlmap的常用tamper脚本
sqlmap下的tamper目录存放绕过WAF脚本 使用方法 --tamper 脚本名称,脚本名称 多个tamper脚本之间用空格隔开 apostrophemask.py 用utf8代替引号 equa ...
- Nebula Graph 在网易游戏业务中的实践
本文首发于 Nebula Graph Community 公众号 当游戏上知识图谱,网易游戏是如何应对大规模图数据的管理问题,Nebula Graph 又是如何帮助网易游戏落地游戏内复杂的图的业务呢? ...
- 基于SpringBoot实现自动装配返回属性
一:需求背景 在业务开发中经常会有这个一个场景,A(业务表)表中会记录数据的创建人,通常我们会用userId字段记录该数据的创建者,但数据的使用方会要求展示该数据的创建者姓名,故我们会关联用户表拿该用 ...
- Apache HBase MTTR 优化实践
HBase介绍 HBase是Hadoop Database的简称,是建立在Hadoop文件系统之上的分布式面向列的数据库,它具有高可靠.高性能.面向列和可伸缩的特性,提供快速随机访问海量数据能力. H ...
- Spring Cache缓存框架
一.序言 Spring Cache是Spring体系下标准化缓存框架.Spring Cache有如下优势: 缓存品种多 支持缓存品种多,常见缓存Redis.EhCache.Caffeine均支持.它们 ...
- 什么是Spring IOC 容器?
Spring IOC 负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期.
- mac-brew
brew search [TEXT|/REGEX/] 搜索软件 brew (info|home|options) [FORMULA...] 查询软件信息 brew install FORMULA... ...