introduction
Alerta est une application Web permettant de consolider et de dédupliquer les alertes provenant de plusieurs systèmes de surveillance et de les visualiser sur un seul écran. Alerta peut s’intégrer à de nombreux outils de surveillance bien connus, tels que Nagios, Zabbix, Sensu, InfluxData Kapacitor, et bien d’autres.
Dans ce didacticiel, vous allez configurer Alerta et le configurer pour afficher les notifications de http://nagios.org [Nagios], le système de surveillance populaire à code source ouvert.
Conditions préalables
Pour suivre ce tutoriel, vous aurez besoin de:
-
Deux serveurs CentOS 7 configurés en suivant la le guide de configuration initiale du serveur CentOS 7, y compris un utilisateur sudo non root et un pare-feu.
-
Sur le premier serveur CentOS, sur lequel vous exécuterez Nagios, installez les composants suivants:
-
Apache, MySQL et PHP, en suivant le tutoriel How Installer Linux, Apache, MySQL, PHP (LAMP) sur CentOS 7.
-
Nagios 4, installé en suivant le tutoriel Comment installer Nagios 4 et Surveillez vos serveurs sur CentOS 7 et ses prérequis pour le configurer.
-
Sur le deuxième serveur CentOS, sur lequel nous installerons Alerta dans ce didacticiel, installez les composants suivants:
-
Nginx, installé en suivant le tutoriel Comment installer Nginx sur CentOS 7.
-
MongoDB, installé en suivant le tutoriel Comment installer MongoDB sur CentOS 7.
-
Alerta, installé en suivant les étapes 1 à 6 du tutoriel Comment surveiller Zabbix Alertes avec Alerta sur CentOS 7.
Étape 1 - Installation du module Nagios to Alerta Event Broker
Vous pouvez étendre la fonctionnalité de Nagios avec les modules Nagios Event Broker (NEB). NEB est le mécanisme d’intégration d’événements de Nagios et ses modules sont des bibliothèques partagées qui vous permettent d’intégrer d’autres services à Nagios. Dans cette étape, nous allons installer Nagios à Alerta Gateway, le module de l’ONÉ qui enverra des notifications à Alerta.
Connectez-vous à votre serveur Nagios en tant qu’utilisateur non root:
ssh sammy@
La passerelle Nagios vers Alerta n’a pas de paquet système préconfiguré, vous devrez donc le construire à partir de la source. Pour ce faire, vous devrez installer des outils de développement et des fichiers. Git doit également être installé pour pouvoir extraire le code source de GitHub.
sudo yum install -y git curl gcc make libcurl-devel
Une fois les conditions préalables installées, utilisez Git pour cloner le code source à partir du référentiel GitHub du projet:
git clone https://github.com/alerta/nagios-alerta.git
Ensuite, passez au nouveau répertoire + nagios-alerta +
:
cd nagios-alerta
Puis compilez le module + nagios-alerta +
en utilisant + make +
:
make nagios4
Vous verrez le résultat suivant:
Outputcd ./src && make nagios4
make[1]: Entering directory `/root/nagios-alerta/src'
gcc -fPIC -g -O2 -DHAVE_CONFIG_H -I../include -I../include/nagios4 -lcurl -o alerta-neb.o alerta-neb.c -shared -lcurl
make[1]: Leaving directory `/root/nagios-alerta/src'
Si vous voyez quelque chose de différent, assurez-vous que toutes les conditions préalables sont installées.
Maintenant, lancez la tâche d’installation:
sudo make install
Vous verrez cette sortie, indiquant que le module a été installé dans + / usr / lib / nagios +
:
Outputcd ./src && make install
make[1]: Entering directory `/root/nagios-alerta/src'
[ -d /usr/lib/nagios ] || mkdir /usr/lib/nagios
install -m 0644 alerta-neb.o /usr/lib/nagios
make[1]: Leaving directory `/root/nagios-alerta/src'
Avec le module installé, nous pouvons configurer Nagios pour utiliser ce nouveau module.
Étape 2 - Configuration du module Nagios-to-Alerta
Configurons Nagios pour qu’il envoie des messages de notification à Alerta.
Commencez par activer le module de courtier Alerta nouvellement installé dans le fichier de configuration principal de Nagios. Ouvrez le fichier de configuration Nagios dans votre éditeur:
sudo vi /usr/local/nagios/etc/nagios.cfg
Recherchez la section contenant les directives + broker_module +
:
/usr/local/nagios/etc/nagios.cfg
...
# EVENT BROKER MODULE(S)
# This directive is used to specify an event broker module that should
# by loaded by Nagios at startup. Use multiple directives if you want
# to load more than one module. Arguments that should be passed to
# the module at startup are separated from the module path by a space.
#
[...]
#broker_module=/somewhere/module1.o
#broker_module=/somewhere/module2.o arg1 arg2=3 debug=0
...
Pour configurer le module Alerta, vous devez fournir deux arguments obligatoires:
-
* URL *: adresse utilisée pour communiquer avec l’API Alerta. Vous l’avez configuré à l’étape 3 du didacticiel Comment suivre les alertes Zabbix avec Alerta sur CentOS 7.
-
* clé *: la clé d’API que vous avez créée à l’étape 4 du didacticiel How Pour surveiller les alertes Zabbix avec Alerta sur CentOS 7. Vous en avez besoin pour vous authentifier auprès d’Alerta et pour poster des événements.
Ajoutez cette ligne au fichier pour configurer l’intégration Alerta:
/usr/local/nagios/etc/nagios.cfg
...
broker_module=/usr/lib/nagios/alerta-neb.o http:// key=
...
Vous pouvez également spécifier d’autres arguments facultatifs:
-
* env *: Ceci spécifie le nom de l’environnement. Le nom de l’environnement par défaut est
+ Production
. -
* hard_only *: Transfère les résultats dans l’état Hard uniquement. Vous pouvez trouver plus d’informations sur les types d’état Nagios à l’adresse dans la documentation Nagios. Réglez ceci sur
+ 1 +
pour activer ce mode. -
* debug *: - active le mode debug pour le module. Définissez ceci sur
+ 1 +
pour activer ce mode.
Pour spécifier toutes ces options, utilisez plutôt cette ligne:
/usr/local/nagios/etc/nagios.cfg
...
broker_module=/usr/lib/nagios/alerta-neb.o http:// key= env= hard_only= debug=
...
Enregistrez le fichier et quittez l’éditeur.
Pour identifier les alertes par nom d’environnement et de service, vous devez configurer ces noms à l’aide de Nagios https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/customobjectvars.html [ Variables d’objet personnalisé]. Pour ce faire, utilisez les variables + _Environment +
et + _Service +
dans votre configuration. Laissons les configurer maintenant.
Ouvrez le fichier de configuration d’objet hôte Nagios par défaut, que vous trouverez dans le répertoire + / usr / local / nagios / etc / objects / +
:
sudo vi /usr/local/nagios/etc/objects/localhost.cfg
Nous marquerons toutes les alertes avec cet hôte comme des alertes * Production * et nous appellerons le service par défaut * Nagios *. Recherchez la définition d’hôte suivante:
/usr/local/nagios/etc/objects/localhost.cfg
...
define host{
use linux-server ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name localhost
alias localhost
address 127.0.0.1
}
...
Ajoutez les valeurs + _Environment +
et + _Service +
à la configuration:
/usr/local/nagios/etc/objects/localhost.cfg
...
host_name localhost
alias localhost
address 127.0.0.1
}
...
Marquez maintenant tous les événements associés à un manque d’espace sur la partition système en tant qu’alerte * System *. Localisez cette section du fichier qui définit comment vérifier l’espace disponible:
/usr/local/nagios/etc/objects/localhost.cfg
...
define service{
use local-service ; Name of service template to use
host_name localhost
service_description Root Partition
check_command check_local_disk!20%!10%!/
}
...
Modifiez-le pour l’associer au service + System +
:
/usr/local/nagios/etc/objects/localhost.cfg
...
define service{
use local-service ; Name of service template to use
host_name localhost
service_description Root Partition
check_command check_local_disk!20%!10%!/
}
...
Enregistrez le fichier et quittez l’éditeur. Redémarrez Nagios pour appliquer ces nouveaux paramètres:
sudo systemctl restart nagios.service
Assurez-vous que le service est en cours d’exécution en vérifiant son statut:
systemctl status nagios.service
Vous verrez le résultat suivant:
Output...
Jul 01 08:44:31 nagios nagios[8914]: [alerta] Initialising Nagios-Alerta Gateway module, v3.4.1
Jul 01 08:44:31 nagios nagios[8914]: [alerta] debug is off
Jul 01 08:44:31 nagios nagios[8914]: [alerta] states=Hard/Soft
Jul 01 08:44:31 nagios nagios[8914]: [alerta] Forward service checks, host checks and downtime to http://your_alerta_server_ip/api
Jul 01 08:44:31 nagios nagios[8914]:
Jul 01 08:44:31 nagios nagios[8914]: Successfully launched command file worker with pid 8920
Maintenant, Nagios enverra une notification dès que tout système ou service sera désactivé. Générons un événement test.
Étape 3 - Générer une alerte de test pour vérifier l’intégration de Nagios-Alerta
Générons une alerte test pour s’assurer que tout est connecté. Par défaut, Nagios assure le suivi de la quantité d’espace disque disponible sur votre serveur. Nous allons créer un fichier temporaire assez volumineux pour déclencher une alerte d’utilisation du système de fichiers de Nagios.
Premièrement, déterminez combien d’espace libre vous avez sur le serveur Nagios. Vous pouvez utiliser la commande + df +
pour découvrir:
df -h
Vous verrez une sortie comme celle-ci:
Output Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 3.1G 17% /
Regardez la quantité d’espace libre disponible. Dans ce cas, l’espace libre est + 16 Go +
. Votre espace libre peut différer.
Utilisez la commande + fallocate +
pour créer un fichier occupant plus de 80% de l’espace disque disponible, ce qui devrait suffire à déclencher l’alerte:
fallocate -l 14G /tmp/temp.img
En quelques minutes, Nagios déclenchera une alerte concernant la quantité d’espace disque disponible et enverra le message de notification à Alerta. Vous verrez cette nouvelle notification dans le tableau de bord Alerta:
image: https: //assets.digitalocean.com/articles/alerta_nagios_cent7/xPCO3K0.png [Alerte affichant l’alerte d’espace libre de Nagios]
Maintenant que vous savez que les alertes fonctionnent, supprimez le fichier temporaire que vous avez créé afin de pouvoir récupérer votre espace disque:
rm -f /tmp/temp.img
Après une minute, Nagios enverra le message de récupération. L’alerte disparaîtra alors du tableau de bord principal Alerta, mais vous pouvez afficher tous les événements fermés en sélectionnant * Fermé *.
image: https: //assets.digitalocean.com/articles/alerta_nagios_cent7/NrCfEUV.png [Alertes fermées d’Alerta]
Vous pouvez cliquer sur la ligne d’événement pour afficher plus de détails.
Conclusion
Dans ce tutoriel, vous avez configuré Nagios pour envoyer des notifications à un autre serveur exécutant Alerta.
Alerta vous offre un emplacement idéal pour suivre les alertes de nombreux systèmes. Par exemple, si certaines parties de votre infrastructure utilisent Nagios et que d’autres utilisent Zabbix, vous pouvez fusionner les notifications des deux systèmes dans un seul panneau.