Archives par étiquette : linux

Netstat, a quoi ca sert

Je parle de netstat dans le dernier article mais à quoi ça sert ?

netstat permet d’avoir des informations sur les connexions réseaux dans un système linux.

ex : pour connaître les ports en écoute

On peut voir ici qu’un server ssh est lancé (22 est le port par defaut pour le ssh).

Un autre cas d’utilisation qui peut être utile, c’est de savoir qui occupe un port particulier.

Le résultat est sshd, il s’agit bien du process daemon pour un serveur ssh.
NB: pour utiliser cette dernière commande, il faut utiliser sudo ou etre root pour avoir accès à tous les processus.

Netstat a d’autres usages, il s’agit là des deux principaux que j’utilise au quotidien.

Zabbix et son api REST

Sans trop faire de teasing sur le prochain article, j’avais besoin de récupérer de façon dynamique une liste de serveurs. Je me suis dis que Zabbix pouvait être une bonne solution sachant qu’il est possible de regrouper différent serveur sous la forme de host groups.

J’ai pu découvrir l’API rest de zabbix qui est plutôt simple à utiliser et très bien documenter.

Mon cas d’utilisation va se décomposer en 3 étapes:

  1. Authentification
  2. Récupération du host groups
  3. Récupération des hosts

Authentification

La première étape est de récupéré un token d’authentification. Pour cela,il faut poster une requête JSON de la forme :

avec auth.dat contenant:

Cela nous renvoie une réponse la forme:

La partie importante est la chaîne de caractère qui suit result. Il s’agit du token que l’on va réutiliser pour les appels suivants.

Récupération du host groups

Avant de pouvoir récupérer les serveurs d’un groupe, je dois récupérer l’id de ce groupe. Pour l’instant je ne connais que le nom toto.

On va donc refaire une interrogation. Mais avec le json suivant:

 

On retrouve bien le token d’authentification dans la valeur du champ auth et le nom toto dans la valeur du champ name. Il s’agit d’un filtre sur les hostgroups.

Le résultat va être de la forme:

La partie à conserver est la valeur du groupid. C’est que nous allons utiliser pour la suite.

Récupération des hosts

Maintenant que nous avons l’id du hostgroup, nous pouvons interroger zabbix pour avoir la liste des serveurs de ce groupe:

Le résultat est de la forme:

Et voila, en quelques appels, on peut utiliser zabbix comme un catalogue et récupérer de façon dynamique les différents éléments qui constitue le réseau (domestique ou professionnel).

Zabbix Agent

Voyons maintenant comment configurer un agent Zabbix pour monitorer un nouveau serveur.

Il suffit d’installer le package zabbix-agent

et de faire un peu de configuration

On redemarre l’agent

Il faut ensuite l’ajouter dans la configuration de zabbix:

Configuration -> hosts -> New hosts.

Dans cette ecran, il ne faut pas oublier d’ajouter un template:

template

 

Au bout de quelques instants, vous devriez voir dans les logs (comme précédemment):

Et voila, il ne reste plus qu’a ajouter le monitoring sur les autres serveurs.

Envoi de mail en developpement

Au détour d’un article sur linux pratique (sur l’installation d’un forum discourse), je suis tombé sur un container docker permettant de tester localement l’envoi de mail. Cela peut être utile en développement pour que les mails ne partent pas aux clients finaux ou parce qu’il y a des restrictions sur les serveurs smtps.

L’utilisation est plutôt simple. Il faut démarrer le container et exporter les 8080 et 25 du container.
Le port 25 est pour l’envoi smtp et le 8080 est l’interface web de consultation des emails.

Il faut récupérer l’ip du container:

On peut déjà essayer l’envoi de mail via un telnet:

On peut ensuite accéder à l’interface web pour vérifier si le mail est bien reçu (http://172.17.0.2 dans mon cas):

mailcatcher

Et voila, il est maintenant possible de tester l’envoi de mail dans ses programmes de façon autonome.