Exportar els registres dels contenidors de Cyberwatch a un servidor syslog
Aquesta pàgina indica la configuració que cal aplicar per exportar els registres dels serveis de Cyberwatch a un servidor syslog.
En primer lloc, instal·leu i configureu un servidor syslog-ng (o syslog o rsyslog):
Instal·leu syslog-ng:
Per a les distribucions basades en Debian:
sudo apt install syslog-ngPer a les distribucions basades en Red Hat:
yum install syslog-ng
Editeu el fitxer
/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);
};
Aquesta configuració mínima permet connexions syslog TCP des de qualsevol interfície al port 514.
Quan rep els registres, syslog genera automàticament fitxers al directori /var/log/remote/cyberwatch/${PROGRAM}.log i organitza així els registres rebuts per programa. Aquí, la variable ${PROGRAM} permet generar un fitxer diferent per a cada contenidor, cosa que facilita l’organització i l’anàlisi dels registres.
La documentació de syslog detalla moltes possibilitats de configuració, com ara la configuració de TCP+TLS o la restricció de les connexions a una sola IP. També hi trobareu altres opcions avançades per ajustar la configuració segons les vostres necessitats.
Un cop configurat el servidor syslog-ng, reinicieu el servei:
sudo systemctl restart syslog-ng
A continuació, un cop reiniciat el servei, creeu a la instància de Cyberwatch el fitxer /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-application:
<<: *logging
sidekiq:
<<: *logging
sidekiq_node:
<<: *logging
sidekiq_master:
<<: *logging
redis:
<<: *logging
kibana:
<<: *logging
web-scanner:
<<: *logging
db:
<<: *logging
elasticsearch:
<<: *logging
cache:
<<: *logging
Conserveu en aquest fitxer només els serveis desplegats al node, que es poden veure amb l’ordre sudo cyberwatch status. Un servei absent del node, com ara kibana i elasticsearch en un node satèl·lit o quan CBW_DISABLE_ELK=true, impedeix el reinici de Cyberwatch.
L’opció syslog-address conté el protocol, l’adreça IP i el port per connectar-se al servidor syslog configurat en el pas anterior.
La variable tag servirà per anomenar el fitxer creat al servidor syslog. Aquí s’utilitza la variable {{.Name}} per assignar el nom del contenidor, per exemple un nom que comença per cbwonpremise_web-application.1. per al servei web-application.
Un cop fet això, reinicieu Cyberwatch per aplicar els canvis:
sudo cyberwatch restart