sysadmin
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
sysadmin [2020/12/08 12:36] – [Administration système] lpieri | sysadmin [2020/12/09 11:40] (Version actuelle) – supprimée lpieri | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Administration système ====== | ||
- | |||
- | ===== Configuration du serveur ===== | ||
- | |||
- | ==== SSH ==== | ||
- | |||
- | < | ||
- | vim / | ||
- | </ | ||
- | |||
- | < | ||
- | PermitRootLogin prohibit-password # Empêche l' | ||
- | </ | ||
- | |||
- | < | ||
- | systemctl restart sshd.service | ||
- | </ | ||
- | |||
- | ==== Timezone ==== | ||
- | |||
- | < | ||
- | dpkg-reconfigure tzdata | ||
- | </ | ||
- | |||
- | ==== Updates ==== | ||
- | |||
- | < | ||
- | apt update && apt upgrade -y | ||
- | </ | ||
- | |||
- | Si demandé, conservez le fichier source. | ||
- | |||
- | ==== Nginx ==== | ||
- | |||
- | < | ||
- | apt install nginx | ||
- | </ | ||
- | |||
- | ==== MySQL ==== | ||
- | |||
- | < | ||
- | apt install mysql-server | ||
- | </ | ||
- | |||
- | < | ||
- | mysql_secure_installation | ||
- | |||
- | VALIDATE PASSWORD PLUGIN No | ||
- | |||
- | Please set the password for root here. | ||
- | |||
- | New password: | ||
- | |||
- | Re-enter new password: | ||
- | |||
- | Yes pour chacune des étapes suivantes | ||
- | </ | ||
- | |||
- | **Connexion à mysql par mot de passe** | ||
- | |||
- | < | ||
- | mysql | ||
- | </ | ||
- | |||
- | > En prenant soin de changer <hi # | ||
- | |||
- | < | ||
- | mysql> ALTER USER ' | ||
- | </ | ||
- | |||
- | < | ||
- | mysql> FLUSH PRIVILEGES; | ||
- | </ | ||
- | |||
- | < | ||
- | mysql> exit | ||
- | </ | ||
- | ===== Ajouter un nouvel utilisateur sur un serveur ===== | ||
- | |||
- | ==== Depuis l' | ||
- | |||
- | Dans l' | ||
- | |||
- | ==== Connecté au serveur en ssh avec un utilisateur ayant les droits sudo ==== | ||
- | |||
- | * Modifier le fichier **/ | ||
- | * Modifier/ | ||
- | |||
- | Plusieurs clés peuvent être ajoutées dans le fichier authorized_keys, | ||
- | |||
- | ====== Surveillance système ====== | ||
- | |||
- | La surveillance système est un processus qui consiste en la vérification périodique du bon fonctionnement de tous les composants des serveurs hébergeant les différents applicatifs logiciels. | ||
- | |||
- | Ce processus a été mis en place à la suite d'une erreur liée à l' | ||
- | |||
- | La surveillance système est composée de trois outils complémentaires : | ||
- | * L' | ||
- | * L' | ||
- | * L' | ||
- | |||
- | === Formater et mettre à disposition les données === | ||
- | |||
- | Le premier outil se nomme Promethéus, | ||
- | |||
- | **Une Time Series DataBase est une base de données optimisée pour le stockage de données horodatées** | ||
- | |||
- | C'est l' | ||
- | |||
- | {{: | ||
- | |||
- | Il permet d' | ||
- | |||
- | === Récolter les données === | ||
- | |||
- | Prometheus fonctionne avec des exporter. Ce sont des outils qui récolter les données d'un serveur ou d'un service et les enregistrer dans Prometheus. Il en existe de nombreux pour tous types d' | ||
- | |||
- | [[https:// | ||
- | |||
- | === Alerter === | ||
- | |||
- | Prometheus possède un système d' | ||
- | |||
- | [[https:// | ||
- | |||
- | === Afficher les données === | ||
- | |||
- | Enfin, il est intéressant d' | ||
- | ===== Ressources ===== | ||
- | |||
- | * [[https:// | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | |||
- | ===== Installation ===== | ||
- | |||
- | L' | ||
- | L' | ||
- | L' | ||
- | |||
- | L' | ||
- | |||
- | [[https:// | ||
- | |||
- | A la fin de ces tutoriels, il est possible d' | ||
- | |||
- | ===== Tableau de bord ===== | ||
- | |||
- | Pour répondre au plus vite au besoin de voir les données du système, il est possible d' | ||
- | |||
- | ==== Importer un tableau de bord communautaire ==== | ||
- | |||
- | - Copier l'id d'un tableau de bord [[https:// | ||
- | - Coller l'id dans Grafana [[http:// | ||
- | - Configurer la **data source** comme indiqué | ||
- | |||
- | ===== Concepts de Grafana ===== | ||
- | |||
- | [[https:// | ||
- | |||
- | ===== Gestion des utilisateurs ===== | ||
- | |||
- | Lors de l' | ||
- | |||
- | L' | ||
- | * Tous les dashboards et users appartiennent à une organization. Qui représente une entreprise. Dans la plupart des cas il n'y en a qu' | ||
- | * Au sein d'une [[https:// | ||
- | * (Optionnel) Une [[https:// | ||
- | * Les Grafana Admin ont toutes les permissions | ||
- | |||
- | Un [[https:// | ||
- | * Le rôle qu'il a au sein de son organization | ||
- | * Les permissions de la team auquel il appartient | ||
- | * Les permissions qui lui sont attribuées directement | ||
- | * Toutes les permissions si il est **Grafana Admin** | ||
- | |||
- | ===== Gestion des alarmes ===== | ||
- | |||
- | Comme expliqué plus haut, les alarmes sont gérées par AlertManager. | ||
- | |||
- | AlertManager récupère les alertes remontées par Prometheus et les dispatche aux personnes concernées. Il est aussi capable de mettre en silence certaines alertes et d'en regrouper d' | ||
- | |||
- | [[https:// | ||
- | |||
- | Le fichier de configuration global d' | ||
- | * les informations de connexions au serveur smtp | ||
- | * la liste des destinataires des alertes | ||
- | * la configuration du silence et du regroupement des alertes | ||
- | |||
- | La configuration des alertes en elle-mêmes est rédigée dans le dossier **/ | ||
- | |||
- | Dans ces fichiers sera décrit : | ||
- | * le groupe | ||
- | * le nom de l' | ||
- | * la requête prometheus qui va identifier le comportement déclenchant l' | ||
- | * le temps avant que l' | ||
- | * un label pour identifier la sévérité de l' | ||
- | * un sommaire et une description : c'est ce qu'on retrouvera dans la notification | ||
- | |||
- | Plusieurs alertes peuvent-être configurées dans un même fichier, à condition qu' | ||
- | |||
- | 2 alertes ont déjà été configurées : | ||
- | * une alerte si le serveur dev n'est plus accessible pendant plus d'une minute. | ||
- | * une alerte si le disque du serveur dev possède moins de 5% de capacité libre pendant plus de une minute. | ||
- | |||
- | **Attention !** A chaque de fois qu'un fichier d' | ||
- | * que les droits du fichier sont prometheus: | ||
- | * que le fichier est correctement construit avec la commande **promtool check rules path/ | ||
- | * relancer prometheus avec **sudo systemctl restart prometheus** | ||
- | |||
- | ===== Monitorer CouchDB ===== | ||
- | |||
- | Exporter Prometheus pour CouchDB : [[https:// | ||
- | |||
- | Cet exporter fonctionne exclusivement avec Docker il faut donc l' | ||
- | |||
- | [[https:// | ||
- | |||
- | Il faut ajouter l' | ||
- | |||
- | < | ||
- | |||
- | Puis se reconnecter. | ||
- | |||
- | L' | ||
- | |||
- | < | ||
- | docker run -d --restart always -p 9984:9984 gesellix/ | ||
- | </ | ||
- | |||
- | Ajouter l' | ||
- | |||
- | < | ||
- | - job_name: ' | ||
- | scrape_interval: | ||
- | static_configs: | ||
- | - targets: [' | ||
- | </ | ||
- | |||
- | Ajouter une rêgle d' | ||
- | |||
- | < | ||
- | dev@ubuntu1804-betterb-dev: | ||
- | groups: | ||
- | - name: couchdb.rules | ||
- | rules: | ||
- | - alert: CouchDbDownAlert | ||
- | expr: absent(couchdb_httpd_up) or couchdb_https_up < 1 | ||
- | for: 1m | ||
- | annotations: | ||
- | summary: CouchDB Node Down | ||
- | </ | ||