« Prometheus » : différence entre les versions
Aller à la navigation
Aller à la recherche
| Ligne 15 : | Ligne 15 : | ||
=== (Optionnel) Securisation serveur === | === (Optionnel) Securisation serveur === | ||
[https://prometheus.io/docs/guides/basic-auth/ '''source'''] | [https://prometheus.io/docs/guides/basic-auth/ '''source'''] [https://prometheus.io/docs/guides/tls-encryption/ '''autre source'''] | ||
{{Méta bandeau | {{Méta bandeau | ||
| Ligne 34 : | Ligne 34 : | ||
| texte = '''Ici on va uniquement sécuriser l'accès au serveur''' (je récupère les données sur un réseau virtuel non exposé, donc pas d'exporteurs joignables, plus simple), mais il est également possible de passer par [https://0x63.me/tls-between-prometheus-and-its-exporters/ '''stunnel'''] pour avoir les exporteurs directement sur Internet sans risque.. | | texte = '''Ici on va uniquement sécuriser l'accès au serveur''' (je récupère les données sur un réseau virtuel non exposé, donc pas d'exporteurs joignables, plus simple), mais il est également possible de passer par [https://0x63.me/tls-between-prometheus-and-its-exporters/ '''stunnel'''] pour avoir les exporteurs directement sur Internet sans risque.. | ||
}} | }} | ||
On installe un proxy local pour capturer et sécuriser le flux : | |||
# apk add nginx | |||
# rc-update add nginx default | |||
# service nginx start | |||
On crée un .htpasswd pour l'utilsateur "admin" et son mot de passe : | |||
# apk add apache2-utils | |||
# htpasswd -c /etc/nginx/.htpasswd admin | |||
New password: | |||
On prépare le cryptage : | |||
# apk add openssl | |||
# mkdir -p /root/certs/prometheus/ && cd /root/certs/prometheus | |||
# openssl req \ | |||
-x509 \ | |||
-newkey rsa:4096 \ | |||
-nodes \ | |||
-keyout prometheus.key \ | |||
-out prometheus.crt | |||
On configure le vhost : | |||
# vi /etc/nginx/conf.d/prometheus.conf | |||
server { | |||
listen '''9191''' ssl; | |||
ssl_certificate /root/certs/prometheus/prometheus.crt; | |||
ssl_certificate_key /root/certs/prometheus/prometheus.key; | |||
location / { | |||
auth_basic "Prometheus"; | |||
auth_basic_user_file /etc/nginx/.htpasswd; | |||
proxy_pass <nowiki>http://localhost:9090/</nowiki>; | |||
} | |||
} | |||
# service nginx status | |||
On configure prometheus en rajoutant ces <font color=green>deux lignes</font> : | |||
{{Méta bandeau | |||
| niveau = modéré | |||
| icône = important | |||
| texte = bien respecter l'emplacement, j'ai bien galéré pour trouver mon erreur.. | |||
}} | |||
# vi /etc/init.d/prometheus | |||
... | |||
command_args="--config.file=$prometheus_config_file \ | |||
<font color=green>--web.external-url=<nowiki>https://127.0.0.1:</nowiki>'''9191''' \ | |||
--web.route-prefix="/" \</font> | |||
--storage.tsdb.path=$prometheus_storage_path \ | |||
... | |||
# service prometheus restart | |||
* Caching service dependencies ... [ ok ] | |||
* Starting prometheus ... [ ok ] | |||
= Export = | = Export = | ||
Version du 10 avril 2021 à 15:32
Serveur
20 % en cours..
LXC Alpine 3.12 Prometheus
Installation serveur de base
# apk update && apk upgrade # apk add prometheus # rc-update add prometheus default # service prometheus start
On test en se rendant sur l'adresse http://IP_PROMETHEUS:9090 :
Facile!
(Optionnel) Securisation serveur
On installe un proxy local pour capturer et sécuriser le flux :
# apk add nginx # rc-update add nginx default # service nginx start
On crée un .htpasswd pour l'utilsateur "admin" et son mot de passe :
# apk add apache2-utils # htpasswd -c /etc/nginx/.htpasswd admin
New password:
On prépare le cryptage :
# apk add openssl # mkdir -p /root/certs/prometheus/ && cd /root/certs/prometheus
# openssl req \
-x509 \
-newkey rsa:4096 \
-nodes \
-keyout prometheus.key \
-out prometheus.crt
On configure le vhost :
# vi /etc/nginx/conf.d/prometheus.conf
server {
listen 9191 ssl;
ssl_certificate /root/certs/prometheus/prometheus.crt;
ssl_certificate_key /root/certs/prometheus/prometheus.key;
location / {
auth_basic "Prometheus";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://localhost:9090/;
}
}
# service nginx status
On configure prometheus en rajoutant ces deux lignes :
# vi /etc/init.d/prometheus
...
command_args="--config.file=$prometheus_config_file \
--web.external-url=https://127.0.0.1:9191 \
--web.route-prefix="/" \
--storage.tsdb.path=$prometheus_storage_path \
...
# service prometheus restart
* Caching service dependencies ... [ ok ] * Starting prometheus ... [ ok ]
Export
Export Nvidia
docker run --name NVexport -p IP_EXPOSE:9445:9445 -d --restart=always -e LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1 --volume /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1:/usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1 --privileged mindprince/nvidia_gpu_prometheus_exporter:0.1