# Installation et configuration de Grafana ## Pré-requis - Un client Ubuntu - Un server windows server 2019 - Une adresse IP statique sur le client Ubuntu --- Avant de commencer l'installation de prometheus nous allons vérifier quelque éléments. ## Ubuntu ### Etape 1 obtention adresse ip: Faite un ping sur l'adresse suivante: ``` ping 8.8.8.8 ``` si vous recevez bien une réponse vous pouvez passer à l'étape suivante Faites un ping cette fois sur l'adresse de google ``` ping google.ch ``` :warning: Avant de continuer soyez sûr que l'adresse que vous avez est statique. ### Etape 2 mise à jour: Si ces deux rêquete on bien fonctionnée nous pouvons maintenant faire vérifier que Ubuntu est à jour. Lancer ces deux commandes: ``` sudo apt get update && apt-get upgrade -y ``` ### Etape 3 Docker: --- #### Etape 3.1 Installation: Commencez par l'installtion de docker avec cette commande: ``` sudo apt install docker.io -y ``` --- #### Etape 3.2 Group: Maintenant que docker est installé, nous allons nous assurez que vous puissiez utiliser docker sans devoir utiliser "sudo" à chaque commande.Effectuez ces commandes: ``` sudo usermod -aG docker $USER newgrp docker groups ``` Voilà vous votre utlisateur est normalement dans un groupe nommé "docker". Vous pouvez tester si cela fonctionne avec n'importe laquelle des commandes docker par exemple "docker ps", vous n'aurez plus à saisir "sudo" avant. --- #### Etape 3.3: Installez docker-compose avec cette commande: ``` sudo apt install docker-compose ``` Assurez-vous qu'il soit executable en utilisant la commande suivante: ``` sudo chmod +x /usr/local/bin/docker-compose ``` --- #### Etape 3.4: Bien il ne reste plus qu'une chose à installé sur votre client Ubuntu. Installez là avec cette commande: ``` sudo apt install prometheus ``` Voilà, votre système est maintenant prêt. --- ## Windows ### Etape 1 Windows-exporter télécharger le fichier windows-exporter via ce lien [Github](https://github.com/prometheus-community/windows_exporter/releases) Prenez la version "amd64.msi". Une fois que vous avez fait ça nous allons l'installer et le configurer. --- Faites un clique droit sur le fichier et cliquer sur installer. Une fenêtre d'installtion va s'ouvrir. Faites "next" --- Ensuite cliquez sur la petite croix à coté de "Firewall Exception", activez toutes la "feature" puis faites "next" ![win-export-firewall](https://hackmd.io/_uploads/BJdKUUni1x.png) --- Ne changez rien sur la prochaine fenêtre. Appuyez directement sur "next" ![win-export-config](https://hackmd.io/_uploads/B16K88noJx.png) --- Enfin appuyez sur "install" ![win-export-install](https://hackmd.io/_uploads/rJ-c8L2s1l.png) Attendez que l'installtion se termine. Lorsque ça sera le cas, vous pourrez appuyez sur un bouton "finish". La fenêtre se fermera d'elle même. --- ### Etape 2 test: Maintenant ouvrez le gestionnaire des tâches, et verifiez que votre processus a bien démarré. ![process-check](https://hackmd.io/_uploads/rkcju8nikg.png) --- # Ubuntu ### Etape 1.1 répertoire de travail: Nous allons créer un répertoire de travail c'est la que nous allons entreposer nos fichiers qui serviront pour les différents docker et leurs configurations. Executez ces deux commandes: ``` mkdir -p ~/Desktop/monitoring cd ~/Desktop/monitoring ``` :warning: Dès maintenant veillez à rester dans ce répertoire, sinon certaines commandes ne pourraient pas fonctionner. --- #### Etape 1.2 configurations des dockers: Créez le premier fichier "prometheus.yml" gardez la même syntaxe pour le nom des fichiers c'est important. ``` nano prometheus.yml ``` ##### Dedans, vous allez y écrire ceci: ``` global: scrape_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'grafana' static_configs: - targets: ['localhost:3000'] - job_name: 'windows' static_configs: - targets: ['IP_DU_SERVER_A_MONITORER:9182'] ``` Vous allez devoir modifier une seule chose, sur la dernière ligne, il est écrit "IP_DU_SERVER_A_MONITORER", vous allez devoir remplacer ce bout de texte par l'adresse IP que vous avez choisi pour votre server Windows 2019. --- Si vous ne savez pas l'IP que possède votre server windows 2019, il vous suffit d'aller dans gestionnaire de serveur>serveur local et vous verrez l'IP de votre carte dans la première colonne. ![win2019-ip](https://hackmd.io/_uploads/By2Ea72skl.png) --- Voici un exemple de ce à quoi votre fichier devrait resembler après cette modification. ![prometheus-yml](https://hackmd.io/_uploads/ryx4TX2sJx.png) Après avoir modifié ceci vous pouvez quitter en sauvgardant votre fichier. --- #### Etape 1.3 Le prochain fichier, s'appelle "docker-compose.yml" créer le avec la commande: ``` nano docker-compose.yml ``` ##### Dedans, vous allez y écrire ceci: ``` version: '3.8' services: prometheus: image: prom/prometheus:latest container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml networks: - monitoring grafana: image: grafana/grafana:latest container_name: grafana ports: - "3000:3000" environment: - GF_SECURITY_ADMIN_USER=admin - GF_SECURITY_ADMIN_PASSWORD=formation networks: - monitoring networks: monitoring: external: true ``` ![docker-compose-yml](https://hackmd.io/_uploads/rJQ46m3jke.png) ##### Retenez bien, que dans ce fichier se trouve vos identifiants pour vous connectez plus tard. A savoir le user "admin" avec le mot de passe "formation". Rien n'est a modifier dans ce fichier vous pouvez donc le quitter après l'avoir sauvegardé. Il faut aussi créer un réseau pour cela executer cette commande: ``` docker network create monitoring ``` --- ### 1.4 Test prometheus.yml: Avant de lancer la construction de nos docker, nous allons vérifier que prometheus.yml est corectement executable. Pour cela, utilisez "promtool" avec cette commande: ``` promtool check config prometheus.yml ``` ![promtoolcheck](https://hackmd.io/_uploads/HJz9ph6sJl.png) Voilà le résultat attendu, si ce n'est pas le cas vérifiez la syntaxe du nom du fichier ou à l'intérieur du fichier même un simple espace peut empêcher le fichier d'être corectement lu. --- ### Etape 1.5 Docker-compose: Si le deux fichier on été créer et que prometheus.yml est bien valide, executez cette commande: ``` docker-compose up -d ``` ![docker-up](https://hackmd.io/_uploads/HJGhT3pjkg.png) --- ### Etape 1.6 Test: Attendez que tout les fichiers aient été téléchargé, lorsque ce sera le cas vous devriez voir deux ligne avec marqué done comme si-dessous. ![image](https://hackmd.io/_uploads/HkIimpaiJx.png) Assurez vous que le deux docker sont bien fonctionnel, executez la commande docker p. Elle devrait vous retourner ceci: ![image](https://hackmd.io/_uploads/SyFeEppsyl.png) Assurez vous de deux choses que leur statu est bien "up" et qu'ils communique bien sur les ports comme si dessus. --- Si tout est fonctionnel, nous allons essayer de nous connecter au interfaces web des deux services. Ouvrez un navigateur et taper l'url suivante: http://localhost:3000 ![grafana-connect](https://hackmd.io/_uploads/HJbr6X2s1x.png) --- Si vous accéder bien à cette fenêtre, ouvrez un nouvel onglet mais cette fois taper l'url: http://localhost:9090 ![prometheus2](https://hackmd.io/_uploads/Syet4paokx.png) --- ## Etape 2 Configuration de Grafana: ### Etape 2.1 Data source: Allez dans le menu verticale à gauche, devlopper la liste déroulante de "connection" et cliquez sur Data sources ![data-src](https://hackmd.io/_uploads/BkUB6m2iyg.png) --- Cliquez Ensuite sur "Add data source" ![add-src](https://hackmd.io/_uploads/H1_r6m3jyx.png) --- cherchez "prometheus si il n'apparait pas directement et cliquez dessus. ![search-prom](https://hackmd.io/_uploads/ByarTQ3iyx.png) --- Vous pouvez observez que l'url n'est pas valide, il va falloir le changer pour qu'il coresponde à l'adresse IP de votre client Ubuntu. ![invalid-url](https://hackmd.io/_uploads/rk18pm3oJg.png) --- Remplacez donc comme moi si-dessous, "localhost" par l'adresse de votre client Ubuntu. ![valid-url](https://hackmd.io/_uploads/SJA8aXno1g.png) --- Descendez en bas de la page et cliquer sur "Save & test". Si l'adresse que vous avez renterz est bien correct, vous devriez voir un message de succès. ![verif-url](https://hackmd.io/_uploads/HkxP6Qnsyl.png) --- ### Etape 2.2 Dashboard: Cliquez sur "new dashboard" à coté de la barre de recherche ![new-dashboard](https://hackmd.io/_uploads/rJr2pQhskg.png) --- Lorsque vous êtes dessus cliquez sur "save" qui se trouve un peu en-dessous du bouton que vous avez utilisé juste avant. Renommer le comme vous le voulez. Et cliquez sur "save" ![save-dashboard](https://hackmd.io/_uploads/rJ_3a7hs1x.png) --- ### Etape 2.3 Import Dashboard Quand vous êtes à nouveau sur votre page par défaut du dashboard cliquez sur import. Vous arrivez sur une fenêtre comme si-dessous. Ecrivez le nombre 10467 dans le champ comme si-dessous et cliquez sur load à coté du champ de texte ![import-monitor-dns-ad](https://hackmd.io/_uploads/Hkp2t6Toyl.png) Si vous voulez d'autres Dashboards, il vous suffit de changer l'url ou utiliser l'ID du dashboard --- Dans le champ name remmettez le nom que vous avez choisi plus tôt. Ensuite, selectionnez prometheus dans la liste juste en-dessus de Import. Puis cliquez sur ce bouton ![selectionner-src](https://hackmd.io/_uploads/SkucKTpjJx.png) --- Et voilà, vous devriez avoir des Dashboards fonctionnels qui vous informe en quasi temps réel de l'état de votre server. ![dashboard-verif](https://hackmd.io/_uploads/B1IqZ_hoJg.png) --- ![dashboard](https://hackmd.io/_uploads/Bk3JkC6jJx.png) ---