集中式日志分析平台 - ELK Stack - Filebeat 的注意事项

之前阿里的 tailfile 有许多坑,包括对软连接支持度不够,可能会有意想不到的后果,不保证采集数据完整性。比如有某些 情况下(Checkpoint 文件损毁) 重启采集进程后会重复读取历史已采集数据打爆服务器 Load。所以,要更好地使用 Filebeat,我们需要了解 Filebeat 哪些事儿我搞不定哪些事儿我无法承诺。官方文档是一个非常好的参考:Frequently Asked Questions

无法从网络 Volumes 读取 Log

不建议使用 Filebeat 从网络 Volumes 读取日志文件。 尽可能在主机上安装 Filebeat 并从那里直接发送日志文件。 从网络Volumes 读取文件(尤其是在Windows上)可能会产生意外的副作用。 例如,更改的文件标识符可能导致 Filebeat 再次从头读取日志文件。

Filebeat 无法采集数据

这可能是因为 Filebeat 配置不正确或无法将事件发送到 output,解决方案:

  • 确保配置文件指定正在收集的文件的正确路径。 有关详细信息,请参阅 Step 2: Configuring Filebeat
  • 验证文件是否早于 ignore_older 指定的值。 ignore_older 默认是禁用的,这取决于设置的值。 我们可以通过为 ignore_older 指定不同的值来更改此行为。
  • 确保 Filebeat 能够将事件发送到已配置的 output。 在调试模式下运行 Filebeat 以确定它是否成功发布事件:

./filebeat -c config.yml -e -d "*"

下面说说 ignore_older 这个配置:

如果启用此选项,Filebeat 将忽略在指定时间跨度之前修改的任何文件。 如果我们将日志文件保留很长时间,那么配置ignore_older 尤其有用。 例如,如果要启动 Filebeat,但只想发送最新文件和自上周以来的文件,则可以配置此选项。我们可以使用时间字符串,如 2h(2小时)和 5m(5分钟)。 默认值为0,禁用该设置。 注释掉配置与将其设置为0具有相同的效果。

注意:我们必须设置 ignore_older > close_inactive。

配置项 close_inactive 表示在 harvester 读取某文件最后一行日志之后,持续时间内某文件没有再写入日志,Filebeat 将关闭文件句柄,默认是 5m。

发生 Too many open files

Filebeat 会持续保持着句柄,以便以便它可以近乎实时地读取新的日志行。如果 Filebeat 正在收集大量文件,则打开的文件数可能会成为问题。在大多数环境中,活动更新的文件数较少。应相应设置 close_inactive 配置选项以关闭不再活动的文件。

还有其他配置选项可以用来关闭文件处理程序,但是所有这些配置选项都应该仔细使用,因为它们可能有副作用。选项是:

close_renamed
close_removed
close_eof
close_timeout
harvester_limit
close_renamedclose_removed 选项在 Windows 上可用于解决与 log rotate 相关的问题。请参阅 the section called “Open file handlers cause issues with Windows file rotation?close_eof 选项在包含大量文件且只有很少 entries 的环境中很有用。close_timeout 选项在允许数据丢失且必须对文件句柄关闭非常重视的情况下非常有用。有关更多详细信息,请参阅 Filebeat Prospectors Configuration

在使用任何配置选项之前,请确保阅读了这些配置选项的文档。

Registry file 过大

Filebeat保持每个文件的状态,并将状态保持在 registry_file 中。 Filebeat 重新启动时,文件状态用于继续在先前位置读取文件。 如果每天生成大量的新文件,则 文registry_file 件可能会增长得太大。 要减小 registry_file 的大小,有两个可用的配置选项:clean_removedclean_inactive

对于不再 touch 并需要 ignore 的旧文件,建议使用 clean_inactive。 对于已经从磁盘删除的旧文件,则使用 clean_removed 选项。

Inode 复用造成数据采集缺失

在 Linux 文件系统上,Filebeat 使用 inode 和 device 来标识文件。当文件从磁盘中删除时,可以将 inode 分配给一个新文件。在涉及文件轮换的用例中,如果旧文件被删除,并且之后立即创建新文件,则新文件可以具有与被移除的文件完全相同的 inode。在这种情况下,Filebeat 假定新文件与旧文件相同,并尝试在旧 offset 继续读取,这是不正确的。

默认情况下,永远不会从 registry_file 中删除。要解决 inode 复用问题,建议使用 clean_ * 选项,特别是 clean_inactive,以删除非活动文件的状态。例如,如果文件每 24 小时轮换一次,并且轮转的文件不再更新,可以将ignore_older 设置为48小时,将 clean_inactive 设置为72小时。

对于从磁盘中删除的文件,可以使用 clean_removed 。请注意,每当在扫描期间找不到文件时,clean_removed 会从 registry_file 清除文件状态。如果文件稍后再次显示,则将从头重新发送。

Filebeat 使用了过多 CPU

Filebeat 可能被配置为太频繁地扫描文件。 检查 filebeat.yml 配置文件中 scan_frequency 的设置。 将scan_frequency 设置为小于1秒可能导致 Filebeat 扫描磁盘过于频繁。

字段在 Kibana 可视化中不可被索引

如果最近执行了 loads 或解析自定义结构化日志的操作,则可能需要刷新索引以使字段在 Kibana 中可用。 要刷新索引,请使用刷新API。 例如:

curl -XPOST 'http://localhost:9200/filebeat-2016.08.09/_refresh'

Filebeat 总是不发送文件的最后一行

Filebeat 使用换行符来检测事件的结束。 如果行被递增地添加到正在收集的文件,则最后一行之后需要换行符,否则Filebeat 将不会读取文件的最后一行。

如何对 Filebeat 限带宽

如果需要限制带宽使用,建议在操作系统上配置网络堆栈以执行带宽限制。

例如,以下 Linux 命令通过在端口 5044 上对 TCP 连接设置 50 kbps 的限制来限制 Filebeat 和 Logstash 之间的连接:

tc qdisc add dev $DEV root handle 1: htb
tc class add dev $DEV parent 1:1 classid 1:10 htb rate 50kbps ceil 50kbps
tc filter add dev $DEV parent 1:0 prio 1 protocol ip handle 10 fw flowid 1:10
iptables -A OUTPUT -t mangle -p tcp --dport 5044 -j MARK --set-mark 10

使用OS工具执行带宽限制可以更好地控制策略。 例如,可以使用操作系统工具在白天限制带宽,但不能在夜间限制。 或者,可以保留带宽未封顶,但为流量分配低优先级。

常见的 SSL 相关错误和解决方案

以下是一些常见的错误和解决方法:

x509: cannot validate certificate for <IP address> because it doesn’t contain any IP SANs

这是因为证书仅对 Subject filed 中显示的 hostname 有效。要解决此问题,请尝试以下解决方案:

  • 为主机名创建一个DNS条目,将其映射到服务器的IP。
  • /etc/hosts中为主机名创建一个条目。或在 Windows 上添加一个条目到C:\Windows\System32\drivers\etc\hosts
  • 重新创建服务器证书,并为服务器的IP地址添加 SubjectAltName(SAN)。这使服务器的证书对主机名和IP地址都有效。

getsockopt: no route to host
这不是SSL问题。这是一个网络问题。确保两个主机可以通信。

getsockopt:connection refused
这不是SSL问题。确保 Logstash 正在运行,并且没有防火墙阻止流量。

No connection could be made because the target machine actively refused it
防火墙拒绝连接。检查防火墙是否阻止客户端,网络或目标主机上的流量。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容