Zabbix Agent VitalPBX proxy

De SLM - MediaWiki

Retour

Présentation

Dans cet article nous allons voir comment superviser l'infrastructure VOIP d'un client sans créer de règle NAT chez celui ci.

Pour cela nous allons installer et configurer Zabbix_Proxy qui aura en charge de récolter les informations en local chez le client puis de les envoyer au serveur Zabbix.

Nous verrons également comment monitorer le serveur VitalPBX (asterisk) via ce proxy.

Même si ce n'est pas renseigné dans cet article, Il serrait complètement envisageable de monitorer d'autre équipement tel que les switchs, passerelle T0, routeur... sur le même principe en se servant du proxy installé sur le serveur VitalPBX.

Zabbix proxy

Description

Le proxy Zabbix est un service qui peut collecter des données de performances et de disponibilité à partir des terminaux pour le compte du serveur Zabbix .

Vous pouvez utiliser un proxy pour surveiller les emplacements distants derrière le pare-feu ou les emplacements dont la communication n'est pas fiable et pour décharger le serveur Zabbix dans les grands environnements.

Dans notre exemple nous allons installer zabbix_proxy sur un serveur VOIP VitalPBX sous centos 7 Example of zabbix proxy architecture.png

Il est préférable que la version de proxy Zabbix corresponde à la version du serveur. Vous pouvez vérifier la version du serveur Zabbix avec la commande:

zabbix_server -V
zabbix_server (Zabbix) 6.0.0alpha4

Vu que toute règle comporte des exceptions, ça ne sera pas le cas dans cet article ou nous aurons notre serveur en 6.0 et le proxy en 5.4 pour une raison énoncé un peu plus tard.

Voici les versions de notre serveur VOIP en date de cet article

Version        : 3.1.2-1
Asterisk       : Asterisk 18.6.0
Linux Version  : CentOS Linux release 7.9.2009 (Core)


Installation du dépôt

Rendez vous sur le site ci-dessous afin de récupérer le lien de la version relative à votre serveur. https://repo.zabbix.com/zabbix/

Connectez vous en ssh sur votre serveur VitalPBX

On commence par mettre à jour le système

yum update
yum upgrade

Récupérer le paquet permettant la configuration du dépôt en fonction de votre version MariaDB

Zabbix_Proxy V6.0 nécessite une Version de MariaDB de 10.5 ou supérieur.

Notre probleme est que la version installé par VitalPBX au jour de cet article est 10.4.7.

Une mise à jour de celle ci n'est pas si simple à cause de la suppression de dépendances lié à la procédure.

Vérifier votre version Mariadb

mysql -uroot -e "SHOW GLOBAL VARIABLES LIKE 'version';"

MatriaDB < 10.5 (Zabbix_proxy V 5.4.7-1)

rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/$(rpm -E %{rhel})/x86_64/zabbix-release-5.4-1.el$(rpm -E %{rhel}).noarch.rpm

MatriaDB >= 10.5 (Zabbix_proxy V 6.0.0)

rpm -Uvh https://repo.zabbix.com/zabbix/5.5/rhel/$(rpm -E %{rhel})/x86_64/zabbix-release-5.5-1.el$(rpm -E %{rhel}).noarch.rpm

Vider le cache yum

yum clean all

Installation de zabbix-proxy

Lancer la commande d'installation

yum install zabbix-proxy-mysql zabbix-sql-scripts

Base de données

Dans cette installation, j'utiliserai le mot de passe zabbixDBpass comme mot de passe de la base de données Zabbix. Pensez à changer votre mot de passe pour des raisons de sécurité évident.

Connexion

mysql -uroot

Créer une base de données

create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbixDBpass';
exit

Importer le schéma de base de données initial

