Accueil > vCLog > vCenter Log Insight: configuration des sources de données
Août/1310

Une fois l’appliance vCenter Log Insight mise en place (comme expliqué dans le précédent article), il est temps de voir comment configurer les sources de données pour qu’elles envoient vers vCLog.

 

Configuration des ESXi

Il existe des KB de référence pour la configuration Syslog sur ESX (KB1005030), ESXi 5.x (KB2003322) et ESXi 3.5/4.x (KB1016621).
Mais il y a plus simple: utiliser le script « configure-esxi » installer dans l’appliance. Le script nécessite un compte admin du vCenter pour configurer les hôtes ESXi. Voici quelques remarques sur l’utilisation du script:

  • configuration seulement des ESXi connectés à un vCenter
  • compatible seulement avec ESXi 4.x et supérieur
  • utilisation seulement des ports standard pour syslog
  • mettre entre guillemets le compte utilisateur et/ou le mot de passe, s’ils contiennent des caractères spéciaux
  • les hôtes ESXi 4.x ne supportent qu’une seule destination distante pour syslog (utiliser le paramètre « force » pour remplacer).

Pour utiliser le script, se connecter en ssh sur l’appliance vCLog, en commencer par « configure-esxi –help » pour avoir le détail des paramètres. Voici quelques exemples d’utilisation:
Avoir la config syslog de tous les hôtes d’un vCenter

configure-esxi -u admin -s vcenter -q

Configurer syslog en tcp à destination de LogInsight pour tous les hôtes

configure-esxi -u admin -s vcenter -t udp://vclog.exemple.com

Configurer syslog à destination de LogInsight seulement pour un hôte

configure-esxi -u admin -s vcenter -t vclog.exemple.com -h esxi2.exemple.com

Nb: sur certains hôtes ESXi, il peut être utile de faire un reload (cf. KB2003127)

 

Configuration vCenter

Nb: L’intégration vCenter faite lors de l’assistant de configuration à la première connexion ne fait que collecter les tâches, les événements et les alarmes. La collecte des logs du vCenter passe bien par un Syslog.

configuration pour vCSA

L’appliance Linux de vCenter (vCSA) a un Syslog-NG d’installé par défaut. Dé-commenter/ajouter les sections souhaitées dans le fichier « /etc/syslog-ng/syslog-ng.conf » comme ci-dessous:

source vpxd {
    file("/var/log/vmware/vpx/vpxd.log" follow_freq(1) flags(no-parse));
    file("/var/log/vmware/vpx/vpxd-alert.log" follow_freq(1) flags(no-parse));
    file("/var/log/vmware/vpx/vws.log" follow_freq(1) flags(no-parse));
    file("/var/log/vmware/vpx/vmware-vpxd.log" follow_freq(1) flags(no-parse));
    file("/var/log/vmware/vpx/inventoryservice/ds.log" follow_freq(1) flags(no-parse));
    file("/var/log/vmware/vami/vami.log" follow_freq(1) flags(no-parse));
    file("/var/log/vmware/netdumper/netdumper.log" follow_freq(1) flags(no-parse));
    file("/var/log/vmware/vsphere-client/logs/vsphere_client_virgo.log" follow_freq(1) flags(no-parse));
};
destination logserver { tcp("vclog.exemple.com" port (514)); };
log { source(vpxd); destination(logserver); };

Puis redémarrer le service syslog avec la commande « service syslog restart« .

Configuration pour (Windows) vCenter Server

Pour vCenter à base Windows, il faut installer un agent Syslog afin d’envoyer les logs à vCLog, comme par exemple Cygwin, Datagram ou Snare/Epilog.
Voici la procédure avec Datagram SyslogAgent (la version gratuite ne fonctionne qu’en UDP):

  • Lancer l’installation « SyslogAgentConfig.exe » en tant qu’administrateur.
  • Renseigner l’adresse IP de vCLog avec le port 514 et sélectionner le mode « UDP transport« 
  • Il n’est pas nécessaire de coche la case « Enable forwarding of event logs » sauf si vous souhaiter envoyer des logs propres à Windows
  • Cliquer sur le bouton « Install » au niveau du « Service Status« 
  •  Cliquer sur « Edit Application« 
  • Renseigner le nom de l’application « vCenter« 
  • Sélectionner le mode « Timestamp files« , indiquer le répertoire « C:\ProgramData\VMware\VMware VirtualCenter\Logs » et l’extension de fichier « log« 
  • Il doit vous proposer de scanner le répertoire pour savoir s’il voit les fichiers, si ce n’est pas le cas cliquer sur « Suggest Settings« . Valider le test avec « OK« .
  • Normalement, les cases « Parse Date/time » et « Parse process name » sont cochées et pas les autres.
  • Cliquer sur « OK » pour valider la configuration Application
  • Si besoin, répéter l’opération pour les logs VUM, SSO ou autres.
  • Cocher la case « Enable forwarding of app logs« 
  • Démarrer ou redémarrer le service en cliquant sur « Start Service« 
  • Fermer la fenêtre de configuration en cliquant sur « Close« 
  • Si nécessaire, n’oublier pas d’autoriser le port 514/UDP sortant sur le Firewall Windows.

Nb : Voici les procédures utilisant Snare/Epilog (sur Hypervisor.fr) ou Cygwin (sur VirtuallyGhetto)

 

Configuration pour les produits VMware

produits VMware à base Windows

Les emplacements de fichiers de Logs des produits VMware sont renseignés dans la KB1021806.
Pour la configuration, utiliser la même procédure que pour vCenter. Et voici la liste des emplacements des logs pour les produits VMware à base Windows:

Produit Répertoire des logs extensions
vCenter Web Services C:\Program Files\VMware\Infrastructure\tomcat\logs\ .log
vSphere Web Client C:\ProgramData\VMware\vSphere Web Client\serviceability\logs\ .log
Single Sign On Server C:\Program Files\VMware\Infrastructure\SSOServer\utils\logs\
C:\Program Files\VMware\Infrastructure\SSOServer\logs\
.log
vSphere Update Manager C:\ProgramData\VMware\VMware Update Manager\Logs\ .log
vSphere ESXi Dump Collector C:\ProgramData\VMware\VMware ESXi Dump Collector\logs\ .log
Site Recovery Manager C:\ProgramData\VMware\VMware vCenter Site Recovery Manager\Logs\ .log
SRA C:\Program Files\VMware\VMware vCenter Site Recovery Manager\scripts\SAN\<SRA_Vendor>\Log\ .log
VSA Manager C:\ProgramData\VMware\VSA Manager\logs\ .log
View Connection Server
View Transfer Server
View Security Server
C:\ProgramData\VMware\VDM\logs\ .txt
View Composer C:\ProgramData\VMware\View Composer\Logs\ .log
vCloud Automation Center C:\Program Files (x86)\VMware\vCAC\Server\Logs\
C:\Program Files (x86)\VMware\vCAC\Distributed Execution Manager\DEMWorker\Logs\
C:\Program Files (x86)\VMware\vCAC\Distributed Execution Manager\DEMOrch\Logs \
.log

Configuration pour vCNS & vShield

Pour certains produits comme vCNS, la configuration Syslog se fait directement depuis le vSphere Client (explication en détail sur le blog vSphere). Par défaut, ils transmettront le logs sur le port 514/udp.

Pour le vShield Manager

Dans l’interface admin, aller dans la partie « Settings & Reports > Configuration > General« . Dans la partie « Syslog Server« , renseigner l’IP ou le nom de vCLog (pas besoin de préciser le port).

Pour les vShield App firewall

