Vous pouvez configurer un conteneur complémentaire pour Syslog à exécuter dans le même espace que NCP. La procédure suivante suppose que l'image d'agent Syslog est exemple/rsyslog.
Procédure
- Configurez des agents de nœud NCP et NSX pour vous connecter à un fichier.
Dans le fichier yaml pour les agents de nœud NCP et NSX, définissez le paramètre log_dir et spécifiez le volume à monter. Par exemple,
[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
Vous pouvez modifier le nom du fichier journal en définissant le paramètre log_file. Les noms par défaut sont ncp.log, nsx_node_agent.log et nsx_kube_proxy.log. Si l'option log_dir est définie sur un chemin différent de /var/log/nsx-ujo, un volume hostPath ou un volume emptyDir doit être créé et monté sur la spécification d'espace correspondante.
- Assurez-vous que le chemin d'accès de l'hôte existe et est accessible en écriture par l'utilisateur nsx-ncp.
- Exécutez les commandes suivantes.
mkdir -p <host-filesystem-log-dir-path> chmod +w <host-filesystem-log-dir-path>
- Ajoutez l'utilisateur nsx-ncp ou définissez le mode de chemin d'accès de l'hôte sur 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>
- Exécutez les commandes suivantes.
- Dans le fichier yaml de spécification de l'espace NCP, ajoutez un ConfigMap pour Syslog. Par exemple,
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"
- Dans le fichier yaml de l'espace NCP, ajoutez le conteneur rsyslog et montez les volumes appropriés, où rsyslog peut trouver les données de configuration et lire les journaux d'autres conteneurs. Par exemple,
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>