Importer un schéma de base de données pour le serveur proxy (peut durer jusqu'à 5 minutes) :

zcat /usr/share/doc/zabbix-sql-scripts/mysql/schema.sql.gz | mysql -uzabbix -p'zabbixDBpass' zabbix_proxy

Configuration du chiffrement PSK sur le proxy Zabbix

Bien que Zabbix supporte le cryptage par certificat, la mise en place d'une autorité de certification dépasse le cadre de ce tutoriel. Mais vous pouvez utiliser des clés pré-partagées (PSK) pour sécuriser la connexion entre le serveur et l'agent.

générez une PSK

sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_proxy.psk"
chmod 644 /etc/zabbix/zabbix_proxy.psk

Montrez la clé en utilisant cat pour que vous puissiez la copier quelque part :

cat /etc/zabbix/zabbix_proxy.psk

La clé ressemblera à quelque chose comme ça :

75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

Gardez-la pour plus tard ; vous en aurez besoin pour configurer l'hôte.

Configuration du proxy Zabbix

Dans notre configuration, les serveurs auront ses noms:

  • proxy Zabbix: voip.slemoal.fr
  • Serveur Zabbix: zabbix.slemoal.fr

veuillez les modifier en conséquence pour qu'ils correspondent à votre environnement.

Modifier le fichier zabbix_proxy.conf avec la commande :

nano /etc/zabbix/zabbix_proxy.conf
Server=zabbix.slemoal.fr 
Hostname=voip.slemoal.fr 
LogFileSize=2
DBName=zabbix_proxy 
DBUser=zabbix
DBPassword=zabbixDBpass
ConfigFrequency=100
DataSenderFrequency=10
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=ZBX-PSK-01
TLSPSKFile=/etc/zabbix/zabbix_proxy.psk

Le paramètre "ConfigFrequency" définit la fréquence à laquelle le proxy récupère les données de configuration du serveur Zabbix en quelques secondes. Vous pouvez en savoir plus sur les paramètres de configuration du proxy dans la documentation officielle .

Démarrer et activer le service proxy Zabbix

Redémarrez le service proxy et configurez-le pour qu'il se lance au démarrage :

systemctl restart zabbix-proxy
systemctl enable zabbix-proxy

Vérifier l'état

systemctl status zabbix-proxy

En cas de soucis, les logs se situe dans /var/log/zabbix/zabbix-proxy.log

Firewall VitalPBX

Se rendre sur l'interface Web de VitalPBX

Admin -> Pare feu -> Service : Add Service
  • Nom: Agent Zabbix
  • Port: 10050-10051
  • Protocole: TCP

Save

Admin -> Pare feu -> Règle : Add Rule
  • Service: Agent Zabbix
  • Source:
  • Destination:
  • Action: Accepter

Save

Appliquer (Fleche rouge en haut à droite)


Configuration Zabbix Server

Connectez vous en page web au serveur zabbix

https://zabbix.slemoal.fr

Ajouter le nouveau proxy au serveur Zabbix

Administration -> Proxys : Créer un proxy

Onglet Hote

  • Nom de l'hote: voip.slemoal.fr
  • Mode proxy: Actif
  • Adresse du proxy: Vide
  • Description: facultatif


Onglet Chiffrement

  • Connexion du proxy: PSK
  • identité PSK: ZBX-PSK-01
  • PSK: 75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

Enfin, cliquez sur le bouton "Ajouter" au bas du formulaire pour créer l'hôte.

Immédiatement après avoir ajouté un proxy au frontend, vous serez informé que le proxy n'a jamais été vu.

Cependant, si vous attendez 100 secondes, le statut « Dernière vue (âge) » affichera des secondes à la place « Jamais », ce qui signifie que le proxy communique avec le serveur.

Problème

Si le serveur ne reçois rien de la part du proxy, assurez vous que le pare feu ne bloque pas le port 10050 en sortie

Connectez vous en ssh sur le zabbix_proxy

curl portquiz.net:10051

Si le port n'est pas bloqué vous devriez avoir le message:

Port 10051 test successful!
Your IP: 62.160.26.242

Si le port est bloqué, cherchez en un avec la méthode si dessus entre 1024 et 32767 qui ne soit pas bloqué (ex: 8080) et créer une règle NAT sur le routeur du site de votre serveur zabbix afin de rediriger le port ouvert vers le 10051

Hôte VitalPBX

Installer l'agent2 Zabbix

Connectez vous en CLI au serveur Centos

Installation de zabbix-agent

Lancer la commande d'installation

yum install zabbix-agent2

Configuration de zabbix-agent2

Les fichiers de configuration de zabbix-agent2 se trouvent dans

nano /etc/zabbix/zabbix_agent2.conf
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=voip.slemoal.fr 

Nous utiliserons les paramètres de chiffrage PSK généré pour le proxy

TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=ZBX-PSK-01
TLSPSKFile=/etc/zabbix/zabbix_proxy.psk

Enregistrez et fermez le fichier.

Vous pouvez maintenant redémarrer l'agent Zabbix et le configurer pour qu'il démarre au moment du démarrage :

systemctl restart zabbix-agent2
systemctl enable zabbix-agent2

Vérifiez que l'agent Zabbix fonctionne correctement :

systemctl status zabbix-agent2

Asterisk HTTP

Configuration AMI

Connectez vous en ligne de commande sur le serveur VitalPBX Editer le fichier /etc/asterisk/vitalpbx/manager__10-general.conf

webenabled = yes

Exemple fichier:

[general]
enabled = yes
port = 5038
bindaddr = 0.0.0.0
displayconnects = no
webenabled = yes

Redémarrer le service

asterisk -rx "manager reload"


Connectez vous en page web à l'interface VitalPBX

Settings -> PBX Settings -> Mini HTTP Server
  • HTTP Bind Address: 0.0.0.0 : 8088
  • Enable HTTP: Yes

Création Utilisateur AMI

Settings -> PBX Settings -> Utilisateurs AMI
  • Nom d'utilisateur AMI: zabbix
  • Mot de passe AMI: <Mot de passe Autogeneré>
  • Description: Agent Zabbix
  • Permission en lecture: any
  • Permission en écriture: Rien
  • Interdits: 0.0.0.0/0.0.0.0
  • Autorisés: 127.0.0.1/255.255.255.0

Sauvegarder et appliquer la configuration

Test AMI HTTP

Vous pouvez tester le bon fonctionnement depuis le serveur vital pbx avec cette commande après avoir modifié le mot de passe

curl "http://127.0.0.1:8088/rawman?action=login&username=zabbix&secret=lemotdepasse"

Vous devriez avoir le message:

Response: Success
Message: Authentication accepted

Configuration Zabbix Serveur

Connectez vous en page web au serveur zabbix

https://zabbix.slemoal.fr

Ajouter le nouvel hôte au serveur Zabbix

Configuration -> Hôtes : Créer un hôte

Onglet Hôte

  • Nom de l'hôte: voip.slemoal.fr
  • Groupes: <Nom du client> <VOIP>
  • Interfaces: Ajouter | Agent | Ip: 127.0.0.1 | Port 10050
  • Surveillé via le proxy: voip.slemoal.fr
  • Activer

Onglet Modèle

  • Link new templates: Templates/Operating systems -> Linux by Zabbix agent
  • Link new templates: Templates/telephony -> Asterisk by HTTP

Onglet Macro -> Macro d'hôte

Macro Valeur Type Description
{$AMI.SECRET} Le mot de passe AMI Texte The Asterisk Manager secret
{$AMI.URL} http://127.0.0.1:8088/rawman Texte The Asterisk Manager API URL in the format `<scheme>://<host>:<port>/<prefix>/rawman`

Onglet Chiffrement

  • Connexion à l'hôte: PSK
  • Connexion de l'hôte: PSK
  • identité PSK: ZBX-PSK-01
  • PSK: 75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

Enfin, cliquez sur le bouton "Ajouter" au bas du formulaire pour créer l'hôte.

Vous verrez votre nouvel hôte dans la liste.

Attendez une minute et rechargez la page pour voir les étiquettes vertes indiquant que tout fonctionne bien et que la connexion est chiffrée.