Backup Exec plugin for check_mk

This check_mk plugin queries Backup Exec database to find job history, and returns the state of the last job execution.

It has been tested with Backup Exec 2010 and 2012, and should work with previous versions from 9.0 to 12.5. Backup Exec 2010 is required (see below)

checks

It has been tested on Windows 2008 R2, and should work on Windows 2012, and maybe Windows 2003 if powershell is installed.
Contrary to many Backup Exec plugins for Nagios, it is not a compiled executable but a simple powershell script, and doesn’t parse xml history files and so runs very fast.
It tries to connect on the local MSSQL instance named BEDB, which is the default configuration. In most cases, no configuration is needed, just copy backupexec_job.ps1 into check_mk « plugins » subdirectory.

The following performance data is returned to create graphs: Job size, duration, rate and deduplication ratio.

graph_backup_rate

graph_backup_time

Download from Check-MK Exchange

16/07/2014 : Version 1.1 – Added support for job status 9 (missed)

28/07/2014 : Version 1.2 – Added WATO plugin to treat jobs ‘completed with exceptions’ as OK

29/07/2014 : Version 1.3 – Added support for job status 21 (canceled, timed out)

02/04/2015 : For Backup Exec 12.5, you need to use backupexec_9-12.5_job on your windows server (thanks Guillermo).

25/06/2015 : Version 1.4 – Fixed error « “Check parameter definition for backupexec_job has type Dictionary, but match_type None” » with check_mk 1.2.7i (thanks Jörg !). Version 1.4 doesn’t work anymore with 1.2.6 or previous versions. Use backupexec_job-1.3 instead.

02/09/2015 : Version 1.5 – Fixed compatibility with both check_mk<=1.2.6 and check.mk>=1.2.5 (thanks Peter & François)

07/10/2015 : Version 1.6 – Fixed « ERROR: Skipping invalid manpage: backupexec_job (Catalog info missing) » in 1.2.7i3 (thanks to Daniel Müller)

Decodeur Altitude Meteotime 323

Hideki est un constructeur de station météos en marque blanche.
La station Hideki DV323 se retrouve vendue sous différentes marques, notamment:

Cette station possède une sonde thermomètre/hygromètre communiquant via RF433.
Mon objectif était de capter et décoder ce signal pour le traiter sur un PC.
Il existe de nombreux projets Arduino allant dans ce sens, semblables à celui-ci.
Le protocole Hideki est connu et décodé, mais ce n’est manifestement pas celui utilisé par la station Meteotime.

Je me suis donc fortement inspiré de cette page afin de décoder le signal.

Une capture via la carte son m’a permis d’identifier un signal « propre » :

meteotime-signal-1

et, en zoomant, d’identifier les caractéristiques du signal :

meteotime-signal-2

soit une période d’environ 1220 µs.
Parfait : J’avais 64 bits utilisables.
Je suis donc parti du principe qu’un 0 était plus longtemps « en haut » qu’un 1 :

0: |---|_  : 839 µs - 362 µs
1: |-|___  : 362 µs - 839 µs

Afin de faciliter le travail, j’ai écrit un bout de code Arduino qui, avec le montage de PracticalArduino, a permis d’effectuer différents relevés.

J’ai ainsi pu identifier les bits significatifs :

                                       |> >> | >>>  |>>>        |> >> | >>>
                                       dd dd t ttt  TTTT        hh hh H HHH
       0123 4567 8901 2345 6789 0123 4567 8901 2345 6789 0123 4567 8901 2345 6789 0123
       0           1            2           3            4           5            6

Où:

  • dddd : valeur décimale de la température
  • tttt : température (unités)
  • TTTT : température (dizaines)
  • hhhh : hygrométrie (unités)
  • HHHH : hygrométrie (dizaines)

Exemple :

       0000_0000 0000_0001 1000_1000 0101_0010 1001_0100 1011_1111 0011_0101 1000_1000 22.2°C 53%

Les autres bits sont toujours identiques, on y retrouve probablement l’identifiant de l’émetteur et du bourrage.
Il me reste à identifier le bit pour les températures négatives, on verra cet hiver 😉

Mise à jour 27/07/2014 : Mon émetteur a rendu l’âme il y a bien longtemps, je n’ai jamais finalisé le code.
Le voici donc en l’état :
Code Arduino Meteotime RF

Il est fonctionnel, le montage est un récepteur RF433 Arduino classique

Arduino remote upload

This is how I upload sketches from my computer (windows 7) to an arduino uno board attached to a remote linux host (Debian 7).

On the linux host:

  • Install usbip package
  • Load kernel modules usbip_host and usbip_core
  • As root, launch usbipd (use -d for debugging)
  • Find your arduino board with lsusb :

Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 002: ID 046d:c313 Logitech, Inc. Internet 350 Keyboard
Bus 007 Device 004: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)

  • Export the usb bus (arduino device is 7-4, so the bus is 7-1)

usbip bind -b 7-1

On Windows:

usbip -a archipel 7-1

  • Let windows install the drivers
  • Use Device Manager to find the COM port corresponding to « Arduino UNO »
  • Select the correct COM port in Arduino IDE
  • Enjoy !

A propos

Ce site a pour vocation de partager des informations concernant essentiellement les logiciels libres, dont je suis un fervent utilisateur.

Me contacter: cyril@pawelko.net

Télécharger mon CV complet

CV express

1998-2004 : Cap Gemini division Exploitation (Sogeti) – Nantes

Technicien systèmes et réseaux

2004-2014 : Pygram – Nantes

Administrateur systèmes et réseaux

  • Windows Server 2000/2003/2008
  • Exchange 2000/2003/2007/2010
  • ISA Server 2000/2004
  • SQL Server 2000/2005/2008
  • Linux (certifications LPI niveau 1 et 2)
  • Administration Apache, Squid, MySQL, etc…
  • Asterisk
  • Routeurs Zyxel Zywall
  • Virtualisation (VMWare, kvm, proxmox)
  • Stockage (Dell, HP, EMC)
  • Supervision (Nagios, cacti, check_mk, etc…)

Directeur technique

  • Gestion pôle infrastructures systèmes et réseaux (10 personnes)
  • Gestion R&D

http://www.pygram.com/services/solutions(..)

Conférence RMLL 2009 à Nantes: Retour d’expérience sur Asterisk

2014-> : DSMI – Nantes

Consultant avant-vente infrastructures

  • Audit infrastructures
  • Conseil, avant-vente et architecture sur les technologies suivantes:
    • Stockage Dell, EMC
    • VMware vSphere, View, ThinApp
    • Riverbed Steelhead
    • Dell Networking, Cisco, Aerohive
    • Nutanix
    • Veeam
    • Microsoft Windows, Exchange, Office 365

Certifications principales

  • Microsoft Certified Professional Windows 2000 Pro, Windows 2000 Server (2001)
  • Zyxel Certified Network Engineer (de 2004 – 2012)
  • Linux Professional Institute LPI niveaux 1 et 2 (2008)
  • Riverbed Certified Solutions Associate – WAN Optimization (2014)
  • VMware VTSP 2015
  • Veeam Technical Sales 2015
  • Nutanix Platform Professional NPP4 (2015)
  • Cisco 700-505 – SMB Specialization for Account Managers (2016)
  • Dell PS Series Storage Professional Exam DSDPS-200 ProDeploy (2016)
  • Dell SC Series Storage Professional Exam DSDSC-200 ProDeploy (2016)
  • Aerohive Technical Sales Associate ATSA, Aerohive Technical Sales Professional ATSP (2016)
  • EMC EMC SE Portfolio Competency 2016
  • Fortinet NSE1, NSE2, NSE3 (2016)
  • Microsoft MCSA Office 365 (70-346, 70-347; 2016)
  • Dell EMC Specialist – Technology Architect, Backup Recovery Solutions Version 7.0

linkedin_button

Divers

1997 : Rédaction de 3 articles pour le virus informatique

2007 : Participation à la création du site http://www.sebastienchampion.fr/

Bluetooth mouse with Doudoulinux

I installed Doudoulinux on my MSI Wind U100’s hard drive for my daughter,

First, I followed this excellent tutorial which tells how to install a basic Debian Squeeze on my hard drive, and install doudoulinux on top of it.

To enable the bluetooth mouse, I followed these steps:

  • Enable bluetooth 😉
  • Install blueman
  • Open a desktop session (« Tout Doudoulinux » in french)
  • Go to settings and open Bluetooth Manager
  • Connect your bluetooth mouse

Et voilà, it’s now enabled at boot for all sessions.

Booting Seatools ISO via pxe

I need to run Seagate diagnostics utility (Seatools), but my computer has no cd reader, no floppy drive, and my disk is so defective that grub won’t boot.

But it has a NIC that supports PXE.

Thanks to http://reboot.pro/8258/ and http://www.isalo.org/wiki.debian-fr/inde(..) I’m able to run these tools via network.

Enter the BIOS, enable network boot.

Boot, write down the mac address.

On another computer (currently a debian squeeze), install a dhcp, pxe, a tftp server and gpxelinux (see the second link above, in french).

Download « Seatools for DOS », it’s an iso image. Rename it to seatools.iso and save it in /srv/tftp

Edit /srv/tftp/pxelinux.cfg/default and create an entry like:

label 1
 MENU LABEL Seatools
 kernel memdisk
 append iso
 initrd /seatools.iso

And voilà ! You can now boot this iso image via pxe.

Tuning zfs-fuse sur Debian Squeeze

Je souhaite conserver plein de copies de sauvegarde de machines virtuelles tournant sur mon hyperviseur étant un kvm/libvirt/archipel sur une squeeze.
Il y a un candidat idéal pour cela: zfs, qui pour des raisons de licence n’a pas d’implémentation native dans linux.
Pour commencer, j’ai fait quelques tests avec zfs-fuse (0.6.9-1), sans tuning particulier. Ca marche correctement, mais pas très vite (moins de 10 Mo/s).
J’ai ensuite utilisé le zfs natif. Les performances brutes étaient bien meilleures mais ça tirait énormément sur la RAM et tout finissait par devenir très lent, et la sauvegarde d’une des VM ne se terminait jamais. En essayant de tuner la taille du ARC cache, je n’ai réussi qu’à obtenir un plantage complet du noyau (le dmesg parlait de lui même).

Je suis donc retourné à zfs-fuse en attendant de trouver mieux.
Maintenant que j’ai une rotation des VM sur une semaine, je peux avoir une idée précise des ressources requises par la déduplication:

#  zpool status -D zpool
 pool: zpool
state: ONLINE
scrub: none requested
config:

       NAME                               STATE     READ WRITE CKSUM
       zpool                              ONLINE       0     0     0
         disk/by-id/dm-name-archipel-zfs  ONLINE       0     0     0

errors: No known data errors

DDT entries 282985, size 354 on disk, 222 in core

bucket              allocated                       referenced
      __
refcnt   blocks   LSIZE   PSIZE   DSIZE   blocks   LSIZE   PSIZE   DSIZE
------   ------   -----   -----   -----   ------   -----   -----   -----
    1    49,6K   6,20G   2,25G   2,25G    49,6K   6,20G   2,25G   2,25G
    2    11,1K   1,39G    583M    583M    27,6K   3,45G   1,42G   1,42G
    4     171K   21,4G   12,6G   12,6G    1,13M    145G   85,5G   85,5G
    8    43,7K   5,46G   3,11G   3,11G     358K   44,7G   25,4G   25,4G
   16      741   92,6M   59,3M   59,3M    13,5K   1,69G   1,04G   1,04G
   32      129   16,1M   8,19M   8,19M    4,67K    598M    298M    298M
   64        3    384K   67,5K   67,5K      330   41,2M   7,78M   7,78M
  128        1    128K   4,50K   4,50K      133   16,6M    598K    598K
   1K        1    128K   4,50K   4,50K    1,27K    162M   5,71M   5,71M
   2K        1    128K      7K      7K    3,98K    509M   27,8M   27,8M
  16K        1    128K   7,50K   7,50K    23,7K   2,96G    178M    178M
Total     276K   34,5G   18,6G   18,6G    1,60M    205G    116G    116G

Je vois ici que j’ai 282985 entrées pour la déduplication, chaque entrée occupant 222 octets en RAM.
J’en déduis donc que mon cache pour la dédup est d’environ 60 Mo (ce qui est peu !).
Par défaut ZFS alloue un quart de la taille du cache ARC pour le cache des metadata, donc fait partie la table DDT.
Le cache ARC doit donc être au moins de 240 Mo.
Par défaut, la valeur sur ma Debian était de 100 Mo.
Cela apparait au démarrage de fuse:

# grep -i zfs /var/log/syslog
Nov 28 21:12:39 archipel zfs-fuse: ARC caching: maximum ARC size: 100 MiB
Nov 28 21:12:39 archipel zfs-fuse: ARC setup: min ARC size set to 16777216 bytes
Nov 28 21:12:39 archipel zfs-fuse: ARC setup: max ARC size set to 104857600 bytes

J’ai donc modifié la ligne « max-arc-size = 240 » dans le fichier /etc/zfs/zfsrc et relancé zfs-fuse

#invoke-rc.d zfs-fuse restart

A titre d’exemple, le temps de sauvegarde de ma VM zimbra est passé de 16 minutes à 6 minutes !
En réglant le cache à 500 Mo, je descends à 3 minutes pour la même sauvegarde. Ce qui correspond à peu près aux temps que j’obtenais avec les modules zfs natifs, mais qui eux provoquaient de nombreux plantages, alors qu’avec zfs-fuse j’ai une solution parfaitement stable. Un réglage du cache à 1 Go n’a pas donné de meilleurs résultats.

Conclusion : Voici la formule appliquée dans mon cas avec zfs-fuse : max-arc-size = Taille du cache DDT * 8

Configuration mpd sur debian pour écoute sur iphone

Objectif : Pouvoir écouter sur mon iPhone 3G la musique stockée sur mon serveur linux, sans devoir passer par l’ignoble iTunes, et sans dupliquer les données.
La solution existe, il s’agit de mpd (music player daemon) pour la partie serveur, et MPoD pour la partie cliente.
L’installation sur une debian squeeze et le manque de doc m’ont incité à partager cette expérience.
Configuration validée:

  • iPhone 3G
  • iOS 4
  • MPoD 1.6
  • Debian Squeeze amd64
  • mpd 0.15.12
Avertissement

Ces manipulations ont été réalisées sur une squeeze installée originellement il y a plus de 7 ans, il manque donc peut-être certaines opérations. Afin de bien montrer que ce n’est pas parfait, toutes les opérations seront réalisées en tant que root 😉

Recompilation mpd

La version debian de mpod n’inclut pas le support lame, il faut donc recompiler le paquet.
Tout d’abord, activer le dépôt Debian Multimédia comme indiqué ici
Installer lame

# apt-get install libmp3lame
# apt-get install build-essentials
# cd /usr/local/src/

Télécharger les sources du paquet, et installer les dépendances nécessaires

# apt-get source mpd
# apt-get build-dep mpd

Se rendre dans le répertoire, et activer le support lame

# cd mpd-0.15.12/
# vi debian/rules

Sur la ligne DEB_CONFIGURE_USER_FLAGS, remplacer –disable-lame par –enable-lame
Puis lancer la compilation

# dpkg-buildpackage

Une fois terminé, remonter au répertoire parent puis installer le fichier deb ainsi créé

# dpkg -i mpd_0.15.12-1.1_amd64.deb
Configuration de mpd

Editer le fichier /etc/mpd.conf et définir les paramètres suivants:

music_directory         "/mnt/data/musique/"
bind_to_address         "0.0.0.0"
audio_output {
        type            "httpd"
        name            "My HTTP Stream"
        encoder         "lame"          # optional, vorbis or lame
        port            "8000" 
#       quality         "5.0"                   # do not define if bitrate is defined
        bitrate         "128"                   # do not define if quality is defined
        format          "44100:16:1"
}

Enregistrer et démarrer le service mpd

La partie iPhone

Installer MPoD
Aller dans les réglages de l’application et ajouter manuellement un serveur:

  • Connection mode: On the go
  • Serveur: IP/nom du serveur
  • Port: 6600
  • Stream: http://(serveur):8000

Une fois connecté (Status: Connected), retourner dans le menu préférences.
Sélectionner « Update database » pour demander à mpd de lister les fichiers disponibles
Vérifier dans la partie « Outputs » que « My HTTP Stream » soit bien sélectionné

Et si ça ne fonctionne pas

Quelques pistes…

  • Vérifier que mpd fonctionne, en utilisant un autre client que l’iPhone
  • Essayer d’écouter le flux http://(serveur):8000 avec vlc ou un navigateur web
  • Vérifier les connexions réseaux, en lançant la commande
# watch -n 1 "netstat -apn | grep /mpd"
tcp        0      0 0.0.0.0:6600            0.0.0.0:*               LISTEN      14046/mpd
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      14046/mpd
tcp        0  15334 192.168.3.9:8000        192.168.3.64:49954      ESTABLISHED 14046/mpd

On voit ici:

  • Que mdp fonctionne bien et écoute bien sur le port 6600 (le service est lancé)
  • Que mdp écoute sur le port 8000 (uniquement lorsqu’une lecture est en cours)
  • Que l’iphone est connecté sur le port 8000 et « reçoit » le flux audio
Bonus

Profitez maintenand de MPoD, qui a en plus la bonne idée d’aller chercher tout seul les pochettes chez Amazon

ben quoi ?

 

Liens

Logiciel libre

www.shellunix.com : Un site simple, clair et complet sur bash, sed et awk. Une référence pour moi.

Photorec : Un utilitaire de récupération de photos et de documents qui, contrairement à de nombreux rivaux, a le mérite de fonctionner et la bonne idée d’être sous licence GPL

Boosting Spamassassin : Comment optimiser le spamassassin de zimbra en utilisant les « rules du jour »

Perl script to adjust ‘srt’ subtitle files : Un script pour ajuster le décalage dans des fichiers de sous-titres

Divers

www.sebastienchampion.fr : De belles photos de paysages et d’animaux

Compiling rpcapd for linux

Several years ago, I compiled rpcapd for linux. To achieve it, I had to comment the win32 specific code, so it compiled on linux.

I recently tried to compile the latest version, and it doesn’t need modifications anymore to successfully compile.

Here is a quick howto, based on debian 5:

Install the required tools

 apt-get install bison flex

Download and unzip winpcap

 wget http://www.winpcap.org/install/bin/WpcapSrc_4_1_2.zip
 unzip WpcapSrc_4_1_2.zip
 cd winpcap/wpcap/libpcap
 chmod +x configure runlex.sh

Configure libpcap to compile statically…

 CFLAGS=-static ./configure

…and compile

 make
 cd rpcapd/

edit the Makefile and add -static to CFLAGS, and finally

 make

Downloads:

amd64: rpcapd-4.1.2-amd64.gz
i386: rpcapd-4.1.2-i386.gz