Esportare i log dei container Cyberwatch verso un server syslog
Questa pagina indica la configurazione da applicare per esportare i log dei servizi Cyberwatch verso un server syslog.
Come prima cosa, installare e configurare un server syslog-ng (oppure syslog o rsyslog):
Installare syslog-ng:
Per le distribuzioni basate su Debian:
sudo apt install syslog-ngPer le distribuzioni basate su Red Hat:
yum install syslog-ng
Modificare il file
/etc/syslog-ng/syslog-ng.conf:
@version:3.38
@include "scl.conf"
options {flush_lines (0); keep_hostname (yes);};
source s_network {
tcp( ip(0.0.0.0) port(514) );
};
destination d_remote {
file("/var/log/remote/cyberwatch/${PROGRAM}.log" owner(root) group(root) perm(0644) dir_perm(0755) create_dirs(yes));
};
log {
source(s_network);
destination(d_remote);
};
Questa configurazione minima consente connessioni syslog TCP da qualsiasi interfaccia sulla porta 514.
Alla ricezione dei log, syslog genera automaticamente dei file nella directory /var/log/remote/cyberwatch/${PROGRAM}.log, organizzando così i log ricevuti per programma. In questo caso, la variabile ${PROGRAM} consente di generare un file distinto per ogni container, semplificando l’organizzazione e l’analisi dei log.
La documentazione di syslog descrive in dettaglio numerose possibilità di configurazione, in particolare l’impostazione di TCP+TLS o la limitazione delle connessioni a un solo IP. Sono inoltre disponibili altre opzioni avanzate per perfezionare la configurazione in base alle proprie esigenze.
Una volta configurato il server syslog-ng, riavviare il servizio:
sudo systemctl restart syslog-ng
Successivamente, dopo aver riavviato il servizio, creare sull’istanza Cyberwatch il file /etc/cyberwatch/configs-enabled/99-custom-log.yml:
x-logging: &logging
logging:
driver: "syslog"
options:
syslog-address: "tcp://10.3.0.10:514"
tag: "{{.Name}}"
services:
nginx:
<<: *logging
web:
<<: *logging
sidekiq:
<<: *logging
sidekiq_node:
<<: *logging
sidekiq_master:
<<: *logging
redis:
<<: *logging
kibana:
<<: *logging
web-scanner:
<<: *logging
db:
<<: *logging
elasticsearch:
<<: *logging
cache:
<<: *logging
L’opzione syslog-address contiene il protocollo, l’indirizzo IP e la porta per connettersi al server syslog configurato nel passaggio precedente.
La variabile tag serve a denominare il file creato sul server syslog. In questo caso, si utilizza la variabile {{.Name}} per assegnare il nome del container.
Al termine, riavviare Cyberwatch per applicare le modifiche:
sudo cyberwatch restart