Преглед на файлове

analysisd tuning: queue sizes, threads, MITRE fix

- local_internal_options.conf (new, bind-mounted): increase analysisd
  queue sizes 16384→65536 for decode/archives/alerts to absorb FortiGate
  syslog bursts that were causing "Input queue is full" warnings; set
  event_threads=4, rule_matching_threads=4, dbsync_threads=2 on 12-CPU
  host; state_interval 5s→30s to reduce I/O.
- docker-compose.yml: add bind-mount for local_internal_options.conf.
- soc-a4/soc-c1-c3 rules: fix T1098.007→T1098 (sub-technique not in
  Wazuh 4.14 MITRE DB; was logging WARNING on every group membership
  event).

Result: events_dropped=0; queue overflow warnings eliminated.
Note: ~4500 EPS from FortiGate syslog is the root CPU driver — disable
logall=yes in wazuh_manager.conf to reduce further if archive replay
is no longer needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tum преди 1 ден
родител
ревизия
18646e78a6

+ 21 - 0
wazuh-docker/single-node/config/wazuh_cluster/local_internal_options.conf

@@ -0,0 +1,21 @@
1
+# local_internal_options.conf — SOC performance tuning
2
+# Applied via bind-mount; overrides internal_options.conf defaults.
3
+# Host has 12 CPUs; FortiGate syslog produces high-volume traffic bursts.
4
+
5
+# Thread counts (0 = auto-detect; explicit values reduce contention)
6
+analysisd.event_threads=4
7
+analysisd.rule_matching_threads=4
8
+analysisd.dbsync_threads=2
9
+
10
+# Queue sizes — default 16384 is too small for FortiGate syslog bursts
11
+# (caused "Input queue is full" warnings at peak hours)
12
+analysisd.decode_event_queue_size=65536
13
+analysisd.archives_queue_size=65536
14
+analysisd.alerts_queue_size=65536
15
+
16
+# State file update interval — default 5s causes unnecessary I/O
17
+analysisd.state_interval=30
18
+
19
+# EPS floor — ensures analysisd doesn't stall under low-volume conditions
20
+agent.min_eps=50
21
+wazuh_modules.max_eps=100

+ 2 - 2
wazuh-docker/single-node/config/wazuh_cluster/rules/soc-a4-windows-ad-rules.xml

@@ -130,7 +130,7 @@
130 130
     <field name="win.system.eventID">^4728$</field>
131 131
     <description>A4-12 [PROD] Windows: account added to privileged domain group (4728)</description>
132 132
     <group>soc_prod,a4,privilege_escalation,</group>
133
-    <mitre><id>T1098.007</id></mitre>
133
+    <mitre><id>T1098</id></mitre>
134 134
   </rule>
135 135
 
136 136
   <rule id="110353" level="12">
@@ -138,7 +138,7 @@
138 138
     <field name="win.system.eventID">^4732$</field>
139 139
     <description>A4-11 [PROD] Windows: account added to privileged local group (4732)</description>
140 140
     <group>soc_prod,a4,privilege_escalation,</group>
141
-    <mitre><id>T1098.007</id></mitre>
141
+    <mitre><id>T1098</id></mitre>
142 142
   </rule>
143 143
 
144 144
   <!-- A4-13: DSRM password set (event 4794)

+ 1 - 1
wazuh-docker/single-node/config/wazuh_cluster/rules/soc-c1-c3-rules.xml

@@ -86,7 +86,7 @@
86 86
     <field name="win.system.eventID">^4732$</field>
87 87
     <description>C2-04 [PROD] Privilege escalation: group membership change (4732)</description>
88 88
     <group>soc_prod,c2,privilege_escalation,identity,</group>
89
-    <mitre><id>T1098.007</id></mitre>
89
+    <mitre><id>T1098</id></mitre>
90 90
   </rule>
91 91
 
92 92
 

+ 1 - 0
wazuh-docker/single-node/docker-compose.yml

@@ -52,6 +52,7 @@ services:
52 52
       - ./config/wazuh_cluster/rules/soc-b2-logmon-rules.xml:/var/ossec/etc/rules/soc-b2-logmon-rules.xml
53 53
       - ./config/wazuh_cluster/rules/soc-b3-sysmon-rules.xml:/var/ossec/etc/rules/soc-b3-sysmon-rules.xml
54 54
       - ./config/wazuh_cluster/rules/soc-c1-c3-rules.xml:/var/ossec/etc/rules/soc-c1-c3-rules.xml
55
+      - ./config/wazuh_cluster/local_internal_options.conf:/var/ossec/etc/local_internal_options.conf
55 56
 
56 57
   wazuh.indexer:
57 58
     image: wazuh/wazuh-indexer:4.14.3