Syslog

De BlaxWiki
Aller à la navigationAller à la recherche

[Syslog.pdf]

Chaque ligne est de la forme : Service.Priorité Destination

Service (ou facility) correspond au type de programme (Démon, Noyau,...) et doit être l’un de ces mots-clés : auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security (identique à auth).

auth ou security  	Messages de sécurité et d'authentification.
authpriv 	        La même chose que précédemment, mais logs plus privés 
cron 	                Messages de crontab et de at
daemon 	                Messages systémes générés par le daemon
ftp 	                Messages du serveur ftp
kern 	                Messages du noyau
lpr 	                Messages du serveur d'impression
mail 	                Messages du serveur de messagerie
news 	                Messages du serveur de news
syslog 	                Messages de syslog lui-même
user 	                Messages générés par le programme en cours d'un utilisateur
uucp 	                Messages UUCP
+ 8 autres, de LOCAL0 à LOCAL7, peuvent être personnalisés et utilisés par d'autre daemons, non standards. 


Priorité représente le niveau de gravité du message et doit être l’un de ces mots clés : debug, info, notice, warning, warn (identique à warning), err, error (identique à err), crit, alert, emerg, panic (identique à emerg). ATTENTION : En indiquant un niveau, syslog enverra les messages de ce niveau et tous les messages des niveaux plus importants. Donc en mettant « debug », syslog enverra tous les messages (de debug à panic). Puis la liste de sévérité, classée de la moins grave à la plus grave. Tous les messages de sévérité plus graves sont inclus, ainsi si vous choisissez sévérité err, vous avez aussi les messages crit, alert, et emerg.

7 	debug 	Messages de debogage
6 	info 	Messages d'information
5 	notice 	Messages un peu plus importants que les messages info
4 	warning ou warn 	Messages d'avertissement
3 	err 	Messages d'erreur
2 	crit 	Situation critique
1 	alert 	Situation critique nécessitant une intervention immédiate
0 	emerg ou panic 	Système inutilisable
Le signe ";" pour séparer plusieurs Services .
Il est possible de mettre plusieurs services pour une même destination en utilisant le «  ; » :
Service1.Priorité1; Service2.Priorité2     Destination
Le signe « , » pour plusieurs « Services » avec une même « Priorité ».''' Il est possible d’indiquer plusieurs « Services » pour le même niveau de « Priorité » avec le signe « , ». 
La ligne suivante envoie dans le fichier « mail_news » les messages en provenance des « Services » « mail » et « new » dont la « Priorité » est supérieure ou égale à « info ». :
mail,news.info  /var/log/mail_news
Le signe « = » pour ne traiter que la « Priorité » indiquée. Il est possible de n’envoyer que les messages d’une seule « Priorité » (sans les « Priorités » de niveaux supérieures) 
avec le singe « = ». Exemple :
mail.=err  /var/log/mail.err

Le signe « * » pour traiter toutes les « Services ». La commande suivante permet d’envoyer les messages d’erreurs de toutes les « Services » dans le fichier « error »

  • .error /var/log/error

Le signe « * » pour traiter toutes les « Priorités ». Le signe « * » permet d’indiquer que l’on souhaite toutes les « Priorités » (Le résultat est le même qu’en mettant « debug », mais c’est plus lisible). Exemple :

mail.* /var/log/mail

Le signe « * » pour envoyer des messages sur toutes les consoles ouvertes. La ligne suivante, permet d’envoyer tous les messages d’erreurs sur toutes les consoles ouvertes grâce au signe « * » placé en destination à la fin de la ligne :

  • .alert *

Le signe «  ! » pour exclure les niveaux supérieurs ou égaux à la « Priorité » indiquée. Le signe «  ! » permet d’indiquer que l’on souhaite exclure le niveaux indiqué et tous les niveaux supérieurs à celui indiqué. La ligne suivante, permet d’envoyer dans le fichier « mail » tous les messages sauf ceux supérieurs ou égaux à la « Priorité » « warn » :

mail.*;mail.!warn /var/log/mail

La ligne suivante permet d’envoyer dans le fichier « mail » tous les messages supérieurs ou égaux à la « Priorité » « notice » et inférieure à la « Priorité » « crit » :

mail.notice;mail.!crit /var/log/mail

Le signe « - » pour améliorer les performances en écriture. Le signe « - » est utilisé devant les chemins de fichiers les moins critiques pour améliorer les performances en écriture au risque de perdre des données en cas de crash du système (pas de synchronisation des fichiers). Cette ligne enregistre tous les messages de la « Service » « mail » dans le fichier «  mail » :

mail.* -/var/log/mail

Le signe « \ » pour écrire une instruction sur plusieurs lignes. La commande suivante écrite sur deux lignes grâce au signe « \ », permet d’envoyer tous les messages de mails ou de news dans le fichier « mail_news » : mail.*;\ news.* /var/log/mail_news

Envoyer les logs dans une console. La ligne suivante permet d’envoyer tous les logs dans la console « tty8 » (CTRL+ALT+F8) :

  • .* /dev/tty8


Tags


# Définit le nom d'un template pour mettre les logs dans le répertoire associé au template
$template df_admin_ed_application_message_acp_log,"/opt/data/log/syslog/enterprise-directory/ACP/%$YEAR%/%$MONTH%/%$DAY%/messages.log"
# Les logs iront dans le template ?df_admin_ed_application_message_acp_log
if $HOSTNAME == 'web-acp-1' and $syslogfacility-text == 'user' and ($syslogseverity-text == 'debug' or $syslogseverity-text == 'info' or $syslogseverity-text == 'notice') and 
($msg contains 'Referential' or $msg contains 'Directory' or $msg contains 'Execute batch URL') then ?df_admin_ed_application_message_acp_log

if ($HOSTNAME == 'web1-so' or $HOSTNAME == 'web2-so') and ($syslogtag contains 'Enterprise-Directory_Apache_Rewrite' or $syslogtag contains 'Enterprise-Directory_Apache' or $syslogtag
contains 'Referential-CMD_Apache' or $syslogtag contains 'Referential-LMD_Apache'  or $syslogtag contains 'Referential-CMD_Apache_Rewrite'  or $syslogtag contains 
'Referential- LMD_Apache_Rewrite') and not ($msg contains '172.25.3.156' or $msg contains '172.25.3.157' or $msg contains 'bytes of entropy' or $msg contains 'ERROR' or $syslogtag 
contains 'ERROR') then :ommysql:172.26.3.68,logs_web-apps-ED,rsyslog,XfNkHeb3

# drop tout ce qui ne contient pas le nom de la machine locale (ici syslog1-so), cela evite que le serveur syslog qui recoit des logs d'autres machines soient aussi stockés en local 
dans /var/log/messages en plus du fichier de logs spécifié dans les template
:hostname, !contains, "syslog1-so" ~


Exemples

Le signe «  ; » pour séparer plusieurs « Services »

Il est possible de mettre plusieurs services pour une même destination en utilisant le «  ; » :

Service1.Priorité1; Service2.Priorité2     Destination
Le signe « , » pour plusieurs « Services » avec une même « Priorité »

Il est possible d’indiquer plusieurs « Services » pour le même niveau de « Priorité » avec le signe « , ». La ligne suivante envoie dans le fichier « mail_news » les messages en
provenance des « Services » « mail » et « new » dont la « Priorité » est supérieure ou égale à « info ». :

mail,news.info  /var/log/mail_news
Le signe « = » pour ne traiter que la « Priorité » indiquée

Il est possible de n’envoyer que les messages d’une seule « Priorité » (sans les « Priorités » de niveaux supérieures) avec le singe « = ». Exemple :

mail.=err  /var/log/mail.err
Le signe « * » pour traiter toutes les « Services »

La commande suivante permet d’envoyer les messages d’erreurs de toutes les « Services » dans le fichier « error »

*.error  /var/log/error
Le signe « * » pour traiter toutes les « Priorités »

Le signe « * » permet d’indiquer que l’on souhaite toutes les « Priorités » (Le résultat est le même qu’en mettant « debug », mais c’est plus lisible). Exemple :

mail.*  /var/log/mail
Le signe « * » pour envoyer des messages sur toutes les consoles ouvertes

La ligne suivante, permet d’envoyer tous les messages d’erreurs sur toutes les consoles ouvertes grâce au signe « * » placé en destination à la fin de la ligne :

*.alert  *
Le signe «  ! » pour exclure les niveaux supérieurs ou égaux à la « Priorité » indiquée

Le signe «  ! » permet d’indiquer que l’on souhaite exclure le niveaux indiqué et tous les niveaux supérieurs à celui indiqué. La ligne suivante, permet d’envoyer dans le fichier
« mail » tous les messages sauf ceux supérieurs ou égaux à la « Priorité » « warn » :

mail.*;mail.!warn  /var/log/mail

La ligne suivante permet d’envoyer dans le fichier « mail » tous les messages supérieurs ou égaux à la « Priorité » « notice » et inférieure à la « Priorité » « crit » :

mail.notice;mail.!crit  /var/log/mail
Le signe « - » pour améliorer les performances en écriture

Le signe « - » est utilisé devant les chemins de fichiers les moins critiques pour améliorer les performances en écriture au risque de perdre des données en cas de crash du système
(pas de synchronisation des fichiers). Cette ligne enregistre tous les messages de la « Service » « mail » dans le fichier « mail » :

mail.*  -/var/log/mail

Le signe « \ » pour écrire une instruction sur plusieurs lignes
La commande suivante écrite sur deux lignes grâce au signe « \ », permet d’envoyer tous les messages de mails ou de news dans le fichier « mail_news » :
mail.*;\
news.*   /var/log/mail_news

La ligne suivante permet d’envoyer tous les logs dans la console « tty8 » (CTRL+ALT+F8) :
*.*  /dev/tty8

    # Les messages noyau sont tout d'abord stockés dans
    # le fichier kernel, les messages critiques et au-dessus
    # sont retransmis vers un autre hôte et vers
    # la console
    #
    kern.*                       /var/adm/kernel
    kern.crit                    @finlandia
    kern.crit                    /dev/console
    kern.info;kern.!err          /var/adm/kernel-info

La première règle dirige tous les messages de facility kernel vers le fichier /var/adm/kernel.

La seconde déclaration dirige tous les messages noyau de priorité crit et au-dessus vers l'hôte distant finlandia. Ceci est utile, car si l'hôte se crashe et que le disque subit des 
erreurs irréparables vous pourriez ne plus arriver à lire les messages stockés. S'ils sont aussi sur un hôte distant, vous pouvez encore essayer de trouver les raisons du crash.

La troisième règle dirige ces même messages vers la console courante, aussi l'utilisateur qui travaille sur la machine les recevra, aussi.

La quatrième ligne indique à syslogd de sauvegarder tous les messages noyau arrivant avec un priorité de info à warning dans le fichier /var/adm/kernel-info. Tout de err et au-dessus 
est exclu.

    # Tcp wrapper journalise selon mail.info, nous affichons
    # toute la connexion sur tty12
    #
    mail.=info                   /dev/tty12

Ceci dirige tous les messages utilisant mail.info (dans les sources LOG_MAIL | LOG_INFO) vers /dev/tty12, la 12ème console. Par exemple le tcp wrapper tcpd(8) utilise ceci par défaut.

    # Stocke tout ce qui concerne le courriel dans
    # le fichier mail
    #
    mail.*;mail.!=info           /var/adm/mail

Ce modèle correspond à tous les messages arrivant avec la facility mail, sauf ceux de priorité info. Ils seront stockés dans le fichier /var/adm/mail.

    # Journalise tout message mail.info ou news.info dans info
    #
    mail,news.=info              /var/adm/info

Ceci extraira tous les messages arrivant avec soit mail.info soit news.info et les stockera dans le fichier /var/adm/info.

    # Journalise les messages info et notice dans
    # le fichier messages
    #
    *.=info;*.=notice;\
            mail.none  /var/log/messages

Ceci laissera syslogd journaliser tous les messages qui arrivent avec la priorité soit info soit notice dans le fichier /var/log/messages, sauf les messages qui utilisent
la facility mail. 


Voici des scripts pour la maintenance d'un serveur syslog-ng :

Make-Links-To-Current-Logs-forsyslog-Aulne.sh

Compress-Syslog-Logs-Aulne.sh