Installation de Shinken Shinken a besoin d un utilisateur pour fonctionner. adduser m shinken On passe à l installation des dépendances python nécessaire à l installation apt-get install python-pycurl python-setuptools python-pip L installation de Shinken s effectue via pip pip --proxy=adresseproxy:8080 install shinken Cette installation nous donne l arborescence suivante /etc/shinken : toute la configuration du programme /usr/bin/shinken-* : les scripts de lancement des daemons /var/lib/shinken : les modules shinken et les plugins de supervision (on y reviendra) /var/log/shinken : secret défense On lance l outil avec son script init service shinken start Par défaut, Shinken ne se supervise que lui-même. Plus encore cette supervision est très légère. Si vous jetez un œil du côté de la configuration du host sous /etc/shinken/hosts/localhost.cfg, vous pouvez voir que ce dernier utilise un template nommé generic-host qui se contente de vérifier que l hôte est up. Nous on va y ajouter quelques vérification de base en plus sur notre hôte. Pour cela on va se servir d un pack spécialisé. Les packs sont des boites à scripts pour superviser tel ou tel périphérique. On passe sous l utilisateur Shinken pour effectuer l installation du pack su - shinken La CLI de Shinken à besoin d être initialisée afin de générer le fichier ini contenant les chemins vers les différents répertoires de configuration de l outil. shinken --init A présent on peut chercher notre pack Linux shinken search linux Ce qui donne le résultat suivant glances (david-guenault) [pack,system,linux,glances] : Standard check through checkglances.py and glances server linux-snmp (naparuba) [pack,linux,snmp] : Linux checks based on SNMP linux-ssh (naparuba) [pack,linux,ssh] : Linux checks based on SSH without any script on distant server
pack-glances (david-guenault) [pack,system,linux,glances] : Standard check through checkglances.py and glances server raspberrypi (frescha) [pack,linux,raspberrypi,server,os] : Standard checks On va choisir le pack linux-ssh qui est un mode agent. Le script ouvre une connexion ssh pour exécuter une commande sur le serveur distant et récupérer l information. Il faut savoir que ce mode n est pas le plus recommandé car il consomme plus de ressource qu une requête SNMP classique. shinken install linux-ssh Le pack s installe avec tous ses plugins dans le dossier /var/lib/shinken/libexec/. Ces plugins ont besoin d une librairie nommée python-paramiko. On repasse en root pour effectuer cette installation. exit # pour repasser root apt-get install python-paramiko su - shinken # retour sur l'user shinken Ces plugins lance une connexion ssh sur le serveur distant, en l occurrence le serveur local dans notre cas. On va donc générer une paire de clé ssh et donner la clé publique à l utilisateur shinken. ssh-keygen Ne pas saisir de passphrase sinon le script attendrait une intervention humaine pour saisir cette dernière à chaque exécution. Déploiement de la clé publique ssh-copy-id -i ~/.ssh/id_rsa shinken@localhost On va tester un plugin pour voir que tout fonctionne parfaitement /var/lib/shinken/libexec/check_load_average_by_ssh.py -H localhost Ce qui doit donner Ok: load average is good 0.59,0.27,0.15 load1=0.59;1.00;2.00;; load5=0.27;1.00;2.00;; load15=0.15;1.00;2.00;; On va donc ajouter le tag linux-ssh à la définition de notre hôte. Pour cela on édite /etc/shinken/hosts/localhost.cfg define host{ use contact_groups host_name address linux-ssh,generic-host admins localhost localhost }
Pour plus de détail sur la configuration d un hôte je vous renvois vers la documentation officiel. On relance shinken pour prendre en compte /etc/init.d/shinken restart Les alertes sont consultables dans le fichier de log tail -f /var/log/shinken/schedulerd.log Bon, une console ce n est pas top pour afficher les statuts de nos machines. On va installer l interface web de Shinken pour rendre cela plus agréable. Installation de l interface web L interface web est un module du daemon broker qui va lire, interpréter et afficher les résultats obtenus dans les fichiers de logs. L installation s effectue depuis le prompt de l utilisateur shinken shinken install webui La configuration se trouve dans le fichier /etc/shinken/modules/webui.cfg define module { module_name module_type webui webui host 0.0.0.0 port 7767 auth_secret CHANGE_ME allow_html_output 1 max_output_length 1024 manage_acl 1 play_sound 0 login_text Welcome on Shinken WebUI modules } Il faut ajouter ce module au broker principal dans le fichier /etc/shinken/brokers/broker-master.cfg modules webui
On relance shinken /etc/init.d/shinken restart Et on se connecte à la page web via son navigateur à l adresse de la machine sur le port défini dans le fichier de configuration du module webui. On se log à l aide des identifiants admin que l on retrouve dans le fichier de configuration /etc/shinken/contacts/admin.cfg define contact{ use generic-contact contact_name admin email pager password shinken@localhost 0600000000 ; contact phone number admin is_admin 1 } Et la.. fail! C est normal je vous rassure. L authentification est gérée par un module. Il faut l ajouter. Regardons du côté des modules d autentifications disponible shinken search webui auth Ce qui donne : auth-cfg-password (naparuba) [module,auth,authentification,mod-auth-cfg-password,auth-cfgpassword,cfg-password,webui] : Shinken module for UI authentification from simple password for configuration file auth-htpasswd (naparuba) [module,webui,auth,authentification] : Shinken module for UI authentification from Apache passwd files auth-pam (mingbo_wan) [module,auth,authentification,auth-cfg-pam,cfg-pam,webui] : Shinken module for UI authentification via pam
cfg-password : authentification simple basée sur le mot de passe enregistré dans la conf du contact htpassword : basé sur un fichier htaccess apache active-directory : authentification basé sur AD ou LDAP On installe le premier shinken install auth-cfg-password Il n y a rien à déclarer dans le fichier de conf du module (/etc/shinken/modules/auth_cfg_password.cfg) mais il faut quand même déclarer ce dernier comme pour les autres dans le module de webui sous /etc/shinken/modules/webui.cfg modules auth-cfg-password Et le restart qui va avec /etc/init.d/shinken restart Cette fois le login passe. Dans la vue all vous devriez voir votre hote ainsi que tous les services du pack linux-ssh. Il est normal d obtenir une erreur de type Error : cannot fetch cpu stats values from host Le plugin de récupération des informations CPU se base sur le programme sysstat. Il faut l installer sur le système. apt-get install sysstat Si l on se rend dans la vue /dashboard on a un énorme message d erreur
La aussi c est normal. Le dashboard est spécifique à chaque utilisateur. Le module WebUI à besoin de sauver les préférence de chaque utilisateur dans un fichier à plat ou une base de données. Ici on va utiliser sqlite. Installation via l utilisateur shinken shinken install sqlitedb Et on ajoute le module au module Webui sous /etc/shinken/modules/webui.cfg modules auth-cfg-password,sqlitedb Le fameux restart service shinken restart Vous pouvez à présent ajouter des widgets sur la page /dashboard Tutoriel accessible sur mespotesgeek.fr