structure & meta
This commit is contained in:
parent
da6d838193
commit
b25ce65735
284 changed files with 461 additions and 1000 deletions
55
posts/2018/2018-02-16-surveiller-etat-serveur.md
Executable file
55
posts/2018/2018-02-16-surveiller-etat-serveur.md
Executable file
|
|
@ -0,0 +1,55 @@
|
|||
<!-- title: Surveiller l'état du serveur -->
|
||||
<!-- category: Hébergement -->
|
||||
<!-- tag: planet -->
|
||||
|
||||
J'ai un peu compliqué l'installation de mon serveur en répartissant les
|
||||
services dans des conteneurs. J'ai un serveur HTTP NginX en frontal qui
|
||||
distribue les requêtes vers les bon conteneurs<!-- more --> en fonction du nom DNS (un
|
||||
reverse proxy). Je me retrouve donc avec une dizaine de conteneurs, partageant
|
||||
un même plan d'adressage IP, et presque autant de serveurs HTTP. J'ai eu
|
||||
besoin d'un outil qui me donne une vision globale de l'état du serveur et soit
|
||||
capable de m'alerter en cas d'incident.
|
||||
|
||||
J'aurais pu m'orienter vers des solutions de supervision (Nagios et autres),
|
||||
surtout vu mon background sur le sujet, mais le besoin est simple et les
|
||||
ressources de mon serveur sont limitées. Je n'ai pas jugé utile de dégainer
|
||||
la grosse artillerie. J'avais noté l'existence de
|
||||
[Cachet](https://cachethq.io), utilisé, notamment, [par
|
||||
Framasoft](https://status.framasoft.org), qui fournit une page de statut et
|
||||
gère les notifications (e-mail ou abonnement RSS). Cachet, pour les intimes,
|
||||
se cantonne donc à la visualisation et la notification. On crée des
|
||||
composants, on les regroupe à sa guise, et une API Rest permet d'alimenter en
|
||||
événements : changer l'état d'un composant (opérationnel, hors service,
|
||||
partiellement défaillant), déclarer une maintenance planifiée. Il y a aussi
|
||||
des indicateurs mais je n'ai pas encore exploré cette possibilité.
|
||||
|
||||
Comme pleurniché dans Diaspora, le plus dur c'est de l'installer, surtout
|
||||
quand je rate la ligne importante du manuel qui précise que PHP 5 est requis
|
||||
(la version 7 n'est pas encore supportée). Je me retrouve avec des erreurs
|
||||
bizarres sans lien évident avec la version (du moins quand on n'est pas
|
||||
PHPiste confirmé). Après une relecture du guide d'installation, plutôt bien
|
||||
fait, et correction de mon déploiement, l'installation se déroule sans
|
||||
problème avec Composer qui télécharge et installe les dépendances. Cachet est
|
||||
prévu pour un grand nombre d'utilisateurs donc une base MySQL ou PostgreSQL
|
||||
est recommandée. Pour peu d'utilisateurs il peut fonctionner avec SQLite, mon
|
||||
choix de prédilection, quand c'est possible, pour ne pas multiplier les
|
||||
serveurs de base de données, ni partager un serveur de base de données entre
|
||||
mes conteneurs.
|
||||
|
||||
Une fois installé et la configuration HTTP mise en place, on accède à
|
||||
l'interface d'administration pour créer ses objets. J'ai créé un groupe
|
||||
**Système** avec tous mes conteneurs et un groupe **Service** avec mes
|
||||
services critiques.
|
||||
|
||||

|
||||
|
||||
Pour animer les statuts des composants c'est donc indépendant de Cachet. L'API
|
||||
REST de Cachet est bien pensée et bien documentée. Elle permet de créer /
|
||||
modifier des objets ou de les animer. Je me suis limité à cette dernière
|
||||
possibilité pour l'instant en développant un programme qui récupère l'état des
|
||||
conteneurs, des services et envoie les changements d'etat à Cachet. Ce
|
||||
programme est exécuté toutes les 5 minutes. C'est sans prétention et ça répond
|
||||
à mon besoin ; le code source est [ici](https://github.com/kianby/cachetmonitor).
|
||||
|
||||
Ma page de statut est accessible ici : https://status.madyanne.fr
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue