Projet

Général

Profil

Gestion logs » Historique » Version 18

Benjamin Bohard, 03/04/2012 16:17

1 13 Daniel Dehennin
{{toc}}
2 13 Daniel Dehennin
3 1 Benjamin Bohard
h1. Gestion des journaux
4 1 Benjamin Bohard
5 1 Benjamin Bohard
Les objectifs fondamentaux de la journalisation sont les suivants :
6 1 Benjamin Bohard
7 1 Benjamin Bohard
* conserver l'information en vue d'établir des diagnostics de panne,
8 1 Benjamin Bohard
* conserver l'information en vue de statistiques d'utilisation,
9 1 Benjamin Bohard
* conserver l'information par contrainte légale.
10 1 Benjamin Bohard
11 1 Benjamin Bohard
Les écueils à éviter sont les suivants :
12 1 Benjamin Bohard
13 1 Benjamin Bohard
* saturation de la partition stockant les journaux,
14 1 Benjamin Bohard
* compromission des informations des journaux par application de droits d'accès inadaptés.
15 1 Benjamin Bohard
16 9 Daniel Dehennin
Ces objectifs et écueils guident la politique de journalisation à mettre en œuvre. Les contraintes les plus fortes sont l'obligation légale de conserver l'information et le risque de saturation du support de stockage. Les journaux, ou partie de journaux, concernés par l'obligation légale doivent être traités prioritairement. Les autres doivent s’accommoder de la contrainte d'espace de stockage.
17 1 Benjamin Bohard
18 1 Benjamin Bohard
h2. Contextes de journalisation
19 1 Benjamin Bohard
20 1 Benjamin Bohard
La gestion des journaux d'une distribution EOLE est guidée par différents contextes d'utilisation. Un contexte d'utilisation est une topologie réseau particulière de machines, virtuelles ou physiques, à laquelle s'applique une politique de journalisation commune. Les rôles possibles dans un réseau sont :
21 1 Benjamin Bohard
* une machine émettrice : transmission des journaux à une machine réceptrice ;
22 1 Benjamin Bohard
* une machine réceptrice : conservation des journaux locaux, réception des journaux de machines émettrices.
23 1 Benjamin Bohard
24 9 Daniel Dehennin
Les machines émettrices se déclinent en matériel réseau, machines physiques et conteneurs LXC. Cette distinction introduit une distinction entre les machines réceptrices qui ne gèrent que les conteneurs qu'elles hébergent et celles qui centralisent les journaux de matériels physiques distants. Certains modules de la distribution EOLE se prêtent plus à l'exécution d'un rôle particulier. ZéphirLog, notamment a été créé pour assumer le rôle de machine réceptrice vis-à-vis des autres modules. Cependant, la modularité permet à un autre module de jouer ce rôle. L'utilisation du mode conteneur ou non est plus contraignant sur les rôles par contre.
25 1 Benjamin Bohard
26 1 Benjamin Bohard
h3. Solution EOLE en mode non conteneur
27 1 Benjamin Bohard
28 1 Benjamin Bohard
Une machine en mode non conteneur est le cas le plus simple :
29 1 Benjamin Bohard
30 1 Benjamin Bohard
* un seul environnement d'exécution ;
31 1 Benjamin Bohard
* la machine peut jouer les rôles de machine émettrice et transmettre ses journaux et de machine réceptrice et recevoir des journaux.
32 1 Benjamin Bohard
33 1 Benjamin Bohard
h3. Solution EOLE en mode conteneur
34 1 Benjamin Bohard
35 1 Benjamin Bohard
Une machine en mode conteneur amène un autre niveau :
36 1 Benjamin Bohard
37 1 Benjamin Bohard
* une hiérarchie d'environnement d'exécution à deux niveaux :
38 1 Benjamin Bohard
** un maître ;
39 1 Benjamin Bohard
** des conteneurs ;
40 1 Benjamin Bohard
* les conteneurs jouent le rôle de machines émettrices et transmettent leurs journaux ;
41 1 Benjamin Bohard
* les maîtres jouent forcément le rôle de machines réceptrices, au moins vis-à-vis des conteneurs, et peuvent jouer le rôle de machines émettrices et transmettre leurs journaux.
42 1 Benjamin Bohard
43 1 Benjamin Bohard
h3. Autre
44 1 Benjamin Bohard
45 1 Benjamin Bohard
Le reste du matériel participant au réseau (équipement réseau, machines clientes hors solutions EOLE, etc.) jouent le rôle de machines émettrices dans la structure envisagée.
46 1 Benjamin Bohard
47 1 Benjamin Bohard
h2. La problématique de la transmission réseau
48 1 Benjamin Bohard
49 1 Benjamin Bohard
Une machine réceptrice peut potentiellement recevoir de plusieurs sources : 
50 1 Benjamin Bohard
* des conteneurs ;
51 1 Benjamin Bohard
* des machines distantes pouvant utiliser le protocole RELP ;
52 1 Benjamin Bohard
* des machines distantes pouvant utiliser le protocole TCP ;
53 1 Benjamin Bohard
* des machines distantes pouvant utiliser le protocole UDP.
54 1 Benjamin Bohard
55 2 Benjamin Bohard
La transmission devant être fiable, le protocole RELP est à privilégier, ainsi que l'usage des queues, essentiellement pour les journaux à valeur légale. Le protocole TCP est encore incontournable pour l'utilisation d'une liaison sécurisée avec GnuTLS. Le protocole UDP est à réserver pour les équipements ne pouvant utiliser le protocole TCP ou RELP.
56 1 Benjamin Bohard
57 1 Benjamin Bohard
Il doit être possible de trier les journaux par zone émettrice. Différentes granularités sont envisageables pour définir les zones émettrices. La granularité la plus grossière distingue la zone interne (les conteneurs) de la zone externe.
58 1 Benjamin Bohard
59 1 Benjamin Bohard
h2. Les services
60 1 Benjamin Bohard
61 1 Benjamin Bohard
Les services prioritaires sont ceux dont les journaux ont une valeur légale et une durée de rétention prévue par la loi.
62 1 Benjamin Bohard
63 1 Benjamin Bohard
h2. La configuration de rsyslog dans EOLE
64 1 Benjamin Bohard
65 1 Benjamin Bohard
Le service rsyslog est démarré par défaut sur tous les modules EOLE, maître et conteneurs.
66 1 Benjamin Bohard
La configuration minimale est composée d'une partie commune et de fichiers de configuration rattachés aux différents services.
67 12 Benjamin Bohard
La stratégie d'agrégation des journaux est décidée à l'instanciation.
68 1 Benjamin Bohard
69 1 Benjamin Bohard
h3. La configuration minimale
70 1 Benjamin Bohard
71 11 Daniel Dehennin
* Sur le maître, sur un module en mode conteneur ou non conteneur :
72 11 Daniel Dehennin
** Un dispatcher pour les journaux locaux et conteneurs dans @/var/log/rsyslog/local/<APPLI>/<APPLI>.<SEVERITY>.log@
73 11 Daniel Dehennin
** Un dispatcher pour les journaux des hôtes réseaux dans @/var/log/rsyslog/remote/<HOSTNAME>/<APPLI>/<APPLI>.<SEVERITY>.log@
74 11 Daniel Dehennin
* Sur les conteneurs :
75 11 Daniel Dehennin
** Des règles avec mise en place de queues pour les journaux sensibles
76 11 Daniel Dehennin
** Une règle globale pour le reste
77 1 Benjamin Bohard
78 12 Benjamin Bohard
h3. L'agrégation
79 1 Benjamin Bohard
80 12 Benjamin Bohard
L'agrégation des journaux des conteneurs sur le maître est imposée.
81 1 Benjamin Bohard
82 12 Benjamin Bohard
Le choix du mode d'agrégation porte sur :
83 1 Benjamin Bohard
* l'activation de l'envoi : spécification de l'adresse de destination, protocole imposé (RELP), port imposé (20515 ?) ;
84 1 Benjamin Bohard
* l'activation de la réception :
85 1 Benjamin Bohard
** réception de clients utilisant RELP : schéma de répartition, liste des adresses des clients, port imposé (20515 ?) ;
86 1 Benjamin Bohard
** réception de clients utilisant TCP : schéma de répartition, liste des adresses des clients, port imposé (10514 ?) ;
87 1 Benjamin Bohard
** réception de clients utilisant UDP : schéma de répartition, liste des adresses des clients, port imposé (514) ;
88 1 Benjamin Bohard
* utilisation du chiffrement : emplacement du certificat.
89 1 Benjamin Bohard
90 1 Benjamin Bohard
h3. L'organisation de la configuration
91 1 Benjamin Bohard
92 1 Benjamin Bohard
La lecture séquentielle de la configuration de rsyslog impose une organisation particulière :
93 1 Benjamin Bohard
* les modules (entrée, sortie) doivent être chargés avant d'être utilisés ;
94 1 Benjamin Bohard
* les ensembles de règles doivent être spécifiés avant d'être associés aux entrées ;
95 1 Benjamin Bohard
* les modèles doivent être spécifiés avant d'être utilisés ;
96 1 Benjamin Bohard
* les messages ne doivent pas être sortis de la chaîne de traitement prématurément.
97 1 Benjamin Bohard
98 10 Benjamin Bohard
Plages de fichiers :
99 10 Benjamin Bohard
100 10 Benjamin Bohard
00-09 : fichiers EOLE contenant la configuration générique en début de chaîne de traitement
101 10 Benjamin Bohard
102 16 Benjamin Bohard
10-19 : fichiers EOLE de règles non-destructrices
103 10 Benjamin Bohard
104 16 Benjamin Bohard
20-49 : fichiers de règles personnalisées non-destructrices
105 10 Benjamin Bohard
106 10 Benjamin Bohard
50 : seuil d'utilisation de & ~ pour enlever les messages de la file après traitement
107 10 Benjamin Bohard
108 16 Benjamin Bohard
50-79 : fichiers de règles personnalisées destructrices
109 10 Benjamin Bohard
110 16 Benjamin Bohard
80-98 : fichiers EOLE de règles destructrices
111 10 Benjamin Bohard
112 18 Benjamin Bohard
99-general_dispatch.conf
113 1 Benjamin Bohard
114 1 Benjamin Bohard
h4. rsyslog.conf
115 10 Benjamin Bohard
116 1 Benjamin Bohard
<pre>
117 16 Benjamin Bohard
$ModLoad imuxsock # provides support for local system logging
118 16 Benjamin Bohard
$ModLoad immark  # provides --MARK-- message capability
119 1 Benjamin Bohard
120 16 Benjamin Bohard
# commented in container (eole-conteneur/lxc_install.sh l.216-7)
121 16 Benjamin Bohard
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)
122 16 Benjamin Bohard
$KLogPath /proc/kmsg
123 16 Benjamin Bohard
124 16 Benjamin Bohard
$PreserveFQDN on
125 16 Benjamin Bohard
126 16 Benjamin Bohard
# utilisation du protocole RELP
127 16 Benjamin Bohard
%if %%mode_conteneur_actif == 'oui' or %%activer_reception_logs_relp == 'oui'
128 16 Benjamin Bohard
129 16 Benjamin Bohard
$ModLoad imrelp
130 16 Benjamin Bohard
$InputRELPServerRun 20514
131 16 Benjamin Bohard
132 16 Benjamin Bohard
%end if
133 16 Benjamin Bohard
134 16 Benjamin Bohard
# utilisation du protocole TCP
135 16 Benjamin Bohard
%if %%activer_reception_logs_tcp == 'oui'
136 16 Benjamin Bohard
137 16 Benjamin Bohard
$ModLoad imtcp
138 16 Benjamin Bohard
139 16 Benjamin Bohard
# utilisation du chiffrement
140 16 Benjamin Bohard
%if %%rsyslog_tls == "oui" and (%%rsyslog_envoi_tls == "oui" or %%rsyslog_reception_tls == "oui")
141 16 Benjamin Bohard
142 16 Benjamin Bohard
# configuration general pour le chiffrement
143 16 Benjamin Bohard
$DefaultNetstreamDriver gtls
144 16 Benjamin Bohard
$DefaultNetstreamDriverCAFile %%rsyslog_ca_file
145 16 Benjamin Bohard
$DefaultNetstreamDriverCertFile  /etc/ssl/certs/eole.crt
146 16 Benjamin Bohard
$DefaultNetstreamDriverKeyFile  /etc/ssl/certs/eole.key
147 16 Benjamin Bohard
148 16 Benjamin Bohard
149 16 Benjamin Bohard
# configuration propre a la reception
150 16 Benjamin Bohard
%if %%rsyslog_reception_tls == "oui"
151 16 Benjamin Bohard
152 16 Benjamin Bohard
$InputTCPServerStreamDriverMode 1
153 16 Benjamin Bohard
$InputTCPServerStreamDriverAuthMode anon
154 16 Benjamin Bohard
%for %%client_ip in %%adresses_ip_clients_logs_tcp
155 16 Benjamin Bohard
$InputTCPServerStreamDriverPermittedPeer %%client_ip
156 16 Benjamin Bohard
%end for
157 16 Benjamin Bohard
158 16 Benjamin Bohard
%end if
159 16 Benjamin Bohard
%end if
160 16 Benjamin Bohard
161 16 Benjamin Bohard
$AllowedSender TCP, %%custom_join(%%adresses_ip_clients_logs_tcp, separator=', ')
162 16 Benjamin Bohard
163 16 Benjamin Bohard
$InputTCPServerRun 10514
164 16 Benjamin Bohard
%end if
165 16 Benjamin Bohard
166 16 Benjamin Bohard
# utilisation du protocole UDP
167 16 Benjamin Bohard
%if %%activer_reception_logs_udp == 'oui'
168 16 Benjamin Bohard
169 16 Benjamin Bohard
$ModLoad imudp
170 16 Benjamin Bohard
$AllowedSender UDP, %%custom_join(%%adresses_ip_clients_logs_udp, separator=', ')
171 16 Benjamin Bohard
$UDPServerRun 514
172 16 Benjamin Bohard
173 16 Benjamin Bohard
%end if
174 16 Benjamin Bohard
175 16 Benjamin Bohard
###########################
176 16 Benjamin Bohard
#### GLOBAL DIRECTIVES ####
177 16 Benjamin Bohard
###########################
178 16 Benjamin Bohard
179 16 Benjamin Bohard
#
180 16 Benjamin Bohard
# Use traditional timestamp format.
181 16 Benjamin Bohard
# To enable high precision timestamps, comment out the following line.
182 16 Benjamin Bohard
#
183 16 Benjamin Bohard
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
184 16 Benjamin Bohard
185 16 Benjamin Bohard
# Filter duplicated messages
186 16 Benjamin Bohard
$RepeatedMsgReduction on
187 16 Benjamin Bohard
188 16 Benjamin Bohard
#
189 16 Benjamin Bohard
# Set the default permissions for all log files.
190 16 Benjamin Bohard
#
191 16 Benjamin Bohard
$FileOwner syslog
192 16 Benjamin Bohard
$FileGroup adm
193 16 Benjamin Bohard
$FileCreateMode 0640
194 16 Benjamin Bohard
$DirCreateMode 0755
195 16 Benjamin Bohard
$Umask 0022
196 16 Benjamin Bohard
$PrivDropToUser syslog
197 16 Benjamin Bohard
$PrivDropToGroup adm
198 16 Benjamin Bohard
199 16 Benjamin Bohard
#
200 16 Benjamin Bohard
# Include all config files in /etc/rsyslog.d/
201 16 Benjamin Bohard
#
202 16 Benjamin Bohard
$IncludeConfig /etc/rsyslog.d/*.conf
203 16 Benjamin Bohard
204 1 Benjamin Bohard
</pre>
205 10 Benjamin Bohard
206 14 Benjamin Bohard
h4. rsyslog.d/
207 14 Benjamin Bohard
208 14 Benjamin Bohard
00-aggregation.conf
209 14 Benjamin Bohard
<pre>
210 1 Benjamin Bohard
%if %%is_defined('activer_envoi_logs') and %%activer_envoi_logs == 'oui'
211 1 Benjamin Bohard
212 14 Benjamin Bohard
%if %%rsyslog_envoi_tls == 'non'
213 14 Benjamin Bohard
214 14 Benjamin Bohard
$ModLoad omrelp
215 1 Benjamin Bohard
216 14 Benjamin Bohard
%end if
217 1 Benjamin Bohard
218 14 Benjamin Bohard
$WorkDirectory /var/log/rsyslog
219 1 Benjamin Bohard
$ActionQueueType LinkedList
220 1 Benjamin Bohard
%if %%is_defined('activate_squid_realtime') and %%activate_squid_realtime == 'non'
221 1 Benjamin Bohard
$ActionQueueDequeueTimeBegin %%squid_heure_debut
222 14 Benjamin Bohard
$ActionQueueDequeueTimeEnd %%squid_heure_fin
223 1 Benjamin Bohard
%end if
224 14 Benjamin Bohard
$ActionQueueFileName relpact
225 14 Benjamin Bohard
$ActionQueueSaveOnShutdown on
226 14 Benjamin Bohard
227 14 Benjamin Bohard
%if %%rsyslog_envoi_tls == 'oui'
228 14 Benjamin Bohard
229 14 Benjamin Bohard
$ActionSendStreamDriverAuthMode anon
230 14 Benjamin Bohard
$ActionSendStreamDriverPermittedPeer %%adresse_ip_serveur_logs
231 14 Benjamin Bohard
$ActionSendStreamDriverMode 1
232 14 Benjamin Bohard
:programname, isequal, "squid" @@%%adresse_ip_serveur_logs:10514
233 14 Benjamin Bohard
234 14 Benjamin Bohard
$ActionSendStreamDriverAuthMode anon
235 14 Benjamin Bohard
$ActionSendStreamDriverPermittedPeer %%adresse_ip_serveur_logs
236 14 Benjamin Bohard
$ActionSendStreamDriverMode 1
237 14 Benjamin Bohard
:programname, !isequal, "squid"	@@%%adresse_ip_serveur_logs:10514
238 14 Benjamin Bohard
239 14 Benjamin Bohard
%else
240 14 Benjamin Bohard
241 14 Benjamin Bohard
:programname, isequal, "squid" :omrelp:%%adresse_ip_serveur_logs:20514
242 14 Benjamin Bohard
243 14 Benjamin Bohard
:programname, !isequal, "squid" :omrelp:%%adresse_ip_serveur_logs:20514
244 14 Benjamin Bohard
245 14 Benjamin Bohard
%end if
246 1 Benjamin Bohard
247 1 Benjamin Bohard
%else
248 1 Benjamin Bohard
# cette machine n'est pas configurée pour transmettre ses logs à une machine distante
249 1 Benjamin Bohard
%end if
250 14 Benjamin Bohard
251 1 Benjamin Bohard
</pre>
252 1 Benjamin Bohard
253 1 Benjamin Bohard
00-conteneur.conf
254 14 Benjamin Bohard
255 1 Benjamin Bohard
<pre>
256 14 Benjamin Bohard
$ModLoad omrelp
257 14 Benjamin Bohard
258 16 Benjamin Bohard
$WorkDirectory /var/log/rsyslog
259 1 Benjamin Bohard
$ActionQueueType LinkedList
260 1 Benjamin Bohard
261 14 Benjamin Bohard
%if %%is_defined('activate_squid_realtime') and %%activate_squid_realtime == 'non'
262 14 Benjamin Bohard
263 14 Benjamin Bohard
$ActionQueueDequeueTimeBegin %%squid_heure_debut
264 1 Benjamin Bohard
$ActionQueueDequeueTimeEnd %%squid_heure_fin
265 1 Benjamin Bohard
266 1 Benjamin Bohard
%end if
267 14 Benjamin Bohard
268 1 Benjamin Bohard
$ActionQueueFileName relpact
269 1 Benjamin Bohard
$ActionQueueSaveOnShutdown on
270 14 Benjamin Bohard
271 1 Benjamin Bohard
:programname, isequal, "squid" :omrelp:%%adresse_ip_br0:20514
272 14 Benjamin Bohard
& ~
273 1 Benjamin Bohard
274 14 Benjamin Bohard
*.*	:omrelp:%%adresse_ip_br0:20514
275 14 Benjamin Bohard
& ~
276 1 Benjamin Bohard
</pre>
277 14 Benjamin Bohard
278 1 Benjamin Bohard
01-templates.conf
279 14 Benjamin Bohard
<pre>
280 1 Benjamin Bohard
$template DynLocalDispatch, "/var/log/rsyslog/local/%programname%/%programname%.%syslogseverity-text%.log"
281 14 Benjamin Bohard
282 17 Benjamin Bohard
$template DynRemoteDispatch, "/var/log/rsyslog/remote/%hostname%/%programname%/%programname%.%syslogseverity-text%.log"
283 1 Benjamin Bohard
</pre>
284 1 Benjamin Bohard
10-erreurs.conf
285 1 Benjamin Bohard
286 1 Benjamin Bohard
<pre>
287 1 Benjamin Bohard
*.err  /var/log/syslog
288 1 Benjamin Bohard
</pre>
289 1 Benjamin Bohard
290 16 Benjamin Bohard
20-auth.conf
291 16 Benjamin Bohard
<pre>
292 16 Benjamin Bohard
$template DynLocalAuth, "/var/log/rsyslog/local/auth/auth.%syslogseverity-text%.log"
293 16 Benjamin Bohard
$template DynRemotelAuth, "/var/log/rsyslog/remote/%hostname%/auth/auth.%syslogseverity-text%.log"
294 16 Benjamin Bohard
%if %%activer_reception_logs == 'non'
295 16 Benjamin Bohard
auth, authpriv.* ?DynLocalAuth
296 16 Benjamin Bohard
%else
297 16 Benjamin Bohard
if $syslogfacility-text startswith 'auth' and $fromhost-ip startswith '127' then ?DynLocalAuth
298 16 Benjamin Bohard
%if %%mode_conteneur_actif == 'oui'
299 16 Benjamin Bohard
if $syslogfacility-text startswith 'auth' and $fromhost-ip startswith '%%adresse_ip_br0[:-2]' then ?DynLocalAuth
300 16 Benjamin Bohard
%end if
301 16 Benjamin Bohard
if $syslogfacility-text startswith 'auth' and not ($fromhost-ip startswith '%%adresse_ip_br0[:-2]' or $fromhost-ip startswith '127') then ?DynRemoteAuth
302 16 Benjamin Bohard
%end if
303 16 Benjamin Bohard
</pre>
304 1 Benjamin Bohard
305 16 Benjamin Bohard
50-79….conf : les règles personnalisées pour filter les services individuellement sur le modèle de 80-rsyslog.conf
306 16 Benjamin Bohard
307 16 Benjamin Bohard
80-rsyslog.conf
308 1 Benjamin Bohard
<pre>
309 16 Benjamin Bohard
$template DynLocalRsyslog, "/var/log/rsyslog/local/rsyslog/rsyslog.%syslogseverity-text%.log"
310 16 Benjamin Bohard
$template DynRemoteRsyslog, "/var/log/rsyslog/remote/%hostname%/rsyslog/rsyslog.%syslogseverity-text%.log"
311 16 Benjamin Bohard
%if %%activer_reception_logs == 'non'
312 16 Benjamin Bohard
:programname, startswith, "rsyslog" ?DynLocalRsyslog
313 16 Benjamin Bohard
%else
314 16 Benjamin Bohard
if $programname startswith 'rsyslog' and $fromhost-ip startswith '127' then ?DynLocalRsyslog
315 1 Benjamin Bohard
& ~
316 16 Benjamin Bohard
%if %%mode_conteneur_actif == 'oui'
317 16 Benjamin Bohard
if $programname startswith 'rsyslog' and $fromhost-ip startswith '%%adresse_ip_br0[:-2]' then ?DynLocalRsyslog
318 16 Benjamin Bohard
& ~
319 16 Benjamin Bohard
%end if
320 16 Benjamin Bohard
:programname, startswith, "rsyslog" ?DynRemoteRsyslog
321 16 Benjamin Bohard
& ~
322 16 Benjamin Bohard
%end if
323 16 Benjamin Bohard
324 1 Benjamin Bohard
</pre>
325 15 Benjamin Bohard
326 1 Benjamin Bohard
99-general_dispatch.conf
327 15 Benjamin Bohard
328 15 Benjamin Bohard
<pre>
329 16 Benjamin Bohard
%if %%activer_reception_logs == 'non'
330 16 Benjamin Bohard
*.* ?DynLocalDispatch
331 16 Benjamin Bohard
%else
332 15 Benjamin Bohard
:fromhost-ip, isequal, "127" ?DynLocalDispatch
333 1 Benjamin Bohard
& ~
334 15 Benjamin Bohard
335 15 Benjamin Bohard
%if %%mode_conteneur_actif == 'oui'
336 15 Benjamin Bohard
337 15 Benjamin Bohard
:fromhost-ip, startswith, "%%adresse_ip_brO[:-2]" ?DynLocalDispatch
338 15 Benjamin Bohard
& ~
339 15 Benjamin Bohard
%end if
340 15 Benjamin Bohard
341 15 Benjamin Bohard
*.* ?DynRemoteDispatch
342 16 Benjamin Bohard
%end if
343 1 Benjamin Bohard
</pre>
344 1 Benjamin Bohard
Actuellement, les services qui disposent de règles spécifiques sont squid, charon, iptables, ufw, smbd, nmbd, named, exim4. Une règle générale peut être ajoutée pour traiter les autres cas. Ces règles personnalisées ne sont pas essentielles sauf dans le cas de fork (exemple de rsyslog qui ajoute le numéro de PID au nom de programme de ses différentes instances). Dans ce cas, il faut une règle avec une expression régulière ou startswith (ou utiliser la facility si elle est univoque).
345 1 Benjamin Bohard
346 7 Benjamin Bohard
<pre><code>
347 1 Benjamin Bohard
$template DynRsyslog, "/var/log/rsyslog/%hostname%/rsyslog/rsyslog.%syslogseverity-text%.log"
348 5 Benjamin Bohard
:programname, startswith, "rsyslog"  ?DynRsyslog
349 1 Benjamin Bohard
& ~
350 1 Benjamin Bohard
</code></pre>
351 1 Benjamin Bohard
352 1 Benjamin Bohard
h3. Utilisation des ensembles de règles
353 1 Benjamin Bohard
354 1 Benjamin Bohard
Les règles peuvent être regroupées et les groupes exécutées en fonction de la provenance des messages. La dissociation des ports pour les différentes sources permet d'exécuter des jeux de règles différents pour les messages originaires des conteneurs, de machines distantes ou les messages locaux.
355 3 Benjamin Bohard
356 1 Benjamin Bohard
Le protocole RELP ne bénéficie pas de la possibilité d'utiliser les ensembles de règles (la directive pour associer un ensemble donné à une connection RELP n'apparaît que dans la version 6.3.6 : la version prévue pour precise est la 5.8.6).
357 1 Benjamin Bohard
358 1 Benjamin Bohard
h2. L'arborescence typique
359 8 Daniel Dehennin
360 1 Benjamin Bohard
<pre>
361 8 Daniel Dehennin
/var/log/syslog
362 8 Daniel Dehennin
├── local
363 8 Daniel Dehennin
│   ├── exim
364 8 Daniel Dehennin
│   │   ├── exim.alert
365 8 Daniel Dehennin
│   │   ├── exim.info
366 8 Daniel Dehennin
│   │   └── exim.notice
367 8 Daniel Dehennin
│   └── smbd
368 8 Daniel Dehennin
│       ├── smbd.debug
369 8 Daniel Dehennin
│       └── smbd.info
370 8 Daniel Dehennin
└── remote
371 8 Daniel Dehennin
    ├── 10.11.12.13
372 8 Daniel Dehennin
    │   ├── aaa
373 8 Daniel Dehennin
    │   │   └── aaa.info
374 8 Daniel Dehennin
    │   └── ipsec
375 8 Daniel Dehennin
    │       └── ipsec.error
376 8 Daniel Dehennin
    ├── 15.16.17.18
377 8 Daniel Dehennin
    │   ├── apache2
378 8 Daniel Dehennin
    │   │   └── apache2.error
379 8 Daniel Dehennin
    │   └── kerberos
380 8 Daniel Dehennin
    │       └── kerberos.info
381 8 Daniel Dehennin
    └── sw12-4
382 8 Daniel Dehennin
        └── aaa
383 8 Daniel Dehennin
            └── aaa.info
384 6 Benjamin Bohard
</pre>
385 6 Benjamin Bohard
386 6 Benjamin Bohard
h2. Rotation des journaux
387 6 Benjamin Bohard
388 6 Benjamin Bohard
h3. Principes de logrotate
389 6 Benjamin Bohard
390 7 Benjamin Bohard
* options globales : des options peuvent être définies en début de fichier ;
391 7 Benjamin Bohard
* -overriding : les fichiers sont lus séquentiellement, celui qui parle en dernier à raison- ;
392 6 Benjamin Bohard
* gobbling : les règles spécifques peuvent utiliser le wildcard * (problème des redondances de règles cependant.
393 6 Benjamin Bohard
394 6 Benjamin Bohard
h3. Mise en œuvre de logrotate
395 7 Benjamin Bohard
396 1 Benjamin Bohard
Pour composer avec les contraintes de logrotate, on ajoute .log à la fin de chaque fihier. Cela permet d'utiliser le globbing sur un dossier en excluant les journaux archivés.