Auditbeat isn't loading all config files from conf.d, it appears as if the conf files are stomping over each other according to the auditbeat log where the rule count from file 1 is first added and then later deleted when the next cfg file is loaded.
Setup:
pwd
/etc/auditbeat/conf.d
ls
01-first.yml > 42 auditd rules
99-last.yml > 2 auditd rules
auditbeat log:
2018-05-04T10:43:54.141-0500 DEBUG [modules] beater/metricbeat.go:80 Register [ModuleFactory:[], MetricSetFactory:[auditd/auditd, file_integrity/file]]
2018-05-04T10:43:54.141-0500 DEBUG [cfgfile] cfgfile/reload.go:95 Checking module configs from: /etc/auditbeat/conf.d/*.yml
2018-05-04T10:43:54.141-0500 DEBUG [cfgfile] cfgfile/cfgfile.go:143 Load config from file: /etc/auditbeat/conf.d/01-first.yml
2018-05-04T10:43:54.141-0500 DEBUG [cfgfile] cfgfile/cfgfile.go:143 Load config from file: /etc/auditbeat/conf.d/99-last.yml
2018-05-04T10:43:54.142-0500 DEBUG [cfgfile] cfgfile/reload.go:109 Number of module configs found: 3
2018-05-04T10:43:54.144-0500 INFO [auditd] auditd/audit_linux.go:65 auditd module is running as euid=0 on kernel=3.10.0-693.21.1.el7.x86_64
2018-05-04T10:43:54.195-0500 INFO [auditd] auditd/audit_linux.go:88 socket_type=unicast will be used.
2018-05-04T10:43:54.196-0500 INFO [auditd] auditd/audit_linux.go:65 auditd module is running as euid=0 on kernel=3.10.0-693.21.1.el7.x86_64
2018-05-04T10:43:54.247-0500 INFO [auditd] auditd/audit_linux.go:88 socket_type=unicast will be used.
2018-05-04T10:43:54.247-0500 INFO cfgfile/reload.go:127 Config reloader started
2018-05-04T10:43:54.247-0500 DEBUG [cfgfile] cfgfile/reload.go:151 Scan for new config files
2018-05-04T10:43:54.247-0500 DEBUG [cfgfile] cfgfile/cfgfile.go:143 Load config from file: /etc/auditbeat/conf.d/01-first.yml
2018-05-04T10:43:54.247-0500 DEBUG [cfgfile] cfgfile/cfgfile.go:143 Load config from file: /etc/auditbeat/conf.d/99-last.yml
2018-05-04T10:43:54.248-0500 DEBUG [cfgfile] cfgfile/reload.go:170 Number of module configs found: 3
2018-05-04T10:43:54.248-0500 DEBUG [cfgfile] cfgfile/reload.go:198 Remove module from stoplist: 13250497449215009278
2018-05-04T10:43:54.248-0500 DEBUG [cfgfile] cfgfile/reload.go:203 Add module to startlist: 13250497449215009278
2018-05-04T10:43:54.249-0500 INFO [auditd] auditd/audit_linux.go:65 auditd module is running as euid=0 on kernel=3.10.0-693.21.1.el7.x86_64
2018-05-04T10:43:54.302-0500 INFO [auditd] auditd/audit_linux.go:88 socket_type=unicast will be used.
2018-05-04T10:43:54.302-0500 DEBUG [cfgfile] cfgfile/reload.go:198 Remove module from stoplist: 3196340903787212030
2018-05-04T10:43:54.302-0500 DEBUG [cfgfile] cfgfile/reload.go:203 Add module to startlist: 3196340903787212030
2018-05-04T10:43:54.303-0500 DEBUG [cfgfile] cfgfile/reload.go:198 Remove module from stoplist: 8453206759139377238
2018-05-04T10:43:54.303-0500 DEBUG [cfgfile] cfgfile/reload.go:203 Add module to startlist: 8453206759139377238
2018-05-04T10:43:54.303-0500 INFO [auditd] auditd/audit_linux.go:65 auditd module is running as euid=0 on kernel=3.10.0-693.21.1.el7.x86_64
2018-05-04T10:43:54.354-0500 INFO [auditd] auditd/audit_linux.go:88 socket_type=unicast will be used.
2018-05-04T10:43:54.354-0500 INFO cfgfile/reload.go:258 Starting 3 runners ...
2018-05-04T10:43:54.354-0500 DEBUG [cfgfile] cfgfile/reload.go:265 New runner started: 13250497449215009278
2018-05-04T10:43:54.354-0500 DEBUG [cfgfile] cfgfile/reload.go:265 New runner started: 3196340903787212030
2018-05-04T10:43:54.354-0500 DEBUG [cfgfile] cfgfile/reload.go:265 New runner started: 8453206759139377238
2018-05-04T10:43:54.354-0500 INFO cfgfile/reload.go:219 Loading of config files completed.
2018-05-04T10:43:55.614-0500 INFO [auditd] auditd/audit_linux.go:158 Deleted 2 pre-existing audit rules.
2018-05-04T10:43:55.621-0500 INFO [auditd] auditd/audit_linux.go:171 Successfully added 42 of 42 audit rules.
2018-05-04T10:43:55.621-0500 INFO [auditd] auditd/audit_linux.go:192 audit status from kernel at start {"audit_status": {"Mask":0,"Enabled":1,"Failure":0,"PID":0,"RateLimit":0,"BacklogLimit":8192,"Lost":692,"Backlog":0,"FeatureBitmap":61,"BacklogWaitTime":0}}
2018-05-04T10:43:55.633-0500 INFO [auditd] auditd/audit_linux.go:158 Deleted 2 pre-existing audit rules.
2018-05-04T10:43:55.638-0500 INFO [auditd] auditd/audit_linux.go:171 Successfully added 2 of 2 audit rules.
According to the comments and online docs each file in the /conf.d/ directory should be loaded if it has the right syntax but it seems that you cannot have two cfg files with the same module. Has anyone else been able to get this to work as documented?