====== Ajout d'une machine au monitoring ====== On fait l'hypothèse de l'ajout d'une machine « ''bling'' » au cluster, dont le fqdn est ''bling.cluster.chapril.org''. ===== Installation du serveur esclave ===== C'est aussi simple que cela : apt update && apt install icinga2 monitoring-plugins-chapril ===== Configuration du serveur esclave ===== Il s'agit essentiellement de configurer une connexion de confiance entre le maître et l'esclave.La configuration à proprement parler de monitoring s'effectuera ensuite sur le maître. On va commencer par créer un jeton d'authentification **[[admin:machines_virtuelles:admin|sur le maître]]** : =(^-^)=root@admin:/etc/icinga2# icinga2 pki ticket --cn bling.cluster.chapril.org deadbeef... On va ensuite lancer le node wizard ''sur le client''. Pensez à répondre oui (y) aux deux dernières questions (''Accept {config,command} from master?''). =(^-^)=root@bling:~# icinga2 node wizard Welcome to the Icinga 2 Setup Wizard! We'll guide you through all required configuration details. Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]: Starting the Node setup routine... Please specify the common name (CN) [bling.cluster.chapril.org]: Please specify the master endpoint(s) this node should connect to: Master Common Name (CN from your master setup): admin.cluster.chapril.org Do you want to establish a connection to the master from this node? [Y/n]: Y Please fill out the master connection information: Master endpoint host (Your master's IP address or FQDN): admin.cluster.chapril.org Master endpoint port [5665]: Add more master endpoints? [y/N]: N Please specify the master connection for CSR auto-signing (defaults to master endpoint host): Host [admin.cluster.chapril.org]: Port [5665]: information/base: Writing private key to '/etc/icinga2/pki/bling.cluster.chapril.org.key'. information/base: Writing X509 certificate to '/etc/icinga2/pki/bling.cluster.chapril.org.crt'. information/cli: Fetching public certificate from master (admin.cluster.chapril.org, 5665): Certificate information: Subject: CN = admin.cluster.chapril.org Issuer: CN = Icinga CA Valid From: Jun 19 09:37:04 2017 GMT Valid Until: Jun 15 09:37:04 2032 GMT Fingerprint: DE AD BE EF DE AD BE EF DE AD BE EF DE AD BE EF DE AD BE EF Is this information correct? [y/N]: y information/cli: Received trusted master certificate. Please specify the request ticket generated on your Icinga 2 master. (Hint: # icinga2 pki ticket --cn 'bling.cluster.chapril.org'): deadbeff... information/cli: Requesting certificate with ticket 'deadbeff...'. information/cli: Created backup file '/etc/icinga2/pki/bling.cluster.chapril.org.crt.orig'. information/cli: Writing signed certificate to file '/etc/icinga2/pki/bling.cluster.chapril.org.crt'. information/cli: Writing CA certificate to file '/etc/icinga2/pki/ca.crt'. Please specify the API bind host/port (optional): Bind Host []: Bind Port []: Accept config from master? [y/N]: y Accept commands from master? [y/N]: y information/cli: Disabling the Notification feature. Disabling feature notification. Make sure to restart Icinga 2 for these changes to take effect. information/cli: Enabling the Apilistener feature. Enabling feature api. Make sure to restart Icinga 2 for these changes to take effect. information/cli: Created backup file '/etc/icinga2/features-available/api.conf.orig'. information/cli: Generating local zones.conf. information/cli: Dumping config items to file '/etc/icinga2/zones.conf'. information/cli: Created backup file '/etc/icinga2/zones.conf.orig'. information/cli: Updating constants.conf. information/cli: Created backup file '/etc/icinga2/constants.conf.orig'. information/cli: Updating constants file '/etc/icinga2/constants.conf'. information/cli: Updating constants file '/etc/icinga2/constants.conf'. Done. Now restart your Icinga 2 daemon to finish the installation! Si vous avez loupé de répondre 'y' aux deux dernières questions, vous pouvez corriger ça ici : accept_config = true accept_commands = true Commenter ensuite la ligne à la fin de ''/etc/icinga2/icinga2.conf'' : // include_recursive "conf.d" Ensuite on définit localement la zone globale pour la propagation de la configuration. Il suffit d'ajouter à ''/etc/icinga2/zones.conf'' : object Zone "global-templates" { global = true } Enfin on redémarre le démon esclave : =(^-^)=root@bling:~# systemctl restart icinga2 Et c'est fini. :) Il ne reste qu'à définir l'hôte sur le maître et les services associés. ==== Ajout de l'esclave dans la zone ==== Vous avez à ce stade un esclave Icinga2 qui peut recevoir la configuration de son maître. On va faire en sorte que ça fonctionne effectivement, en ajoutant la configuration nécessaire **[[admin:machines_virtuelles:admin|sur le maître]]**. Dans le fichier de zones ''/etc/icinga2/zones.conf'', on ajoute : /* bling */ object Zone "bling.cluster.chapril.org" { endpoints = [ "bling.cluster.chapril.org" ] parent = "master" } object Endpoint "bling.cluster.chapril.org" { host = "192.168.1.42" } ==== Ajout de l'objet à la configuration ==== La définition des objets de la zone master est dans ''/etc/icinga2/zones.d/master/'' et est organisé comme suit : * une machine == 1 fichier de conf ; * un hyperviseur == 1 dossier ; * cas particulier du cluster : un dossier cluster. C'est probablement dans le dossier cluster que vous placerez ''bling.conf''. /etc/icinga2/zones.d/master/ ├── cluster │   ├── admin.conf │   ├── bastion.conf │ ├── bling.conf │   ├── dns.conf │ ├── mail.conf │ ├── pouet.conf │   └── sympa.conf ├── coon.conf ├── galanga │   └── icinga2.conf └── maine.conf Et votre fichier de conf peut ressembler à ça : object Host "bling.cluster.chapril.org" { check_command = "hostalive" address = "192.168.1.42" address6 = "dead:beef:dead:beef:dead:beef:dead:beef" vars.dhcp = true vars.client_endpoint = name /* Set custom attribute `os` for hostgroup assignment in `groups.conf`. */ vars.os = "Debian" vars.os_version = "Stretch" vars.cluster = true vars.sqlserver = "mysql" vars.httpd = "nginx" /* Define disks and attributes for service apply rules in `services.conf`. */ vars.disks["disk"] = { } vars.disks["disk /"] = { disk_partitions = "/" } vars.disks["disk /var"] = { disk_partitions = "/var" } vars.disks["disk /tmp"] = { disk_partitions = "/tmp" } vars.http_vhosts["Home page"] = { http_vhost = "chapril.org" http_uri = "/" http_string = "Cha ronronne !" http_ssl = true } /* Define processes and attributes */ vars.process["Chatonic"] = { procs_command = "python3" procs_argument = "chatonic.py" procs_critical = "1:1" } /* Define notification mail attributes for notification apply rules in `notifications.conf`. */ vars.notification["mail"] = { /* The UserGroup `icingaadmins` is defined in `users.conf`. */ groups = [ "icingaadmins" ] } } Vouc pouvez tester la configuration d'icinga avec : icinga2 daemon -C Enfin, reloadez Icinga2 sur le maître et ouvrez votre butineur sur [[https://icinga.chapril.org]] pour apprécier. systemctl reload icinga2 Pour ajouter des nouvelles sondes à la configuration, un tutoriel est disponible ici : [[admin:monitoring:create-custom-probe|Monitoring howto]] ====== Cas des BDD ====== ===== Accès MySQL pour Icinga ===== mysql> create user 'nagios' identified by 'xxx'; Query OK, 0 rows affected (0.00 sec) [client] user=nagios password=XXX ===== Accès psql pour Icinga ===== sudo -u postgres createuser -D -R -S nagios # TYPE DATABASE USER ADDRESS METHOD local template1 nagios ident