« Prometheus » : différence entre les versions

De Le Wiki de Lug
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 :

Le serveur fonctionne!

Facile!

(Optionnel) Securisation serveur

source autre source

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