Zabbix Agent VitalPBX proxy : Différence entre versions
(Page créée avec « Retour Prérequis Zabbix proxy doit être installé et fonctionnel sur le serveur VitalPBX, si ce n'est pas le cas merci de suivre cet article. Zabbix_Proxy_… ») |
|||
Ligne 1 : | Ligne 1 : | ||
[[Zabbix|Retour]] | [[Zabbix|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 | ||
+ | [[Fichier: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 -p'rootDBpass' | ||
+ | |||
+ | ==== 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 | ||
+ | DBName=zabbix_proxy | ||
+ | DBUser=zabbix | ||
+ | DBPassword=zabbixDBpass | ||
+ | TLSConnect=psk | ||
+ | TLSAccept=psk | ||
+ | TLSPSKIdentity=ZBX-PSK-01 | ||
+ | TLSPSKFile=/etc/zabbix/zabbix_proxy.psk | ||
+ | ConfigFrequency=100 | ||
+ | |||
+ | 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] . | ||
+ | |||
+ | === 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) | ||
+ | |||
+ | |||
+ | ==Zabbix== | ||
+ | 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. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
Prérequis | Prérequis |
Version du 7 novembre 2021 à 14:36
Sommaire
- 1 Présentation
- 2 Zabbix proxy
- 3 Firewall VitalPBX
- 4 Zabbix
- 5 Installer l'agent2 Zabbix
- 6 Asterisk HTTP
- 7 Configuration Zabbix
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 -p'rootDBpass'
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 DBName=zabbix_proxy DBUser=zabbix DBPassword=zabbixDBpass TLSConnect=psk TLSAccept=psk TLSPSKIdentity=ZBX-PSK-01 TLSPSKFile=/etc/zabbix/zabbix_proxy.psk ConfigFrequency=100
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)
Zabbix
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.
Prérequis
Zabbix proxy doit être installé et fonctionnel sur le serveur VitalPBX, si ce n'est pas le cas merci de suivre cet article.
Zabbix Proxy
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: 127.0.0.1 : 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 HTP
Vous pouvez tester le bon fonctionnement depuis le serveur vital pbx avec cette commande apres 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
Connectez vous en page web au serveur zabbix
https://zabbix.slemoal.fr
Ajouter le nouvel hôte au serveur Zabbix
Configuration -> Hotes : Créer un hôte
Onglet Hote
- Nom de l'hote: 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.