Puede configurar un contenedor sidecar para syslog si desea ejecutarlo en el mismo pod que NCP. El siguiente procedimiento asume que la imagen del agente syslog es ejemplo/rsyslog.
Procedimiento
- Configure el agente del nodo de NSX y de NCP para registrarlo en un archivo.
En el archivo yaml para el agente del nodo de NSX y de NCP, establezca el parámetro log_dir y especificar el volumen que se montará. Por ejemplo,
[DEFAULT] log_dir = /var/log/nsx-ujo/ ... spec: ... containers: - name: nsx-ncp ... volumeMounts: - name: nsx-ujo-log-dir # Mount path must match [DEFAULT] option "log_dir" mountPath: /var/log/nsx-ujo volumes: ... - name: nsx-ujo-log-dir hostPath: path: /var/log/nsx-ujo
Puede cambiar el nombre del archivo de registro estableciendo el parámetro log_file. Los nombres predeterminados son ncp.log, nsx_node_agent.log y nsx_kube_proxy.log. Si la opción log_dir se establece en una ruta de acceso que no sea /var/log/nsx-ujo, se debe crear un volumen hostPath o emptyDir y se debe montar en la especificación del pod correspondiente.
- Asegúrese de que la ruta de acceso de host existe y que el usuario nsx-ncp puede escribir en ella.
- Ejecute los siguientes comandos.
mkdir -p <host-filesystem-log-dir-path> chmod +w <host-filesystem-log-dir-path>
- Agregue el usuario nsx-ncp o cambie el modo de la ruta de acceso de host a 777.
useradd -s /bin/bash nsx-ncp chown nsx-ncp:nsx-ncp <host-filesystem-log-dir-path> or chmod 777 <host-filesystem-log-dir-path>
- Ejecute los siguientes comandos.
- En el archivo yaml de la especificación del pod de NCP, agregue ConfigMap para syslog. Por ejemplo,
kind: ConfigMap metadata: name: rsyslog-config labels: version: v1 data: ncp.conf: | module(load="imfile") ruleset(name="remote") { action(type="omfwd" Protocol="tcp" Target="nsx.example.com" Port="514") stop } input(type="imfile" File="/var/log/nsx-ujo/ncp.log" Tag="ncp" Ruleset="remote"
- En el archivo yaml del pod de NCP, agregue el contenedor rsyslog y monte los volúmenes apropiados donde rsyslog pueda encontrar los datos de configuración y leer los registros de otros contenedores. Por ejemplo,
spec: containers: - name: nsx-ncp ... - name: rsyslog image: example/rsyslog imagePullPolicy: IfNotPresent volumeMounts: - name: rsyslog-config-volume mountPath: /etc/rsyslog.d readOnly: true - name: nsx-ujo-log-dir mountPath: /var/log/nsx-ujo volumes: ... - name: rsyslog-config-volume configMap: name: rsyslog-config - name: nsx-ujo-log-dir hostPath: path: <host-filesystem-log-dir-path>