filebeat常见问题

作者: skyjunjun | 来源:发表于2018-04-20 18:09 被阅读0次

    1.Too many open file handlers

    Filebeat保持文件处理程序打开,直到文件到达文件末尾,以便它可以近乎实时地读取新的日志行。 如果Filebeat正在收集大量文件,则打开文件的数量可能会成为问题。 在大多数环境中,正在更新的文件数量很少。
    close_inactive配置选项应相应地设置为关闭不再处于活动状态的文件。

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

    close_renamed和close_removed选项在Windows上很有用,可以解决与文件旋转相关的问题。
    请参阅打开文件处理程序导致Windows文件旋转问题?

    打开文件处理程序会导致Windows文件旋转问题?
    在Windows上,您可能在重命名或删除文件时遇到问题,因为Filebeat会使文件处理程序保持打开状态。
     这可能会导致文件旋转系统出现问题。 为避免此问题,您可以一起使用close_removed和close_renamed选项。
    
    重要
    当您配置这些选项时,收割机读取文件之前可能会关闭文件。 如果探矿者无法再次拾取文件,并且收割机尚未完成读取文件,则缺失的行将永远不会被发送到输出。
    

    close_eof选项在具有大量只有很少条目的文件的环境中很有用。
    close_timeout选项在关闭文件处理程序比发送所有日志行更重要的环境中很有用。 有关更多详细信息,请参阅设置探矿者。

    确保在使用这些配置选项之前阅读这些配置选项的文档。

    2.Filebeat使用了太多的CPU?

    Filebeat可能被配置为频繁扫描文件。 检查filebeat.yml配置文件中scan_frequency的设置。 将scan_frequency设置为小于1s可能会导致Filebeat在频繁的循环中扫描磁盘。

    3.注册文件太大?

    Filebeat保持每个文件的状态并将该状态保存在registry_file中的磁盘上。 Filebeat重新启动时,文件状态用于在前一个位置继续读取文件。 如果每天都生成大量新文件,则注册表文件可能会变得太大。 要减小注册表文件的大小,有两个可用的配置选项:clean_removed和clean_inactive。

    对于不再接触并忽略的旧文件(请参阅ignore_older),我们建议您使用clean_inactive。 如果旧文件从磁盘中删除,请使用clean_removed选项。

    4.linux Inode重用会导致Filebeat跳过行吗?

    Inode重用会导致Filebeat跳过行吗?
    在Linux文件系统上,Filebeat使用inode和设备来识别文件。
    从磁盘中删除文件时,可将inode分配给新文件。
    在涉及文件旋转的使用情况下,如果旧文件被删除并且之后立即创建新文件,
    新文件可能与删除的文件具有完全相同的inode。在这种情况下,Filebeat假定新文件与旧文件相同,并尝试在旧位置继续读取,这是不正确的。

    默认状态不会从注册表文件中删除。要解决inode重用问题,我们建议您使用clean_ *选项(特别是clean_inactive)来删除非活动文件的状态。
    例如,如果您的文件每24小时轮换一次,并且轮换的文件不再更新,则可以将ignore_older设置为48小时,将clean_inactive设置为72小时。

    您可以将clean_removed用于从磁盘中删除的文件。请注意,clean_removed会在扫描期间无法找到文件时清除注册表中的文件状态。如果文件稍后再次显示,它将从头开始重新发送。

    5.Filebeat没有运送文件的最后一行?

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

    6.Filebeat长时间保持已删除文件的打开文件处理程序(handler)?

    在默认行为中,Filebeat会打开文件并保持打开状态,直到达到文件末尾。
    在配置的输出很长时间(例如Elasticsearch或Logstash不可用)的情况下,这可能会导致Filebeat将文件处理程序保留到同时从文件系统中删除的文件。 只要Filebeat保持已删除的文件处于打开状态,操作系统就不会释放磁盘空间,这可能会导致磁盘利用率增加,甚至出现磁盘不足的情况。

    为了缓解这个问题,您可以将close_timeoutedit设置设置为"5m"。 这将确保每5分钟关闭一次文件处理程序,而不管是否达到EOF。
    请注意: 如果在Filebeat到达文件末尾之前删除文件,则此选项可能会导致数据丢失。

    7.需要限制Filebeat使用的带宽?

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

    例如,以下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
    

    使用操作系统工具执行带宽限制可让您更好地控制策略。 例如,您可以使用操作系统工具在白天限制带宽,但不是在晚上。 或者您可以保留带宽不受限制,但为流量分配低优先级。

    8.配置问题

    您的配置文件的结构有问题,或者您使用了YAML分析程序无法解析的路径或表达式,因为配置文件包含未正确转义的字符。

    如果YAML文件包含具有空格或不常用字符的路径,请将路径包装在单引号中(请参阅将单引号标记为包裹路径)。

    另请参阅YAML提示和疑难解答中的一般建议:https://www.elastic.co/guide/en/beats/filebeat/current/yaml-tips.html

    9.Kibana中的仪表板正在错误地分解数据字段?

    索引模板可能未正确加载。 请参阅步骤4:在Elasticsearch中加载索引模板。

    10.字段在Kibana可视化中没有索引或可用?

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

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

    【参考:https://www.elastic.co/guide/en/beats/filebeat/current/faq.html

    相关文章

      网友评论

        本文标题:filebeat常见问题

        本文链接:https://www.haomeiwen.com/subject/frszkftx.html