Dans le vSphere Client, se positionner sur un hôte ESXi, aller dans l’onglet « vShield > General« . Dans la partie « Syslog Server« , renseigner l’IP de vCLog et préciser le niveau de log désiré.
Le logging du firewall est défini individuellement pour chaque règle, il faut donc pour chaque règle définir l’option « Log » à « Log« .

Pour les vShield Edge Gateway

Dans le vSphere Client, se positionner sur un hôte ESXi, aller dans l’onglet « Network Virtualization > Edges > Settings« . Dans la partie « Details« , cliquer sur « Change » en face de « Syslog servers » et renseigner l’IP ou nom de vCLog. Et pour le log du service DNS, toujours dans le même onglet, mais dans la partie « DNS Configuration« , cliquer sur « Change » et cocher la case « Enable Logging« .
Pour les services VPN et DHCP, aller dans les onglets « Network Virtualization > Edges > VPN » et « Network Virtualization > Edges > DHCP« ; cocher la case « Enable logging » et choisir de logging désiré.
Comme pour vShield App, Le log du Firewall et du NAT sont défini individuellement pour chaque règle. Il faut donc aller dans les onglets « Network Virtualization > Edges > Firewall » et pour chaque règle définir l’option « Log« . Alors que pour les autres services, il faut aller dans les onglets « Network Virtualization > Edges > NAT » et « Network Virtualization > Edges > Load Balancer« , et pour chaque règle cocher la case « Enable Logging« .

Mais, il est aussi possible de le faire depuis l’interface Admin de vCD (comme expliqué sur VirtualClouds.co.za) du moins pour les Edge devices.

produits VMware à base Linux et Appliance Virtuelle

Voici la liste des emplacements des logs pour les produits VMware à base Linux et en Virtual Appliance qui n’ont pas de support natif de Syslog dans l’interface Admin:

