I understand this question with the title has been asked many times before and almost every thread i has opened and learned here, but the doesn't come across any concrete answer so far specially for the Linux with systemd service. I have got the below errors:
[2019-02-06T07:47:01,817][WARN ][filewatch.tailmode.processor] Reached open files limit: 4095, set by the 'max_open_files' option or default, files yet to open: 422
[2019-02-06T07:47:22,314][WARN ][filewatch.tailmode.processor] Reached open files limit: 4095, set by the 'max_open_files' option or default, files yet to open: 422
[2019-02-06T07:47:43,927][WARN ][filewatch.tailmode.processor] Reached open files limit: 4095, set by the 'max_open_files' option or default, files yet to open: 422
[2019-02-06T07:48:04,406][WARN ][filewatch.tailmode.processor] Reached open files limit: 4095, set by the 'max_open_files' option or default, files yet to open: 422
[2019-02-06T07:48:25,934][WARN ][filewatch.tailmode.processor] Reached open files limit: 4095, set by the 'max_open_files' option or default, files yet to open: 422
[2019-02-06T07:48:46,529][WARN ][filewatch.tailmode.processor] Reached open files limit: 4095, set by the 'max_open_files' option or default, files yet to open: 422
I understand this is generic logs and dictates its meaning, However i have followed all the document and threads as possible to fix my issue before coming here to post hence i'm concluding all the Steps i have taken so far to fix the problem but did not worked.
-
limit defined in the limits.conf file for root and wide open to all as `*
`*` soft nofile 64000 `*` hard nofile 64000 root soft nofile 64000 root hard nofile 64000
-
Max file defined in the main config file sysctl.conf to system-wide implementation:
[els_hosts] # cat /etc/sysctl.conf net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 vm.max_map_count = 262144 fs.file-max = 655360
- As the system is running with RHEL7 with systemd Service hence also applied the changes under service.d/ dir path.
[els_hosts] # cat /etc/systemd/system/logstash.service.d/logstashlimit.conf [Service] LimitNOFILE=256000 LimitMEMLOCK=infinity
Verifying the limits under /proc , ulimit and logstash's startup.options as follows:
[els_hosts] # cat /proc/sys/fs/file-max 655360
> [els_hosts] # ulimit -a | grep open
> open files (-n) 64000
[els_hosts] # ulimit -Hn 64000
[els_hosts] # ulimit -Sn 64000
[els_hosts] # grep "LS_OPEN_FILES=16384" /etc/logstash/startup.options LS_OPEN_FILES=16384
am i missing something apart from these? I really taken all them the time but couldn't figure it out yet.
OS details: RHEL 7
Logstash version: 6.5.x
My logstash.conf file:
input {
file {
path => [ "/data/rmlogs_SJ/*.txt" ]
start_position => beginning
sincedb_path => "/dev/null"
type => "rmlog"
}
}
filter {
if [type] == "rmlog" {
grok {
match => { "message" => "%{HOSTNAME:Hostname},%{DATE:Date},%{HOUR:dt_h}:%{MINUTE:dt_m},%{NUMBER:duration}-%{WORD:hm},%{USER:User},%{USER:User_1} %{NUMBER:Pid} %{NUMBER:float} %{NUMBER:float} %{NUMBER:Num_1} %{NUMBER:Num_2} %{DATA} (?:%{HOUR:dt_h1}:|)(?:%{MINUTE:dt_m1}|) (?:%{HOUR:dt_h2}:|)(?:%{MINUTE:dt_m2}|)%{GREEDYDATA:CMD},%{GREEDYDATA:PWD_PATH}" }
add_field => [ "received_at", "%{@timestamp}" ]
remove_field => [ "@version", "host", "message", "_type", "_index", "_score" ]
}
}
}
output {
if [type] == "rmlog" {
elasticsearch {
hosts => ["myhost:9200"]
manage_template => false
index => "rmlog-%{+YYYY.MM.dd}"
}
}
}