Archive | September, 2010

Tags: , , ,

Plugins Amanda pour Nagios

Posted on 09 September 2010 by Thomas Ginestet

Voici plusieurs scripts qui vous permettrons de vérifier via Nagios le bon fonctionnement d’une sauvegarde effectuée par Amanda. Les fonctionnalités sont les suivantes:

- amchecklabel.pl: vérification du label de la bande attendue pour la prochaine sauvegarde.

- amcheckconnection.pl: vérification de la connexion avec les clients Amanda qui seront sauvegardés lors de la prochaine sauvegarde.

- amstatus.pl: vérification que la sauvegarde se soit bien déroulée.

Ces scripts utilisent le plugin check_grep que vous trouverez dans le paquet nagios-of-plugins. Vous devrez également avoir configuré au préalable le plugin NSCA.


Quelques explications:

- $result: cette variable va contenir le résultat renvoyé par la commande check_grep sur la string ‘label ok’, string récupérée par la commande ‘/usr/local/sbin/amcheck my_amanda_config‘. Le résultat va être analysé et va permettre de définir un code d’erreur associé. Ce code d’erreur (0 si le résultat de la commande contient OK ou 2 si il contient CRITICAL) sera ensuite envoyé par NSCA à Nagios.

- $hosts: le nom du serveur de sauvegarde. Envoyé également avec le code d’erreur par NSCA.

- $service: le nom du service à déclarer dans Nagios. Envoyé également avec le code d’erreur par NSCA.

Rappelons que NSCA fonctionne sur le principe du check passif. Il vous faut alors rajouter l’exécution des scripts perl à la crontab afin d’automatiser tout cela.
Veillez à espacer de quelques minutes le amchecklabel.pl et le amcheckconnection.pl car ils sont tous deux basés sur la commande amcheck d’Amanda qui met un peu de temps à s’exécuter et qui risque de tirer la tronche si vous la lancez plusieurs fois de suite.
N’oubliez pas non plus de lancer amstatus.pl à une heure où vous êtes certain que votre sauvegarde soit bien finie, sinon vous obtiendrez une alarme Nagios en cadeau :-)

Voici un exemple de crontab (la mienne en fait…):

00 14 * * 1-5 su backup -c "/usr/lib/nagios/plugins/amchecklabel.pl"
05 14 * * 1-5 su backup -c "/usr/lib/nagios/plugins/amcheckconnection.pl"
00 08 * * 1-5 /usr/lib/nagios/plugins/amstatus.pl

Comments (0)

Tags: , , ,

Commandes Linux en vrac

Posted on 08 September 2010 by Thomas Ginestet

Issue de mon propre fichier pense-bête, voici une liste de commandes qui pourrait vous être utile. Certaines sont propres à leur distribution (je pense notamment à Debian / Ubuntu et Redhat / CentOs) mais la plupart sont génériques.

Cette liste est “brute” et évidemment loin d’être exhaustive, vous voici prévenu…

grep -l -> liste les fichiers qui contiennent la pattern

netselect et netselect-apt -> permet de choisir les meilleurs dépôts automatiquement en fonction du temps de réponse

DHCPStatus -> paquet permettant de voir le statu en cours des @IP attribuées et libres d’un serveur dhcp. Il faut installer le tar.gz disponible sur sourceforge

nmblookup -A @IP -> donne le nom de poste + @MAC ainsi que l’état d’activité de l’@IP donnée (nécessite le paquet samba-common)

fichier dhcpd.leases -> donne les ip en cours affectées par le serveur dhcp (généralement dans /var/lib/dhcp3/)

arp -an -> permet de lister les @ip et @mac associées en activité

e2image, dumpe2fs, debugfs -> commandes utiles ayant un lien avec fsck

set -> permet de voir toutes les variables déclarées pour l’utilisateur en cours

ngrep -> même chose que grep mais sur les trames réseau

find / -type f | xargs grep “mot” -> trouver un mot dans un fichier

lsof -> voir la liste des fichiers ouverts

shred -n 50 -z -u nom_fichier -> permet de supprimer efficacement un fichier (va réécrire du garbage 50 fois dessus puis des 0 et enfin supprimer le fichier)

-mmin n -> fichier dont les données ont été modifiées il y a n minutes (à utiliser avec find)

-nouser / -nogroup -> fichier dont l’uid / le gid ne correspond à aucun user / group (à utiliser avec find)

date –date=”-1 day” ou “1 days ago” -> donne la date d’hier

date –date=”1 day” -> donne la date de demain

printenv -> voir les variables d’environnement de l’utilisateur

htop -> version améliorée de top, bien plus claire et poussée

computer-janitor -> nettoie un système pour qu’il soit comme un système fraîchement installé.

iconv -> convertir l’encodage d’un fichier dans un autre type d’encodage

renice -> “reprioriser” un processus

pgrep -> permet de lister des processus de manière fine (ex: pgrep -u root -l va lister les processus de root)
pkill -> permet de tuer des processus de manière fine (mêmes commandes que pgrep)

gnutls-cli -> permet de faire des tests de connexion en tls/ssl

cat /etc/issue -> connaître la version de la distrib installée (ex: Ubuntu 8.10)
cat /etc/debian_version -> connaître le nom de code du projet de la version de la debian installée (ex: lenny/sid)

nohup -> Exécuter un programme en le rendant insensible aux déconnexions de l’utilisateur

unix2dos – dos2unix -> via le paquet tofrodos sous Ubuntu, permet de convertir un fichier txt du format Windows à Unix et réciproquement

cpulimit -> permet de limiter l’utilisation cpu d’un processus

wall -> envoyer des messages aux utilisateurs connectés sur la machine

sync -> Synchroniser les données en mémoire et celles sur disque.

tee -> Copier l’entrée standard sur la sortie standard et dans un fichier.

tr -> Traduire ou éliminer des caractères (ex: lower to upper case).

lshw -> donne des infos avancées sur l’ensemble du matos présent sur la machine

Lorsqu’on modifie le fichier de configuration d’un programme, on n’est pas obligé de le relancer: on peut l’obliger à relire son fichier de configuration. Pour cela, envoyer le signal -1 ou HUP. Ainsi la commande killall -HUP squid oblige squid à relire son fichier de configuration.

psgrep monprog -> donne le pid du prog
pidof monprog -> idem

script -> enregistre l’historique des commandes shell effectuées

blkid -> donne les UUID et LABEL des disques d’un système

udevinfo -a -p /sys/block/sda -> donne plein d’info sur le périphérique concerné
Si l’on ne connaît pas forcément la branche supérieure (ici /sys/block/sda) dans laquelle se trouve le périphérique:
udevinfo -a -p $(udevinfo -q path -n /dev/sda)

udevtest /class/scsi_generic/sg3 -> affiche les actions de udev sur le périphérique (ici sg3). Le /class/scsi…. est récupéré grâce à udevinfo

dumpe2fs -> affiche le nombre d’inodes sur une partitions

ulimit -a -> donne les capacités mémoire, nombre d’ouvertures de fichiers, etc

mount –bind olddir newdir -> permet de monter en parallèle une partie du filesystem déjà monté, sur un autre point de montage.
ex: dans un environnement chroot, pour mapper le /dev dans le chroot il faut faire mount –bind /dev /pointdemontageduchroot/dev avant de chrooter

strings -> peut permettre de parser un binaire pour retrouver de l’ascii

ethtool -> permet d’avoir des infos (ex: driver, vitesse) et de modifier les paramètres des cartes réseaux

chattr -> change les attributs avancés (sorte d’ACL). On peut empêcher la suppression d’un fichier même pour root, empêcher si l’on supprime un fichier que l’emplacement disque qui était occupé par ce fichier soit libéré tant que le disque n’est pas plein (on peu ainsi récupérer le fichier avec un outil de restauration)
lsattr -> affiches les attributs avancés

sysctl -a -> donne les options en cours du noyau utilisé
sysctl -w -> pour écrite…mais n’est pas conservé au reboot. Pour conserver, modifier /etc/sysctl.conf ou par ex echo 1 > /proc/sys/..

stat -> permet d’avoir des informations très précises sur les propriétés d’un fichier / filesystem
access: accès
modify: contenu
change: droits, attributs

rpm -qpl plop.rpm | grep etc -> liste les fichiers de conf de plop

sed -i ‘s/PW_HERE/password/g’ dbsetup.sql -> remplace dans dbsetup.sql le mot PW_HERE par password dans toutes les occurrences rencontrées

fuser -m -> permet de lister les processus accédant à un fichier

exporter des données en préservant les droits, fichiers spéciaux, …
dans le répertoire à exporter:
tar -cvf – . | (cd /mnt;tar -xvf -)
le tirer (-) = sortie standard

Pour créer de la swap supplémentaire:
sur partition où il reste de la place -> dd if=/dev/zero of=SWAP bs=1M count=100
mkswap SWAP (fichier créé)
swapon SWAP

à rentrer dans fstab si on veut le conserver au reboot

cat /proc/sys/vm/swappiness ou sysctl vm.swappiness -> donne la valeur de la proportion de swap utilisée par le système. Va de 0 à 100 (plus c’est haut, plus ça swap).

sysctl -w vm.swappiness=0 -> va modifier swapiness en lui affectant la valeur de 0. On peut aussi la modifier avec un echo.
Pour la modifier en dur, placer la directive dans /etc/sysctl.conf

cat /proc/numdupidd’unprocessus/status -> donne des infos sur le processus donné dont sa taille en mémoire

5% de l’espace disque est réservé pour le root pour des manoeuvres de secours par ex. On peut changer ce % avec tune2fs -m % /dev/hdxy

partprobe /dev/hdX -> permet d’appliquer par ex la création d’une nouvelle partition sans rebooter

uuencode -> conversion de binaire en texte, surtout utilisé pour l’envoi de mail

du -sh /rep -> donne un résumé en Mo (taille totale du répertoire et donc de ses sous répertoires)

pwd -> voir dans quel répertoire on se trouve

Comments (1)

Tags: , , , , ,

Plugin Zimbra pour Nagios

Posted on 03 September 2010 by Thomas Ginestet

En cas de boîte mail proche de la saturation, Zimbra peut prévenir par mail l’utilisateur concerné. C’est génial, mais partant du constat que beaucoup de (mes) utilisateurs ne lisent pas leurs mails dès que ça ressemble de près comme de très loin à de l’informatique, je me suis concocté un petit script en Perl me permettant d’avoir un visu sur les utilisateurs ayant leur messagerie saturée. Continue Reading

Comments (0)