Auditing & Monitoring — Cheatsheet
Logging, lokale monitoring, Zabbix en SNMP — 2024–2025
Inhoudstafel
- Monitoring en auditing
- Meetstrategie
- Linux-monitoring
- Windows-monitoring en auditing
- Logging
- Zabbix-architectuur
- Hosts, items en preprocessing
- Triggers, events en acties
- Templates en visualisatie
- SNMP
- Web- en logmonitoring
Monitoring en auditing
| Begrip | Doel |
|---|---|
| Monitoring | toestand en prestaties opvolgen |
| Logging | gebeurtenissen chronologisch registreren |
| Auditing | aantonen wie wat wanneer deed |
| Alerting | reageren wanneer een conditie optreedt |
| Observability | gedrag verklaren vanuit metrics, logs en traces |
Monitoring beantwoordt vooral wat gebeurt er nu?; auditing ondersteunt wie deed wat en was dit toegestaan?. Een metric zonder context of actiegrens is zelden bruikbaar.
Goede monitoringcyclus
Monitor wat gebruikers raakt
Een draaiend proces is geen bewijs dat de dienst werkt. Combineer resource-, service- en end-to-endcontroles.
Meetstrategie
| Type | Voorbeelden |
|---|---|
| Availability | ping, poort, HTTP-respons, processtatus |
| Performance | CPU, RAM, latency, throughput, queue length |
| Capacity | vrije schijf, databasegroei, interfacesnelheid |
| Correctness | statuscode, inhoudscontrole, checksums |
| Security | mislukte logins, privilege changes, configwijziging |
- Maak eerst een baseline van normaal gedrag.
- Kies interval volgens veranderingssnelheid en risico.
- Vermijd alert fatigue: elke alert moet een eigenaar en handelingsperspectief hebben.
- Denk aan false positives én false negatives.
- Houd rekening met retentie, privacy, opslag en tijdsynchronisatie.
Linux-monitoring
uptime
top
free -h
df -hT
du -sh /var/*
lsblk
ip -s link
ss -tulpn
ps aux --sort=-%cpu | head
systemctl --failed
| Signaal | Interpretatie |
|---|---|
| load average | runnable/uninterruptible taken; vergelijk met CPU-count |
%wa |
CPU wacht op I/O |
| available memory | bruikbaarder dan alleen free |
| swap in/out | druk op geheugen, niet alleen toegewezen swap |
| filesystem usage | capaciteit én inodegebruik controleren |
Windows-monitoring en auditing
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
Get-Service | Where-Object Status -ne Running
Get-Counter '\Processor(_Total)\% Processor Time'
Get-Volume
Get-NetAdapterStatistics
Belangrijke hulpmiddelen: Task Manager, Resource Monitor, Performance Monitor, Event Viewer en PowerShell.
Event logs
| Log | Inhoud |
|---|---|
| Application | applicaties en services |
| System | drivers en Windows-componenten |
| Security | audit events |
| Setup | installatie/configuratie |
Get-WinEvent -LogName System -MaxEvents 50
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625; StartTime=(Get-Date).AddHours(-24)}
Audit policy bepaalt welke success/failure-events worden vastgelegd. Zonder beleid bestaat achteraf geen bewijs; te brede auditing veroorzaakt ruis en opslagdruk.
Logging
Een bruikbaar logrecord bevat timestamp met timezone, bron/host, severity, event-ID/type, identiteit, actie, resultaat en correlatie-ID.
Syslog-severity loopt van 0 Emergency tot 7 Debug; een lager nummer is ernstiger.
| Niveau | Betekenis |
|---|---|
| 0–2 | emergency, alert, critical |
| 3–4 | error, warning |
| 5–6 | notice, informational |
| 7 | debug |
Centraliseer logs zodat een aanvaller ze niet eenvoudig op de bron kan wissen. Gebruik NTP, transportbeveiliging, toegangscontrole, rotatie en retentie.
Geheimen
Log geen wachtwoorden, tokens, private sleutels of onnodige persoonsgegevens.
Zabbix-architectuur
| Component | Functie |
|---|---|
| Server | polling, trapping, evaluatie en acties |
| Agent | OS- en applicatiemetrics op host |
| Proxy | verzamelt voor remote sites en buffert |
| Database | configuratie, history en trends |
| Frontend | configuratie, visualisatie en beheer |
Agent passive: server vraagt data. Agent active: agent vraagt itemlijst en stuurt waarden. Active checks werken vaak beter achter NAT/firewall.
Hosts, items en preprocessing
Een host heeft naam, zichtbare naam, groepen, interface(s), templates en macro's. De hostname moet bij active agent checks exact overeenkomen.
Een item definieert:
- type (agent, SNMP, trapper, simple check, HTTP agent...);
- key/OID/URL;
- datatype en eenheid;
- update interval en history/trendretentie;
- preprocessing en tags.
Voorbeelden van agent keys:
Preprocessing kan JSONPath, regex, multiplier, delta per second, trimming en discard unchanged toepassen. Test preprocessing met echte input.
Triggers, events en acties
Een trigger evalueert itemhistory en krijgt een severity. Conceptueel:
Gebruik hysterese om flapping te vermijden: laat problem en recovery niet op exact dezelfde grens schakelen.
Acties bestaan uit conditions, operations en recovery/update operations. Media types bepalen kanaal (mail, webhook...); een user moet media, actieve periode en passende severity hebben.
Test de volledige keten
Een correcte trigger garandeert geen melding. Test event, action conditions, user permissions, media en aflevering.
Templates en visualisatie
Templates bundelen items, triggers, graphs, discovery rules, dashboards en macro's. Link hetzelfde template aan meerdere hosts en override verschillen met user macros zoals {$CPU.WARN}.
- Low-level discovery maakt automatisch items/triggers voor filesystems of interfaces.
- Graphs tonen tijdreeksen; dashboards combineren widgets.
- Maps tonen afhankelijkheden en status; gebruik ze voor operationeel overzicht, niet als statische decoratie.
Een trigger dependency voorkomt vervolgmeldingen: als router down is, hoeven alle onbereikbare hosts erachter niet afzonderlijk te alarmeren.
SNMP
| Term | Betekenis |
|---|---|
| Manager/NMS | vraagt en ontvangt data |
| Agent | draait op gemonitord apparaat |
| MIB | semantische beschrijving van objecten |
| OID | numerieke objectidentifier |
| GET/GETNEXT/GETBULK | data ophalen |
| SET | waarde wijzigen |
| Trap/Inform | agent stuurt gebeurtenis |
| Versie | Beveiliging |
|---|---|
| v1 | community string, geen echte beveiliging |
| v2c | efficiënter/GETBULK, nog community string |
| v3 | gebruikers, authenticatie en privacy/encryptie |
Gebruik waar mogelijk SNMPv3 authPriv, beperk bron-IP's en geef read-only toegang.
ifIndex kan na reboot/configwijziging veranderen; discovery en interface-identificatie op stabiele kenmerken voorkomen verkeerde grafieken.
Web- en logmonitoring
Een webscenario bestaat uit stappen met URL, methode, headers/body, verwachte status, contentcheck en timeout. Controleer bij HTTPS ook certificaatgeldigheid en vervaldatum.
Logitems moeten nieuw toegevoegde regels volgen, niet telkens het volledige bestand herlezen. Gebruik logrotatiebewuste keys en gerichte regex.
beschikbaarheid: HTTP 200
correctheid: pagina bevat verwacht kenmerk
performance: response time onder grens
security: TLS-certificaat geldig en niet bijna verlopen
Diagnosevolgorde Zabbix
- Is host/interface bereikbaar vanaf server/proxy?
- Kloppen agent/SNMP credentials en firewall?
- Wordt item supported en komt recente data binnen?
- Kloppen datatype, preprocessing en interval?
- Evalueert trigger zoals verwacht?
- Matcht de action en kan het media type leveren?