Virtual Appliance / Produit Fichiers de log
vSphere Data Protection /space/avamar/var/log/av_boot.rb.log
/space/avamar/var/log/dpnctl.log
/space/avamar/var/log/dpnnetutil-av_boot.log
/usr/local/avamar/var/log/dpnctl.log
/usr/local/avamar/var/log/av_boot.rb.log
/usr/local/avamar/var/log/av_boot.rb.err.log
/usr/local/avamar/var/log/dpnnetutil-av_boot.log
/usr/local/avamar/var/avi/server_log/flush.log
/usr/local/avamar/var/avi/server_log/avinstaller.log.0
/usr/local/avamar/var/mc/server_log/mcserver.log.
/usr/local/avamar/var/vdr/server_logs/vdr-server.log
/usr/local/avamar/var/vdr/server_logs/vdr-configure.log
/usr/local/avamar/var/flr/server_logs/flr-server.log
/usr/local/avamarclient/var-proxy-?/*vmimage[lw]_avtar.log
/usr/local/avamarclient/var-proxy-?/*vmimage[lw].log
/usr/local/avamarclient/var-proxy-?/avagent*.log
/data01/cur/err.log/data01/cur/gsan.log*
/usr/local/avamarclient/bin/logs/VmMgr.log
/usr/local/avamarclient/bin/logs/MountMgr.log
/usr/local/avamarclient/bin/logs/VmwareFlrWS.log
/usr/local/avamarclient/bin/logs/VmwareFlr.log
/data01/cur/err.log
vSphere Replication /var/log/vmware/hbrsrv.log
vSphere Management Assistance /var/log/vmware/vma/vifpd.log
vSphere Infrastructure Nanvigator /var/log/vadm/system.log
/var/log/vadm/engine.log
/var/log/vadm/activecollector.log
/var/log/vadm/dbconfig.log
/var/log/vadm/db/postgresql.log
vCenter Orchestrator /opt/vmo/app-server/server/vmo/log/boot.log
/opt/vmo/app-server/server/vmo/log/console.log
/opt/vmo/app-server/server/vmo/log/server.log
/opt/vmo/app-server/server/vmo/log/script-logs.log
/opt/vmo/configuration/jetty/logs/jetty.log
vCenter Operations UI VM /var/log/vmware/admin.cmd.log
/var/log/vmware/admin.log
/var/log/vmware/ciq-firstboot.log
/var/log/vmware/ciq.log
/var/log/vmware/diskadd.log
/var/log/vmware/lastupdate.log
/var/log/vmware/mod_jk.log
/var/log/vmware/vcops-admin.cmd.log
/var/log/vmware/vcops-admin.log
/var/log/vmware/vcops-firstboot.log
/var/log/vmware/vcops-subsequentboot.log
/var/log/vmware/vcops-watch.log
vCenter Operations Analytics VM /var/log/vmware/diskadd.log
/var/log/vmware/vcops-admin.cmd.log
/var/log/vmware/vcops-admin.log
/var/log/vmware/vcops-firstboot.log
/var/log/vmware/vcops-watch.log
vCloud Director /opt/vmware/vcloud-director/logs/vcloud-container-debug.log
/opt/vmware/vcloud-director/logs/vcloud-container-info.log
/opt/vmware/vcloud-director/logs/jmx.log
vCloud Connector Server /opt/vmware/hcagent/logs/hcs.log
vCloud Connector Node /opt/vmware/hcagent/logs/hca.log

 

Configuration pour les OS Linux

La configuration Syslog d’une machine Linux est plus simple et déjà intégrée. Même si cela ne relève pas de VMware et/ou de vCLog, voici comme un peu d’explications.

avec Rsyslog

L’agent Syslog, par défaut, collecte localement les logs. Pour envoyer vers une destination distante, il faut configurer l’envol (forwarding). Pour en envoyer des messages à un serveur distant en Rsyslog, la configuration est très simple (plus de détail ici: Sending messages to a remote Syslog Server):
en UDP <quoiEnvoyer> @server.exemple.com:port
en TCP <quoiEnvoyer> @@server.exemple.com:port
exemple, tout envoyer en TCP à vCLog:

*.* @@vclog.domain.com:514

L’agent syslog regarde dans les emplacements communs pour les fichiers de log, si l’on souhaite surveiller des fichiers non-communs pour des logs, il faut configurer l’agent pour cela (plus de détail ici: Rsyslog>Text File Input Model).
Voici un exemple de configuration (lecture du fichier file1 toutes les 10 sec):

module(load="imfile" PollingInterval="10") #a mettre que pour le premier fichier
input(type="imfile" File="/path/to/file1"
   Tag="tag1"
   StateFile="/var/spool/rsyslog/statefile1"
   Severity="error"
   Facility="local7"
)

Il peut arriver que plusieurs applications écrivent des messages similaires. Pour les reconnaitre, il peut être utile d’ajouter un tag dans les messages. Les tags sont dans ce cas à définir par l’utilisateur. Voici un exemple de redéfinition de la syntaxe des messages:

template(name="FileFormat" type"string" string="%TIMESTAMP% %HOSTNAME% %syslogtag% %msg%\n")
avec Syslog-NG

En Linux, il est possible de le faire aussi en Syslog-NG, comme expliqué plus haut pour vCSA.
Comme Rsyslog, on peut surveiller un fichier, en utilisant le paramètre « source« , voir cet article pour plus de détail: reading logs from a file in Syslog-NG
Et pour ajouter un tag, on peut ajouter la fonction « log-prefix » ou « program_override » dans la source, ou définir un template dans la « destination ». Voici 3 exemples ici:

source s_file { file("/path/to/app.log" flags(no-parse) log_prefix("APP: "); };
source s_file { file("/path/to/app.log" flags(no-parse) program_override("APP: "); };
destination logserver { template("$ISODATE $TAG $FULLHOST $MSG\n") tcp("vclog.exemple.com" port (514)); };

Voici quelques sources et exemples intéressant sur la configuration de sources pour vCLog:

Cet article fait parti d’une série sur vCLogInsight, voici les articles composants ce sujet: