Taille: 3754
Commentaire: problèmes
|
Taille: 6341
Commentaire: J'ai le sentiment qu'on devrait renommer cette page pour parler juste de rsyslog (et pas du serveur lui-même)
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
= Description = | ## Che fais le ménache -- PeBecue <<DateTime(2012-04-15T23:08:46+0100)>> |
Ligne 3: | Ligne 3: |
Il s'agit d'un SUN XFIRE 2100, un serveur 1U avec un opteron 64bits et d'un disque SATA de 80 Go | <<TableOfContents>> |
Ligne 5: | Ligne 5: |
Ragnarok fonctionne sur [http://www.openbsd.org/ OpenBSD]. | = Ragnarok = |
Ligne 7: | Ligne 7: |
= Les services = | Ragnarok est le serveur qui s'occupera (bientôt) de récupérer les logs des différents serveurs du Cr@ns. Il a reçu deux disques durs montés en RAID d'un teraoctet, et a été mis à neuf sous squeeze. |
Ligne 9: | Ligne 9: |
* le wifi (à ne pas confondre avec le wiki) ; quelques infos supplémentaires sur WifiTechnique/OpenBsd. * devrait stocker les sauvegardes de pegase (à rediscuter de qui le gère) ---- |
= Configuration et services = |
Ligne 13: | Ligne 11: |
= Les mises à jour = Openbsd sort une mise à jour bi-annuelle, une en novembre, l'autre en mai. Chaque mise à jour se fait de version en version (3.8->3.9, 3.9->4.0). |
Ragnarok a été installé sous squeeze, en debootstrap. |
Ligne 16: | Ligne 13: |
== 3.8 -> 3.9 == | Les services installés dessus sont : |
Ligne 18: | Ligne 15: |
* Il y a eu des modifications locales (qui ont été reportés dans les nouveaux fichiers) dans les fichiers suivants : * {{{/etc/rc}}} (lancement de {{{named}}}, {{{isakmpd}}} et {{{httpd}}} avec {{{systrace}}}) * {{{/mtree/special}}} ({{{pf.conf}}} en 0644) * {{{/etc/rc.conf}}} (activation de {{{named}}}, {{{ntpd}}}, {{{isakmpd}}}, {{{dhcpd}}}, {{{httpd}}}, {{{nfs_server}}}, {{{amd}}}, {{{pf}}}, {{{portmap}}}, {{{syslogd}}} et paramètre {{{amd_dir}}}) * {{{/etc/ssh/sshd_config}}} (root peut se loguer) * {{{/etc/sysctl.conf}}} (forwarding... le chiffrement de la swap était activé, il ne l'est plus) * Par contre, il semblerait qu'aucune mise à jour de paquet n'ai pu se faire : il y a eu un tas d'erreurs du style : {{{ --- bzip2-1.0.3 ------------------- Couldn't delete /usr/local/lib/libbz2.so.10.3 (bad md5) Couldn't delete /usr/local/bin/bzip2 (bad md5) Couldn't delete /usr/local/bin/bzip2recover (bad md5) Couldn't delete /usr/local/lib/libbz2.a (bad md5) Files kept as partial-bzip2-1.0.3 package }}} Supprimer les paquets {{{partial-*}}}, et relancer la mise à jour résoud le problème : {{{ for u in $(pkg_info 2>/dev/null|awk '/^partial/{print $1}'); do pkg_delete $u; done pkg_add -ui -F update -F updatedepends |
* La gestion des logs == Configuration sur Ragnarok == Ragnarok fonctionne avec rsyslog, il faudra donc passer tous les serveurs sous rsyslog pour qu'ils puissent envoyer leurs informations à celui-ci. Pour centraliser les logs, on utilise PostgreSQL, avec le paquet rsyslog-pgsql (la table par défaut s'appelle Syslog). L'envoi d'un serveur vers Ragnarok se fera à l'aide du protocole RELP (une surcouche de TCP, plus fiable), il faut donc veiller à installer le paquet rsyslog-relp. Une fois cela fait, on crée le répertoire rsyslog.d/ dans le dossier /etc/ s'il n'existe pas (a priori, il existe déjà, car rsyslog-psql crée un fichier psql.conf dans ce dossier). Et dedans, on va créer le fichier listen_relp.conf, que l'on va remplir ainsi : {{{ $ModLoad imrelp $InputRELPServerRun 20514 |
Ligne 39: | Ligne 28: |
== 3.9 -> 4.0 == | La première ligne sert à charger le module imrelp, la seconde place Ragnarok en écoute sur le port 20514, en attente de logs. Cela fait, on relance rsyslog via la commande "sudo /etc/init.d/rsyslog restart". |
Ligne 41: | Ligne 30: |
* Modifications locales : comme ci-dessus, plus : * {{{/etc/mail/aliases}}} (alias de {{{root}}} vers {{{root@crans.org}}}) * {{{/etc/rc.local}}} (on conserve le fichier déjà en production) |
== (Re)Configuration des serveurs == |
Ligne 45: | Ligne 32: |
== Trucs cassés == | Parlons de la reconfiguration des serveurs, par exemple, whatsupdoc. On s'assure d'abord que le paquet gérant les logs est rsyslog. Par ailleurs, il faut installer rsyslog-relp, pour que l'envoi des informations puisse se faire. Dans /etc/rsyslog.d, nous allons créer le fichier send_relp.conf, contenant les informations suivantes : |
Ligne 47: | Ligne 34: |
* La sortie de la commande {{{netstat -r -f encap}}}, utilisée pour obtenir la liste des clients authentifiés en ipsec, a changé de format. Autre moyen de récupérer cette liste ? * La sauvegarde ne marche plus. * Erreur côté pegase (backuppc) : {{{ Connected to 138.231.144.11:873, remote version 29 Connected to module slash Sending args: --server --sender --numeric-ids --perms --owner --group --devices --links --times --block-size=2048 --recursive --checksum-seed=32761 --one-file-system --exclude=lost+found --exclude=etc/wifi/wifi-update/*/retry --ignore-times . . Checksum caching enabled (checksumSeed = 32761) fileListReceive() failed Done: 0 files, 0 bytes Got fatal error during xfer (fileListReceive failed) Backup aborted (fileListReceive failed) }}} * Erreur côté ragnarok (rsyncd) : {{{ 2006/11/29 00:32:01 [11328] connect from pegase.adm.crans.org (138.231.144.18) 2006/11/29 00:32:02 [11328] rsync on . from backupcrans@pegase.adm.crans.org (138.231.144.18) 2006/11/29 00:32:02 [11328] rsync: writefd_unbuffered failed to write 4 bytes [sender]: Broken pipe (32) 2006/11/29 00:32:02 [11328] rsync error: error in rsync protocol data stream (code 12) at /usr/obj/ports/rsync-2.6.8/rsync-2.6.8/io.c(1119) [sender=2.6.8] |
{{{ $ModLoad omrelp *.* :omrelp:10.231.136.11:20514;RSYSLOG_ForwardFormat |
Ligne 68: | Ligne 39: |
= Histoire = | La première ligne charge le module d'envoi des données en RELP, la seconde spécifie que tous les logs doivent être envoyés à Ragnarok (10.231.136.11), sur le port 20514, via le module omrelp, dans un format prédéfini (RSYSLOG_ForwardFormat). Il ne reste qu'à relancer rsyslog via la commande "sudo /etc/init.d/rsyslog restart". |
Ligne 70: | Ligne 41: |
Il s'agit du premier serveur SUN acheté par le CRANS. C'est aussi le premier serveur qui peut être stocké dans une armoire de switchs. | === Généralisation de la configuration via bcfg2 === |
Ligne 72: | Ligne 43: |
Il est assez surprenant de par sa conception et aussi très étonnant quant à son silence de fonctionnement. | On supposera ici que les modifications de bcfg2 se font via darcs, on notera donc / comme étant la racine du répertoire darcs bcfg2. Dans /Cfg/etc/rsyslog.d, créer le répertoire send_relp.conf/ et listen_relp.conf/. Dans send_relp.conf/, créer le fichier send_relp.conf, et y mettre les lignes mentionnées au dessus. Dans listen_relp.conf/ créer le fichier listen_relp.conf, et y mettre les lignes mentionnées au dessus également. Dans /Bundler/, créer le fichier rsyslog.xml, et le remplir comme suit : {{{ <Bundle name="rsyslog" version="2.0"> <Service name="rsyslog"/> <Group name="syslog-server"> <ConfigFile name="/etc/rsyslog.d/listen_relp.conf"/> </Group> <Group name="syslog-client"> <Group name="syslog-server" negate="true"> <ConfigFile name="/etc/rsyslog.d/send_relp.conf"/> </Group> </Group> <Package name="rsyslog-relp"/> </Bundle> }}} Dans /Metadata/, modifier le fichier groups.xml, on va modifier le groupe "ragnarok" pour commencer, chercher dans le fichier l'occurence 'Group name="ragnarok"', et y ajouter la ligne : {{{ <Group name="syslog-server"/> }}} Maintenant, on modifie le groupe "crans-common", chercher l'occurence 'Group name="crans-common"', et y ajouter la ligne (là où il faut, histoire que le fichier reste lisible...) : {{{ <Group name="syslog-client"/> }}} Dans la portion services du fichier, dans la catégorie divers, rajouter deux nouveaux groupes : {{{ <Group name="syslog-server" comment="Serveur de centralisation des logs"> <Bundle name="rsyslog"/> </Group> <Group name="syslog-client" comment="Serveurs qui ne centralisent pas les logs (cpt Obvious inside)"> <Bundle name="rsyslog"/> </Group> }}} À partir de là normalement, on peut enregistrer la configuration, et c'est terminé ! Penser à faire add sur les nouveaux fichiers avant de faire un record et de pousser. NB: On ne sait pas pourquoi, mais au début whatsupdoc n'envoyait pas les logs, puis finalement après quelques bidouillages, sans qu'on ait compris la cause, ça a marché... À creuser lors de la généralisation. == Pour les switchs == Les logs des switchs sont envoyés vers {{{ragnarok}}} le protocole syslog (en UDP), via la directive de configuration: {{{ logging 10.231.136.11 }}} Ragnarok doit donc également autoriser l'envoi de log via UDP, ce qui se réalise à l'aide d'un fichier supplémentaire ( ./rsyslog.d/listen_switches.local.conf ): {{{ $ModLoad imudp $UDPServerRun 514 $AllowedSender UDP, 127.0.0.1, *.adm.crans.org, 10.231.136.0/24 }}} On a quelques problèmes ouverts sur le champ fromhost enregistré dans la base pgsql: les ip des switchs sont utilisés au lieu de leur nom d'hôte. En désactivant, certaines directives de rsyslog, on arrive à enregistrer le nom d'hôte mais c'est alors les autres serveurs qui sont enregistrés par leur adresse IP ! NB: On utilise ici le protocole UDP, car c'est le seul disponible sur les switchs (probablement par soucis de légèreté). == Pour les bornes wifi == En raison de la limitation du firewall, les bornes wifi envoient leurs logs au routeur wifi {{{gordon}}}. Ceci se réalise en redémarrant {{{syslogd}}} sur les bornes via la commande: {{{ killall syslogd; syslogd -R 138.231.148.1 -C16 }}} Il serait envisageable, dans le futur, d'inclure cette configuration par défaut: en rajoutant les directives suivantes dans {{{/etc/config/system}}} (catégorie {{{config}}}) {{{ option log_ip 138.231.148.1 option log_type file option log_file /dev/null }}} {{{gordon}}} doit de plus être configuré pour recevoir ces logs UDP: {{{ $ModLoad imudp $UDPServerRun 514 $AllowedSender UDP, 127.0.0.1, 138.231.148.0/24 }}} Ce dernier les transmet alors à {{{ragnarok}}} de la même manière que ses propres logs. |
Ligne 75: | Ligne 137: |
* CatégorieCrans/PageNonTerminée : Faire le point sur les différents éléments | CatégorieCrans CatégorieCrans/LesServeurs |
Sommaire
Ragnarok
Ragnarok est le serveur qui s'occupera (bientôt) de récupérer les logs des différents serveurs du Cr@ns. Il a reçu deux disques durs montés en RAID d'un teraoctet, et a été mis à neuf sous squeeze.
Configuration et services
Ragnarok a été installé sous squeeze, en debootstrap.
Les services installés dessus sont :
- La gestion des logs
Configuration sur Ragnarok
Ragnarok fonctionne avec rsyslog, il faudra donc passer tous les serveurs sous rsyslog pour qu'ils puissent envoyer leurs informations à celui-ci. Pour centraliser les logs, on utilise PostgreSQL, avec le paquet rsyslog-pgsql (la table par défaut s'appelle Syslog). L'envoi d'un serveur vers Ragnarok se fera à l'aide du protocole RELP (une surcouche de TCP, plus fiable), il faut donc veiller à installer le paquet rsyslog-relp.
Une fois cela fait, on crée le répertoire rsyslog.d/ dans le dossier /etc/ s'il n'existe pas (a priori, il existe déjà, car rsyslog-psql crée un fichier psql.conf dans ce dossier). Et dedans, on va créer le fichier listen_relp.conf, que l'on va remplir ainsi :
$ModLoad imrelp $InputRELPServerRun 20514
La première ligne sert à charger le module imrelp, la seconde place Ragnarok en écoute sur le port 20514, en attente de logs. Cela fait, on relance rsyslog via la commande "sudo /etc/init.d/rsyslog restart".
(Re)Configuration des serveurs
Parlons de la reconfiguration des serveurs, par exemple, whatsupdoc. On s'assure d'abord que le paquet gérant les logs est rsyslog. Par ailleurs, il faut installer rsyslog-relp, pour que l'envoi des informations puisse se faire. Dans /etc/rsyslog.d, nous allons créer le fichier send_relp.conf, contenant les informations suivantes :
$ModLoad omrelp *.* :omrelp:10.231.136.11:20514;RSYSLOG_ForwardFormat
La première ligne charge le module d'envoi des données en RELP, la seconde spécifie que tous les logs doivent être envoyés à Ragnarok (10.231.136.11), sur le port 20514, via le module omrelp, dans un format prédéfini (RSYSLOG_ForwardFormat). Il ne reste qu'à relancer rsyslog via la commande "sudo /etc/init.d/rsyslog restart".
Généralisation de la configuration via bcfg2
On supposera ici que les modifications de bcfg2 se font via darcs, on notera donc / comme étant la racine du répertoire darcs bcfg2.
Dans /Cfg/etc/rsyslog.d, créer le répertoire send_relp.conf/ et listen_relp.conf/. Dans send_relp.conf/, créer le fichier send_relp.conf, et y mettre les lignes mentionnées au dessus. Dans listen_relp.conf/ créer le fichier listen_relp.conf, et y mettre les lignes mentionnées au dessus également.
Dans /Bundler/, créer le fichier rsyslog.xml, et le remplir comme suit :
<Bundle name="rsyslog" version="2.0"> <Service name="rsyslog"/> <Group name="syslog-server"> <ConfigFile name="/etc/rsyslog.d/listen_relp.conf"/> </Group> <Group name="syslog-client"> <Group name="syslog-server" negate="true"> <ConfigFile name="/etc/rsyslog.d/send_relp.conf"/> </Group> </Group> <Package name="rsyslog-relp"/> </Bundle>
Dans /Metadata/, modifier le fichier groups.xml, on va modifier le groupe "ragnarok" pour commencer, chercher dans le fichier l'occurence 'Group name="ragnarok"', et y ajouter la ligne :
<Group name="syslog-server"/>
Maintenant, on modifie le groupe "crans-common", chercher l'occurence 'Group name="crans-common"', et y ajouter la ligne (là où il faut, histoire que le fichier reste lisible...) :
<Group name="syslog-client"/>
Dans la portion services du fichier, dans la catégorie divers, rajouter deux nouveaux groupes :
<Group name="syslog-server" comment="Serveur de centralisation des logs"> <Bundle name="rsyslog"/> </Group> <Group name="syslog-client" comment="Serveurs qui ne centralisent pas les logs (cpt Obvious inside)"> <Bundle name="rsyslog"/> </Group>
À partir de là normalement, on peut enregistrer la configuration, et c'est terminé !
Penser à faire add sur les nouveaux fichiers avant de faire un record et de pousser.
NB: On ne sait pas pourquoi, mais au début whatsupdoc n'envoyait pas les logs, puis finalement après quelques bidouillages, sans qu'on ait compris la cause, ça a marché... À creuser lors de la généralisation.
Pour les switchs
Les logs des switchs sont envoyés vers ragnarok le protocole syslog (en UDP), via la directive de configuration:
logging 10.231.136.11
Ragnarok doit donc également autoriser l'envoi de log via UDP, ce qui se réalise à l'aide d'un fichier supplémentaire ( ./rsyslog.d/listen_switches.local.conf ):
$ModLoad imudp $UDPServerRun 514 $AllowedSender UDP, 127.0.0.1, *.adm.crans.org, 10.231.136.0/24
On a quelques problèmes ouverts sur le champ fromhost enregistré dans la base pgsql: les ip des switchs sont utilisés au lieu de leur nom d'hôte. En désactivant, certaines directives de rsyslog, on arrive à enregistrer le nom d'hôte mais c'est alors les autres serveurs qui sont enregistrés par leur adresse IP !
NB: On utilise ici le protocole UDP, car c'est le seul disponible sur les switchs (probablement par soucis de légèreté).
Pour les bornes wifi
En raison de la limitation du firewall, les bornes wifi envoient leurs logs au routeur wifi gordon. Ceci se réalise en redémarrant syslogd sur les bornes via la commande:
killall syslogd; syslogd -R 138.231.148.1 -C16
Il serait envisageable, dans le futur, d'inclure cette configuration par défaut: en rajoutant les directives suivantes dans /etc/config/system (catégorie config)
option log_ip 138.231.148.1 option log_type file option log_file /dev/null
gordon doit de plus être configuré pour recevoir ces logs UDP:
$ModLoad imudp $UDPServerRun 514 $AllowedSender UDP, 127.0.0.1, 138.231.148.0/24
Ce dernier les transmet alors à ragnarok de la même manière que ses propres logs.