Lors du développement du site de l’association Proxgroup, j’ai été confronté à un soucis d’envergure, il été nécessaire d’avoir une route qui attrapent toutes les urls car dans mon application, une page peut avoir /unepage mais aussi /undossier/unepage comme url, hors l’option path ne permet pas ce genre de chose facilement, après quelques recherches sur le net, j’ai trouvé l’option pattern qui permet cela :

Note surprenante : il est impossible de mettre une expression régulière hors des {tag}, pour contourner ce soucis, il faut créer un tag que l’on n’utilise pas mais qui me permet d’ajouter une expression régulière où l’on veux.

Si vous avez une meilleure solution, laissez un com’

Voici un petit tutoriel (mon premier d’ailleurs) sur la mise en place de notification Zabbix via l’application Telegram.

Compilation de Telegram

Il existe une version de Telegram pour linux en ligne de commande, le projet hébergé sur GitHub se nomme Telegram messenger CLI, pour cette partie, il suffit de suivre simplement le tutoriel pour la compilation, pour ma part, je vais détailler les étapes pour une GNU/Debian car mon serveur Zabbix est dessus.

1. Commençons par installer les paquets nécessaire à la compilation :

2. Puis créer le répertoire utilisateur de Zabbix s’il n’est pas créé par défaut :

3. On prend ensuite l’identité de Zabbix pour la suite des événements :

4. On récupère les sources de Telegram CLI et on compile :

5. On copie les certificats dans le /etc/ (en Root)

À ce point, nous avons compilé Telegram et il ne reste plus qu’a le configurer correctement.

Configuration

Tout d’abord, nous allons créer un compte Telegram dédié à Zabbix pour qu’il puisse envoyer des messages aux groupes et autres utilisateurs, pour cela, je vous invite à utiliser l’interface Web de Telegram, cela va nous permettre de choisir un nom à afficher ainsi que son avatar.

1. On commence par prendre l’identité de Zabbix :

2. On lance Telegram pour la première fois :

On attends quelques secondes et l’application nous demande un numéro de téléphone et le code de sécurité, entrez ces informations et saisissez la commande safe_quit

Voila, Telegram est prêt pour l’envoi de nos alertes, passons à la configuration de Zabbix.

Configuration de Zabbix

Voici le script permettant l’envoi de message stocké dans le fichier /usr/lib/zabbix/alertscripts/telegram.sh

N’oublions pas de donner le droit d’exécution sur ce fichier :

Une petite explication sur la commande s’impose : J’ai dû tricher un peu avec la commande nohup car Zabbix envoyai un SIGTERM/SIGINT à mon script, cela empêchai l’envoi correct des messages.

Enfin, créons le Media Type :

Ajouter un Media Type

Et l’action associée :

Ajouté une actions > Action

Voici le contenu des champs :
❌ {HOST.NAME}
✅ {HOST.NAME}
{TRIGGER.NAME}

Ajouté une action > Conditions

Ajouté une actions > Opérations

 Ajouté une actions > Opérations > Ajouter une opération

Il ne reste plus qu’à tester le fonctionnement et le tour est joué.

N’hésitez pas à apporter vos modifications à ce script, n’hésitez pas à commenter ou apporter des suggestions.

Petit post-it pour générer les clés SSH.

Note : le -C permet de choisir le commentaire associé à la clé SSH, par défaut c’est utilisateur@machine, ici j’ai choisi mon pseudonyme.

Pour ce connecter avec la clé privée à un serveur :

J’ai développé un petit script en Bash afin de migrer les adresses IP dans les fichiers de configuration donnés, il est utile lors d’une migration de serveur / VM où il n’est pas possible de préserver l’ip.

Le script offre aussi la possibilité de sauvegarder les fichiers dans une archive Tar avant de faire les modifications et peut ajouter automatiquement les fichiers de configurations de Apache et Bind ou de n’importe quel répertoire donné.

Le script est disponible sous licence GPL à cette adresse https://git.safranil.fr/safranil/script/blob/master/migrateip.bash.

Si vous avez des soucis ou des améliorations à proposer, vous pouvez laisser un commentaire.

Source photographique : https://www.flickr.com/photos/camknows/4712191684

La clé vfs.fs.discovery qui permet de découvrir les disques montés sur un système n’est pas forcement adapté à toutes les configurations, dans le cas d’un serveur avec CageFS qui permet de chrooté les utilisateurs, cette même clé de configuration qui fait des miracles devient vite un fardeaux !

Pour cela j’ai fait un petit script pour n’afficher que les disques réellement monté par l’OS :

Il suffit ensuite de placer ceci dans la configuration de l’agent :

Pour terminer il faut modifier le Template OS Linux > Discovery > Mounted filesystem discovery pour y placer ceci comme clé : vfs.fs.disk

Testé sur Zabbix 2.4