Un fonctionnaire, késako
Posted by JB on 29/01/09 at 21:20
Cet article y répond en partie, et décrit les fondements de notre merveilleux code des marchés publics :
D’une façon générale, toute la gestion administrative se base sur l’idée que le fonctionnaire est potentiellement un carotteur, un voleur, un profiteur, le genre de personnes qui va confier le marché du matériel informatique à son beau-frère et accueillir son neveu en stage photocopieuse.
J’aurais pû faire la grève pour ça aussi tiens. Ah, ces abrutis qui nous gouvernent :-)
Là où je bosse, on a la chance (?) de disposer d’un SAN, c’est-à-dire d’un réseau dédié au stockage. En l’occurence c’est un réseau fibre, et tous les flux passent par deux switches fibre McData Sphereon 4500… qu’il faut surveiller d’une manière ou d’une autre.
En l’occurrence on surveille tout ça par Nagios. L’ancien script (qui doit faire partie des nagios plugins du site officiel ?) vérifiait les interfaces une par une, ce qui est gênant dans un environnement évolutif (oubli d’interfaces non surveillées!). Il faisait d’autres choses (check trafic rx/tx, errors) que mon script ne fait pas, mais il ne demande qu’à être amélioré ;-)
Voici donc un script de remplacement qui check toutes les interfaces d’un coup. Gros avantage : on passe les ports non branchés en exception, mais si un port est vu “up” et qu’il est en exception le script sort en Critical. Cela force à maintenir la liste des exceptions à jour ;-)
PS: Il faut bien sûr que ruby soit installé sur votre serveur de supervision.
#!/usr/bin/ruby # Dernière modif: 19/11/2008 # Script de test des ports pour les switches fibre # Jean-Baptiste BARTH <jeanbaptiste.barth@gmail.com> # Remonter les infos à la main (sous l'user "nagios") # $ snmpwalk -c public -v 2c switch_san_a .1.3.6.1.4.1.289.2.1.1.2.3.1.1.2 # SNMPv2-SMI::enterprises.289.2.1.1.2.3.1.1.2.1 = INTEGER: 2 # SNMPv2-SMI::enterprises.289.2.1.1.2.3.1.1.2.2 = INTEGER: 2 # ... # => 2 = OK, 6 = down, 13 = info not available unless ARGV.length >= 2 && ARGV.length <= 3 puts "Mauvais format :" puts "\t./check_fc_setra.rb HOST COMMUNITY [EXCLUSIONS]" puts "Les ports exclus évitent des remontées d'alertes pour les ports non branchés." puts "Exemple: ./check_fc_setra.rb switch_san_a public 1,4,9" exit 2 end # Valeurs prises dans utils.sh STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 STATE_DEPENDENT=4 # Parsing arguments host = ARGV.shift community = ARGV.shift exclusions = (ARGV.shift || "none").split(",") # Passage de la commande command = `snmpwalk -c #{community} -v 2c #{host} .1.3.6.1.4.1.289.2.1.1.2.3.1.1.2` result = [] command.each do |line| #puts "DEBUG snmpwalk: "+line matches = line.match /\.(\d+) = INTEGER: (\d+)/ result.push [matches[1], matches[2]] end # Traitement de la sortie not_ignored = result.select{|x| !exclusions.include? x[0]} interfaces_down = not_ignored.select{|v| v[1] == "6"}.map{|x| x[0]} interfaces_ok = not_ignored.select{|v| v[1] == "2"}.map{|x| x[0]} interfaces_unknown = not_ignored.map{|x| x[0]} - interfaces_ok - interfaces_down interfaces_ok_not_normal = (result - not_ignored).select{|v| v[1] == "2"}.map{|x| x[0]} # Output puts "Link DOWN on interfaces : "+interfaces_down.join(",") unless interfaces_down.empty? puts "Link UP on IGNORED interfaces : "+interfaces_ok_not_normal.join(",")+"\n!!!CHANGE THE SERVICE CONFIG!!!" unless interfaces_ok_not_normal.empty? puts "State UNKNOWN : "+interfaces_unknown.join(",") unless interfaces_unknown.empty? puts "Link UP on interfaces : "+interfaces_ok.join(",") unless interfaces_ok.empty? puts "Ignored: "+exclusions.join(",") if !interfaces_down.empty? || !interfaces_ok_not_normal.empty? exit STATE_CRITICAL elsif !interfaces_unknown.empty? exit STATE_UNKNOWN else exit STATE_OK end
Mais lol.
Posted by JB on 20/01/09 at 19:22
Je comptais faire un petit billet sur une mini-manif à laquelle j’ai participé aujourd’hui, sur mes yeux écarquillés à voir 50 manifestants entourés par 3 fois plus de forces de l’ordre, des CRS avec les boucliers, les RG qui suivent le bus tout le long du parcours, ce genre de choses.
J’aurais pû faire un billet sur l’effroyable gâchis d’argent public ; “mais c’est ça votre taff les mecs ? Vous pointer à 3 contre 1 armés jusqu’aux dents, et passer la journée à ne rien faire en regardant des gens qui veulent juste lever des pancartes sans même déranger un seul autochtone ?” “mais pourquoi le patron se déplace avec des hélicos de l’armée, c’est pour compenser sa petite taille ? Ca fait cher la paire de talonettes non ?”
Mais en fait (la vie est bien faite vous en conviendrez), je vais me contenter de retourner me rouler par terre de rire : Ségolène Royal aurait inspiré la campagne de Barack Obama
ROFL.
Troll du matin...
Posted by JB on 16/01/09 at 10:08
…chagrin. Mais quand même.
2 jours qu’un collègue essaye d’installer OCSInventory sur un serveur Red Hat Enterprise 5. Ce matin, je me connecte à mon poste de test sous Ubuntu 8.10 :
$ sudo apt-get install ocsinventory-server
10 minutes plus tard (le temps du téléchargement et de me souvenir de mon mot de passe MySQL quoi), OCS était installé. Il me demande un mot de passe à la connexion, que je ne connais pas… Oups. Je fouille 2 secondes dans les confs Apache, je trouve le fichier qui va bien…
$ sudo htpasswd -b /etc/ocsinventory/htpasswd.setup admin admin
Et ça marche. 15 minutes VS 2 jours.
Debian/Ubuntu 1 – 0 RedHat.
Configuration de Redmine pour Github
Posted by JB on 12/01/09 at 18:51
L’info est déjà disponible au fond d’une page du wiki Redmine, ici. Je vais faire exactement pareil, parce que c’est bien. Et comme j’ai envie de faire un article technique, je mets ça ici.
Voilà donc en très bref la config que j’ai utilisée pour linker mon Redmine (prochainement en ligne, dès que les bons DNS seront propagés) à mon dépôt github pour Simplelog (rien mis encore dessus, seulement la release officielle).
$ sudo mkdir -p /var/redmine/git_repositories
$ sudo chown rails:rails /var/redmine/git_repositories
$ cd /var/redmine/git_repositories
$ git clone —bare git://github.com/jbbarth/simplelog.git
$ crontab -e
#git repo for simplelog
*/15 * * * * git-pull /var/redmine/git_repositories/simplelog/ 2>&1 | grep -vE "^From|FETCH_HEAD|^Already up-to-date"
And it begins... again !
Posted by JB on 10/01/09 at 06:01
Je n’ai pas récupéré les commentaires, mais tout le reste est sur pied ! Ce blog tourne maintenant avec Simplelog, mais comme ce projet est arrêté, j’ai dû modifier ce moteur de blog en profondeur. Je crois que je vais continuer à coder dessus, j’en reparlerai ici à droite !
Maintenant, à droite je laisse les articles techniques et à gauche les bêtises, les racontages de vie et les réflexions sur l’actu. Plus lisible pour les gens a priori :-)
Et cerise sur le rôti, j’ai mis en place des sauvegardes quotidiennes. Comme quoi, vive ma stupidité, ça me pousse à m’améliorer !