Zabbix Agent VitalPBX proxy : Différence entre versions
(3 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 70 : | Ligne 70 : | ||
==== Connexion ==== | ==== Connexion ==== | ||
− | mysql -uroot | + | mysql -uroot |
==== Créer une base de données ==== | ==== Créer une base de données ==== | ||
Ligne 107 : | Ligne 107 : | ||
Server=zabbix.slemoal.fr | Server=zabbix.slemoal.fr | ||
Hostname=voip.slemoal.fr | Hostname=voip.slemoal.fr | ||
+ | LogFileSize=2 | ||
DBName=zabbix_proxy | DBName=zabbix_proxy | ||
DBUser=zabbix | DBUser=zabbix | ||
DBPassword=zabbixDBpass | DBPassword=zabbixDBpass | ||
+ | ConfigFrequency=100 | ||
+ | DataSenderFrequency=10 | ||
TLSConnect=psk | TLSConnect=psk | ||
TLSAccept=psk | TLSAccept=psk | ||
TLSPSKIdentity=ZBX-PSK-01 | TLSPSKIdentity=ZBX-PSK-01 | ||
TLSPSKFile=/etc/zabbix/zabbix_proxy.psk | 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 [https://www.zabbix.com/documentation/4.0/manual/appendix/config/zabbix_proxy documentation officielle] . | 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 [https://www.zabbix.com/documentation/4.0/manual/appendix/config/zabbix_proxy documentation officielle] . | ||
Ligne 170 : | Ligne 173 : | ||
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. | 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 == | == Hôte VitalPBX == | ||
Ligne 223 : | Ligne 238 : | ||
Settings -> PBX Settings -> Mini HTTP Server | Settings -> PBX Settings -> Mini HTTP Server | ||
− | * HTTP Bind Address: | + | * HTTP Bind Address: 0.0.0.0 : 8088 |
* Enable HTTP: Yes | * Enable HTTP: Yes | ||
Version actuelle datée du 15 novembre 2021 à 23:48
Sommaire
- 1 Présentation
- 2 Zabbix proxy
- 3 Hôte VitalPBX
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
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.