---
title: "Raspberry/Rsyslog : Centralisation des logs via syslog"
url: https://www.cyber-neurones.org/2018/10/raspberry-rsyslog-centralisation-des-logs/
date: 2018-10-04
modified: 2018-10-04
author: "Frederic"
description: "J'ai donc finaliser l'installation de Munin Server/Node sur mon installation de Raspberry, maintenant je passe à Rsyslog. Voici la liste de mes Raspberry : Nom Type Processeur RAM (Mo) Version..."
categories:
  - "Raspbian : Pour Raspberry"
tags:
  - "rsyslog"
word_count: 839
---

# Raspberry/Rsyslog : Centralisation des logs via syslog

J'ai donc finaliser l'installation de Munin Server/Node sur mon installation de Raspberry, maintenant je passe à Rsyslog. Voici la liste de mes Raspberry :

| **Nom ** | **Type** | **Processeur** | **RAM (Mo)** | **Version** | **IP** | **Utilisation** | **Munin-node** |
| -------- | -------- | -------------- | ------------ | ----------- | ------ | --------------- | -------------- |
| **RASP1 / PAPI** | 000f | ARMv6-compatible processor rev 7 | 443896 | 4.14.50+ | 192.168.0.70 | Maison de retraite | OK |
| **RASP2 / OSMC** | a22082 | ARMv7 Processor rev 4 | 764720 | 4.14.34-6-osmc | 192.168.0.80 | Munin Server / OSMC | OK |
| **RASP3** | a020d3 | ARMv7 Processor rev 4 (v7l) | 949452 | 4.14.50-v7+ | 192.168.0.71 | Rsyslog Server | OK |
| **RASP4** | a020d3 | ARMv7 Processor rev 4 (v7l) | 949452 | 4.14.50-v7+ | 192.168.0.72 | | OK |
| **RASP5** | a020d3 | ARMv7 Processor rev 4 (v7l) | 949452 | 4.14.50-v7+ | 192.168.0.73 | | OK |

Pour mémoire, mes posts sur Munin :

