filebeat报错too many open files处理
文章发布较早,内容可能过时,阅读注意甄别。
有同学反馈说 api 的日志可能漏采了,部分日志查不到,我于是立马进行一波查验,发现的确是有部分日志没有写到 es,一开始还以为是这部分日志有问题,然后开发同学是同目录下的日志用的是同一个框架,于是又想是不是 es 写入有问题,看了看也没问题,后来来到主机上看 filebeat 的日志,发现了如下报错。
2019-12-03T15:46:22+08:00 ERR Failed to create tempfile (/var/lib/filebeat/registry.new) for writing: open /var/lib/filebeat/registry.new: too many open files
2019-12-03T15:46:22+08:00 ERR Writing of registry returned error: open /var/lib/filebeat/registry.new: too many open files. Continuing...
2019-12-03T15:46:23+08:00 ERR Harvester could not be started on existing file: /var/log/secure, Err: Error setting up harvester: Harvester setup failed. Unexpected file opening error: Failed opening /var/log/secure: open /var/log/secure: too many open files
1
2
3
2
3
如上报错是采集的日志文件超过了 filebeat 进程的最大文件打开数了,而超出的部分,也将无法落入到 es 中。
解决可以参考动态修改 (opens new window),但只是临时生效,一旦服务或者系统重启,就又失效了,因此在启动文件中添加配置来解决:
cat /usr/lib/systemd/system/filebeat.service
[Unit]
Description=filebeat
Documentation=https://www.elastic.co/guide/en/beats/filebeat/current/index.html
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/usr/share/filebeat/bin/filebeat -c /etc/filebeat/filebeat.yml -path.home /usr/share/filebeat -path.config /etc/filebeat -path.data /var/lib/filebeat -path.logs /var/log/filebeat
Restart=always
LimitNOFILE=10240
[Install]
WantedBy=multi-user.target
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
然后重启服务即可。
上次更新: 2024/11/19, 23:11:42