L’auteur a choisi le COVID-19 Relief Fund pour recevoir un don dans le cadre du programme Write for DOnations.
Grafana est un outil de visualisation et de surveillance de données open-source qui s’intègre à des données complexes provenant de sources telles que Prometheus, InfluxDB, Graphite et ElasticSearch. Grafana vous permet de créer des alertes, des notifications et des filtres ad hoc pour vos données tout en facilitant la collaboration avec vos coéquipiers grâce aux fonctionnalités de partage intégrées.
Dans ce tutoriel, vous allez installer Grafana et le sécuriser avec un certificat SSL et un proxy inverse Nginx. Une fois Grafana mis en place, vous aurez la possibilité de configurer l’authentification des utilisateurs via GitHub, ce qui vous permettra de mieux organiser les autorisations de vos équipes.
Pour suivre ce tutoriel, vous aurez besoin de :
sudo
et un pare-feu configuré avec ufw
.your_domain
tout au long. Vous pouvez acheter un nom de domaine sur Namecheap, en obtenir un gratuitement sur Freenom, ou utiliser le bureau d’enregistrement de domaine de votre choix.your_domain
pointant sur l’adresse IP publique de votre serveur.www.your_domain
pointant à l’adresse IP publique de votre serveur.Au cours de cette première étape, vous allez installer Grafana sur votre serveur Ubuntu 20.04. Vous pouvez installer Grafana soit en le téléchargeant directement à partir de son site web officiel soit en passant par un référentiel APT. Comme un référentiel APT facilite l’installation et la gestion des mises à jour de Grafana, vous utiliserez cette méthode dans ce tutoriel.
Téléchargez la clé GPG de Grafana avec wget
, puis acheminez la sortie à apt-key
Cela ajoutera la clé à la liste des clés de confiance de votre installation APT, ce qui vous permettra de télécharger et de vérifier le paquet Grafana signé par GPG :
- wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
Dans cette commande, l’option -q
désactive le message de mise à jour de l’état de wget
, et -O
génère le fichier que vous avez téléchargé sur le terminal. Ces deux options garantissent que seuls le contenu du fichier téléchargé sont acheminés sur apt-key
Ensuite, ajoutez le référentiel Grafana à vos sources APT :
- sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
Actualisez votre cache APT pour mettre à jour vos listes de paquets :
- sudo apt update
Vous pouvez maintenant passer à l’installation :
- sudo apt install grafana
Une fois que Grafana est installé, utilisez systemctl
pour démarrer le serveur Grafana :
- sudo systemctl start grafana-server
Ensuite, vérifiez que Grafana fonctionne en vérifiant l’état du service :
- sudo systemctl status grafana-server
Vous recevrez un résultat similaire à celui-ci :
Output● grafana-server.service - Grafana instance
Loaded: loaded (/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2020-05-21 08:08:10 UTC; 4s ago
Docs: http://docs.grafana.org
Main PID: 15982 (grafana-server)
Tasks: 7 (limit: 1137)
...
Ce résultat contient des informations sur le processus de Grafana, y compris son statut, l’identificateur principal du processus (PID), et plus encore. active (running)
montre que le processus fonctionne correctement.
Enfin, activez le service pour démarrer automatiquement Grafana au boot :
- sudo systemctl enable grafana-server
Vous recevrez le résultat suivant :
OutputSynchronizing state of grafana-server.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable grafana-server
Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.
Cela confirme que systemd
a créé les liens symboliques nécessaires pour démarrer Grafana automatiquement.
Grafana est maintenant installé et prêt à être utilisé. Ensuite, vous allez sécuriser votre connexion à Grafana avec un proxy inverse et un certificat SSL.
L’utilisation d’un certificat SSL garantira la sécurisation de vos données en cryptant la connexion à destination et en provenance de Grafana. Mais, pour utiliser cette connexion, vous devrez d’abord reconfigurer Nginx comme proxy inverse pour Grafana.
Ouvrez le fichier de configuration Nginx que vous avez créé lorsque vous avez configuré le bloc serveur Nginx avec Let’s Encrypt dans les Conditions préalables. Vous pouvez utiliser n’importe quel éditeur de texte, mais pour ce tutoriel, nous utiliserons nano
:
- sudo nano /etc/nginx/sites-available/your_domain
Localisez le bloc suivant :
...
location / {
try_files $uri $uri/ =404;
}
...
Comme vous avez déjà configuré Nginx pour communiquer via SSL et que tout trafic web vers votre serveur passe déjà par Nginx, vous n’avez qu’à indiquer à Nginx de transmettre toutes les requêtes à Grafana, qui fonctionne sur le port 3000
par défaut.
Supprimez la ligne try_files
existante dans ce bloc de localisation
et remplacez-le par l’option proxy_pass
:
...
location / {
proxy_pass http://localhost:3000;
}
...
Ceci fera correspondre le proxy au port approprié. Une fois que vous avez terminé, enregistrez et fermez le fichier en appuyant sur CTRL+X
, Y
, puis ENTER
si vous utilisez nano
.
Maintenant, testez les nouveaux paramètres pour vous assurer que tout est configuré correctement :
- sudo nginx -t
Vous recevrez le résultat suivant :
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Enfin, activez les modifications en rechargeant Nginx :
- sudo systemctl reload nginx
Vous pouvez maintenant accéder à l’écran de connexion Grafana par défaut en pointant votre navigateur web sur https://your_domain
. Si vous ne parvenez pas à joindre Grafana, vérifiez que votre pare-feu est configuré pour autoriser le trafic sur le port 443
et ensuite retracez les instructions précédentes.
La connexion à Grafana étant cryptée, vous pouvez maintenant mettre en place des mesures de sécurité supplémentaires, en commençant par changer les identifiants administratifs par défaut de Grafana.
Comme chaque installation Grafana utilise les mêmes identifiants administratifs par défaut, il est préférable de changer vos informations de connexion dès que possible. Au cours de cette étape, vous allez mettre à jour les identifiants pour améliorer la sécurité.
Commencez par aller sur https://your_domain
à partir de votre navigateur web. Cela fera apparaître l’écran de connexion par défaut où vous verrez le logo Grafana, un formulaire vous demandant de saisir une adresse e-mail (ou un nom d’utilisateur) et un mot de passe, un bouton de connexion et un lien Mot de passe oublié ?.
Entrez admin
dans les champs Email ou nom d’utilisateur et Mot de passe puis cliquez sur le Bouton Connexion.
À l’écran suivant, vous serez invité à mieux sécuriser votre compte en changeant le mot de passe par défaut :
Entrez le mot de passe que vous souhaitez commencer à utiliser dans les champs Nouveau mot de passe et Confirmez le nouveau mot de passe.
À partir de là, vous pouvez cliquer sur Envoyer pour enregistrer les nouvelles informations ou appuyez sur Passer pour sauter cette étape. Si vous sautez, vous serez invité à changer le mot de passe la prochaine fois que vous vous connecterez.
Pour augmenter la sécurité de votre configuration Grafana, cliquez sur Envoyer. Vous accédez au tableau de bord Bienvenue à Grafana :
Vous avez maintenant sécurisé votre compte en changeant les identifiants par défaut. Ensuite, vous allez apporter des modifications à votre configuration Grafana pour que personne ne puisse créer un nouveau compte Grafana sans votre permission.
Grafana offre des options qui permettent aux visiteurs de créer des comptes d’utilisateurs pour eux-mêmes et de prévisualiser les tableaux de bord sans s’enregistrer. Lorsque Grafana n’est pas accessible via Internet ou lorsque vous travaillez avec des données accessibles au public comme des statuts du service, vous pouvez vouloir autoriser ces fonctionnalités. Cependant, lorsque vous utilisez Grafana en ligne pour travailler avec des données sensibles, l’accès anonyme peut poser un problème de sécurité. Pour résoudre ce problème, modifiez la configuration de Grafana.
Commencez par ouvrir le fichier de configuration principal de Grafana pour l’éditer :
- sudo nano /etc/grafana/grafana.ini
Localisez la directive suivante allow_sign_up
sous le titre [users]
:
...
[users]
# disable user signup / registration
;allow_sign_up = true
...
Activer cette directive avec true
ajoute un bouton Sign up à l’écran de connexion ce qui permet aux utilisateurs de s’enregistrer et d’accéder à Grafana.
Désactiver cette directive avec false
supprime le bouton Sign up et renforce la sécurité et la confidentialité de Grafana.
Décommentez cette directive en supprimant le ;
au début de la ligne puis en réglant l’option sur false
:
...
[users]
# disable user signup / registration
allow_sign_up = false
...
Ensuite, localisez la directive enabled
suivante sous le titre [auth.anonymous]
:
...
[auth.anonymous]
# enable anonymous access
;enabled = false
...
Définir enabled
sur true
donne aux utilisateurs non enregistrés accès à vos tableaux de bord; définir cette option sur false
limite l’accès du tableau de bord aux utilisateurs enregistrés seulement.
Décommentez cette directive en supprimant le ;
au début de la ligne puis en réglant l’option sur false
.
...
[auth.anonymous]
# enable anonymous access
enabled = false
...
Sauvegardez le fichier et quittez votre éditeur de texte.
Pour activer les changements, redémarrez Grafana :
- sudo systemctl restart grafana-server
Vérifiez que tout fonctionne en vérifiant le statut service de Grafana :
- sudo systemctl status grafana-server
Comme auparavant, le résultat fera rapport que Grafana est actif (en cours d'exécution)
.
Maintenant, pointez votre navigateur web sur https://your_domain
. Pour revenir à l’écran d’inscription, amenez votre curseur sur votre avatar en bas à gauche de l’écran et cliquez sur l’option Déconnexion qui apparaît.
Une fois que vous vous êtes déconnecté, vérifiez qu’il n’y a pas de bouton Sign up et que vous ne pouvez pas vous connecter sans saisir des identifiants de connexion.
À ce stade, Grafana est entièrement configuré et prêt à être utilisé. Ensuite, vous pouvez simplifier le processus de connexion pour votre organisation en vous authentifiant via GitHub.
Pour une approche alternative a l’ouverture de session, vous pouvez configurer Grafana pour une authentification via GitHub, ce qui permet un accès à tous les membres des organisations GitHub autorisées. Cela peut s’avérer particulièrement utile lorsque vous souhaitez autoriser plusieurs développeurs à collaborer et accéder aux mesures sans avoir à créer des identifiants spécifiques à Grafana.
Commencez par vous connecter à un compte GitHub associé à votre organisation puis naviguez sur votre page profil GitHub à l’adresse https://github.com/settings/profile
.
Changez le contexte de paramétrage en cliquant sur votre nom dans la partie gauche de l’écran, puis en sélectionnant votre organisation dans le menu déroulant. Cela changera le contexte des paramètres personnels aux paramètres de l’organization.
À l’écran suivant, vous verrez votre profil d’organisation où vous pouvez changer des paramètres comme votre nom d’affichage de l’organization, votre Email d’organisation et votre URL d’organisation.
Comme Grafana utilise OAuth — une norme ouverte ouvert permettant à des tiers distants d’accéder à des ressources locales — ; pour authentifier des utilisateurs via GitHub, vous devrez créer une nouvelle application OAuth dans GitHub.
Cliquez sur le lien OAuth Apps sous Paramètres du développeur sur le côté inférieur gauche de l’écran.
Si vous n’avez pas encore d’applications OAuth associées à votre organisation sur GitHub, vous serez informé qu’il n’y a pas d’applications détenue par votre organisation. Sinon, vous verrez une liste des applications OAuth déjà connectées à votre compte.
Cliquez sur le bouton New OAuth App pour continuer.
À l’écran suivant, remplissez les détails suivants sur votre installation Grafana :
https://your_domain
dans ce champ, en remplaçant your_domain
par votre domaine.https://your_domain/login/github
.Gardez à l’esprit que les utilisateurs de Grafana qui se connectent via GitHub verront les valeurs que vous avez saisies dans les trois premiers champs précédents, alors assurez-vous de saisir quelque chose de significatif et approprié.
Une fois terminé, le formulaire ressemblera à ceci :
Cliquez sur le bouton vert Enregistrer l’application
Vous allez maintenant être redirigé vers une page contenant l’ID Client et le secret Client associé à votre nouvelle application OAuth. Notez les deux valeurs, car vous devrez les ajouter au fichier de configuration principal de Grafana pour compléter la configuration.
Avertissement : Veillez à garder votre ID Client et votre secret Client dans un endroit sécurisé et non public, car ils peuvent être utilisés comme base d’une attaque.
Avec votre application GitHub OAuth créée, vous êtes maintenant prêt à reconfigurer Grafana pour utiliser GitHub pour l’authentification.
Pour terminer l’authentification GitHub pour votre configuration Grafana, vous allez maintenant apporter quelques modifications à vos fichiers de configuration Grafana.
Pour commencer, ouvrez le fichier de configuration principal de Grafana.
- sudo nano /etc/grafana/grafana.ini
Localisez le titre [auth.github]
et décommentez cette section en supprimant le ;
au début de chaque ligne sauf ;allowed_domains =
et ;team_ids =
, qui ne sera pas modifié dans ce tutoriel.
Ensuite, procédez aux modifications suivantes :
enabled
et allow_sign_up
sur true
. Cela activera l’Authentification GitHub et permettra aux membres de l’organisation autorisée de créer eux-mêmes des comptes. Notez que ce paramètre est différent de la propriété allow_sign_up
sous [users]
que vous avez changé à l’étape 4.client_id
et client_secret
sur les valeurs que vous avez obtenues lors de la création de votre application GitHub OAuth.allowed_organizations
sur le nom de votre organisation pour vous assurer que seuls les membres de votre organisation peuvent s’inscrire et se connecter à Grafana.La configuration complète ressemblera à ceci :
...
[auth.github]
enabled = true
allow_sign_up = true
client_id = your_client_id_from_github
client_secret = your_client_secret_from_github
scopes = user:email,read:org
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
;allowed_domains =
;team_ids =
allowed_organizations = your_organization_name
...
Vous avez maintenant dit à Grafana tout ce dont elle a besoin de savoir sur GitHub. Pour terminer la configuration, vous devrez activer les redirections derrière un proxy inverse. Cela set fait en réglant une valeur root_url
sous le titre [serveur]
.
...
[server]
root_url = https://your_domain
...
Sauvegardez votre configuration et fermez le fichier.
Ensuite, redémarrez Grafana pour activer les changements :
- sudo systemctl restart grafana-server
Enfin, vérifiez que le service est opérationnel.
- sudo systemctl status grafana-server
La sortie indiquera que le service est actif (en cours d'exécution)
.
Maintenant, testez votre nouveau système d’authentification vous rendant sur https://your_domain
. Si vous êtes déjà connecté à Grafana, passez votre souris sur l’avatar dans le coin inférieur gauche de l’écran, puis cliquez sur Déconnexion dans le menu secondaire qui apparaît à côté de votre nom.
Sur la page de connexion vous verrez une nouvelle section sous le bouton Connexion original qui comprend un bouton Connexion avec GitHub avec le logo GitHub.
Cliquez sur le bouton Connexion avec GitHub pour être redirigé vers GitHub, où vous allez vous connecter à votre compte GitHub et confirmerez votre intention d’autoriser Grafana.
Cliquez sur le bouton vert Autoriser your_github_organization.
Remarque : assurez-vous que votre compte GitHub soit membre de votre organisation approuvée et que votre adresse électronique Grafana correspond à votre adresse électronique GitHub. Si vous essayez de vous authentifier avec un compte GitHub qui n’est pas membre de votre organisation approuvée, vous obtiendrez un message Login Failed vous disant l’Utilisateur n’est pas membre de l’une des organisations requises.
Vous allez maintenant être connecté à votre compte Grafana existant. Si un compte Grafana n’existe pas encore pour l’utilisateur sous lequel vous vous êtes connecté, Grafana créera un nouveau compte utilisateur avec des autorisations Viewer, afin que les nouveaux utilisateurs ne puissent utiliser que les tableaux de bord existants.
Pour changer les autorisations par défaut pour les nouveaux utilisateurs, ouvrez le fichier de configuration principal de Grafana pour l’éditer.
- sudo nano /etc/grafana/grafana.ini
Localisez la directive auto_assign_org_role
sous le titre [users]
, et décommentez le paramètre en supprimant le ;
au début de la ligne.
Définissez la directive sur l’une des valeurs suivantes :
Viewer
— ne peut utiliser que les tableaux de bord existantsEditor
— peut utiliser, modifier et ajouter des tableaux de bordAdmin
— a la permission de tout faireCe tutoriel réglera l’assigner automatique sur Viewer
:
...
[users]
...
auto_assign_org_role = Viewer
...
Une fois que vous avez enregistré vos modifications, fermez le fichier et redémarrez Grafana :
- sudo systemctl restart grafana-server
Vérifiez l’état du service :
- sudo systemctl status grafana-server
Comme auparavant, le statut lira actif (en cours d'exécution)
.
À ce stade, vous avez entièrement configuré Grafana pour autoriser des membres de votre organisation GitHub à s’enregistrer et utiliser votre installation Grafana.
Dans ce tutoriel, vous avez installé, configuré et sécurisé Grafana, et vous avez également appris à autoriser les membres de votre organisation à s’authentifier via GitHub.
Pour étendre votre installation Grafana actuelle, consultez la liste des tableaux de bord et des plugins officiels et de la communauté. Pour en savoir plus sur l’utilisation de Grafana en général, consultez la documentation officielle de Grafana, ou consultez nos autres tutoriels de surveillance.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.