- [Munin pour Android : l’application est basique mais elle fonctionne.](https://www.cyber-neurones.org/2018/10/munin-pour-android-lapplication-est-basique-mais-elle-fonctionne/)
- [Munin/Raspberry : Correction à faire ?! ( irqstats, snmp_admin_swap, acpi )](https://www.cyber-neurones.org/2018/10/munin-raspberry-correction-a-faire-irqstats-snmp_admin_swap-acpi/)
- [Raspberry/Munin : Installation d’un client SNMP pour Munin](https://www.cyber-neurones.org/2018/09/raspberry-munin-installation-dun-client-snmp-pour-munin/)
- [Raspberry/Munin : Monitor d’un site WordPress distant ( httpresponsetime )](https://www.cyber-neurones.org/2018/09/raspberry-munin-monitor-dun-site-wordpress-distant-httpresponsetime/)
- [Raspberry/Munin : RRDs: libpng12.so.0: cannot open shared object file ( DynaLoader.pm line 187 )](https://www.cyber-neurones.org/2018/09/raspberry-munin-rrds-libpng12-so-0-cannot-open-shared-object-file-dynaloader-pm-line-187/)
- [OSMC/Raspberry : installation de munin ( et Apache2) avec un script pour Freebox](https://www.cyber-neurones.org/2018/09/osmc-raspberry-installation-de-muni-node-et-apache2-avec-un-script-pour-freebox/)

Ma version de Raspberry est la suivante ( je fais utiliser **RASP3** ) : 4.14.50-v7+

**Etape n°1 :** Modification du fichier **/etc/rsyslog.conf**
# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

...
if ($fromhost-ip=='192.168.0.70') then /var/log/RASP1.log
if ($fromhost-ip=='192.168.0.80') then /var/log/RASP2.log
if ($fromhost-ip=='192.168.0.71') then /var/log/**RASP3.log**
if ($fromhost-ip=='192.168.0.72') then /var/log/RASP4.log
if ($fromhost-ip=='192.168.0.73') then /var/log/RASP5.log
if ($fromhost-ip=='127.0.0.1') then {
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
}
En théorie le fichier **RASP3.log**, devrait être vide ...

**Etape n°2 :** Je modifie aussi  **/etc/logrotate.d/rsyslog** :
**/var/log/RASP1.log
/var/log/RASP2.log
/var/log/RASP3.log
/var/log/RASP4.log
/var/log/RASP5.log**
/var/log/syslog
{
**rotate 30**
daily
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}

Je relance rsyslog :
**$ sudo systemctl restart rsyslog.service**

Maintenant que le serveur peut faire de la réception je passe au client :

**Etape n°3 :** J'ajoute le fichier **/etc/rsyslog.d/50-default.conf** sur tous les autres RASP.
**$ cat /etc/rsyslog.d/50-default.conf**
@**192.168.0.71**:514

Et je relance en local :
**$ sudo systemctl restart rsyslog.service
**
Pour forcer l'affichage d'un message vous pouvez faire par exemple :
**$ sudo df
**
Chaque sudo va provoquer une ligne de logs ...

Il va falloir maintenant voir via Munin quel est l'activité supplémentaire que cela provoque sur les écritures/lectures de la carte MicroSD. Les graphiques actuels :

[![](https://www.cyber-neurones.org/wp-content/uploads/2018/10/diskstats_iops-week-300x169.png)](https://www.cyber-neurones.org/2018/10/raspberry-rsyslog-centralisation-des-logs/diskstats_iops-week/)

[![](https://www.cyber-neurones.org/wp-content/uploads/2018/10/diskstats_latency-week-2-300x169.png)](https://www.cyber-neurones.org/2018/10/raspberry-rsyslog-centralisation-des-logs/diskstats_latency-week-2/)

[![](https://www.cyber-neurones.org/wp-content/uploads/2018/10/df_inode-week-300x205.png)](https://www.cyber-neurones.org/2018/10/raspberry-rsyslog-centralisation-des-logs/df_inode-week/)

[![](https://www.cyber-neurones.org/wp-content/uploads/2018/10/diskstats_throughput-week-300x169.png)](https://www.cyber-neurones.org/2018/10/raspberry-rsyslog-centralisation-des-logs/diskstats_throughput-week/)

[![](https://www.cyber-neurones.org/wp-content/uploads/2018/10/df-week-300x205.png)](https://www.cyber-neurones.org/2018/10/raspberry-rsyslog-centralisation-des-logs/df-week/)

A noter que sur la version OSCM il faut l'installer rsyslog :
**$ sudo apt-get install rsyslog**
...
Les NOUVEAUX paquets suivants seront installés :
libestr0 libfastjson4 liblogging-stdlog0 liblognorm5 rsyslog
0 mis à jour, 5 nouvellement installés, 0 à enlever et 12 non mis à jour.
Il est nécessaire de prendre 611 ko dans les archives.
Après cette opération, 1 369 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer ? [O/n] O
...
**$ sudo systemctl start rsyslog.service**
**$ sudo systemctl enable rsyslog.service**
Synchronizing state of rsyslog.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable rsyslog

**Etape n°4 **: Munin & Rsyslog .

J'ajoutes dans  **/etc/rsyslog.conf** :
module(load="impstats" **interval="60"** severity="7")
...
if $syslogtag contains '**rsyslogd-pstats**' then {
action(type="omfile" queue.type="linkedlist" queue.discardmark="980"
name="pstats" file="/var/log/impstats")
stop
}

Afin d'avoir un fichier de statistique tous les **60 secondes**.

Ensuite il suffit de prendre le programme de[ https://github.com/jonschipp/munin-plugins/blob/master/rsyslog_queued](https://github.com/jonschipp/munin-plugins/blob/master/rsyslog_queued) : (et le mettre dans le fichier **/usr/share/munin/plugins/rsyslog_queued** ). En rouge mes modifications ...
**#!/bin/sh
FILE=/var/log/impstats
Q=core
IFS=:

if [ "$1" = "autoconf" ]; then
echo yes
exit 0
fi**

**if [ "$1" = "config" ]; then
echo "graph_title Number of Rsyslog Messages in the Queue (enqueued)"
echo "graph_category network"
echo "graph_vlabel Messages per minute"
echo "graph_info Queued syslog messages "
echo "graph_period minute"
echo "${Q}.label $Q" | sed 's/\\//g'
echo "${Q}.min 0" | sed 's/\\//g'
echo "${Q}.type DERIVE" | sed 's/\\//g'
echo "${Q}.info Logs by Queue $Q" | sed 's/\\//g'**

else
if [ -f $FILE ] && [ -r $FILE ]; then

**awk "/$Q/ && /$(date +"%b %e")/" $FILE |
grep -o ' enqueued=[0-9]\+ ' | tail -1 | awk -F "=" -v queue=$Q '{ printf("%s.value %d\n", queue, $2) }' 2>/dev/null**

unset IFS
else
echo "File not found!"
exit 1
fi
fi

Ensuite on fait un petit test :
**$ sudo /usr/share/munin/plugins/rsyslog_queued**
core.queue.value 989
**$ sudo /usr/share/munin/plugins/rsyslog_queued config**
graph_title Number of Rsyslog Messages in the Queue (enqueued)
graph_category network
graph_vlabel Messages per minute
graph_info Queued syslog messages
graph_period minute
core.queue.label core.queue
core.queue.min 0
core.queue.type DERIVE
core.queue.info Logs by Queue core.queue
**$ sudo munin-run rsyslog_queued --debug**
# Processing plugin configuration from /etc/munin/plugin-conf.d/munin-node
# Setting /rgid/ruid/ to /113/65534/
# Setting /egid/euid/ to /113 113/65534/
# Setting up environment
# About to run '/etc/munin/plugins/rsyslog_queued'
core.queue.value 1523
**$ $ sudo ln -s /usr/share/munin/plugins/rsyslog_queued /etc/munin/plugins/rsyslog_queued **

On ajoute dans **/etc/munin/plugin-conf.d/munin-node** :
[rsyslog_queued]
user root

Et on relance :
**$ sudo systemctl restart munin-node.service**

On peut aussi faire un test via le Server Munin :
$ **telnet RASP71 4949**
Trying 192.168.0.71...
Connected to RASP71.
Escape character is '^]'.
# munin node at raspberrypi
**list**
acpi cpu cpuspeed df df_inode entropy forks fw_packets if_err_eth0 if_err_wlan0 if_eth0 if_wlan0 interrupts irqstats load memory netstat nfs4_client nfs_client open_files open_inodes proc_pri processes **rsyslog_queued** swap threads uptime users vmstat

 