1 Installation et optimisation de prometheus

Une installation

1 Téléchargez, démarrez

L'adresse de téléchargement de prometheus
https://prometheus.io/download/#prometheusAprès avoir
téléchargé, décompressez et copiez vers / usr / local

[root@server04 down]# tar -xvzf prometheus-2.2.0-rc.0.linuxamd64.tar.gz 
cp -r prometheus-2.2.0-rc.0.linux-amd64 /usr/local/

./promehteus #直接运行

2 Commencez en arrière-plan

Utilisez daemonize pour passer en mode arrière-plan, daemonize Le logiciel de gestion de démon d'arrière-plan du système Unix
doit télécharger et installer daemonize


git clone https://github.com/bmc/daemonize.git sh configure && make && sudo make install 
用daemonize去启动prometheus服务

daemonize -c /data/prometheus/ /data/prometheus/up.sh

Après avoir exécuté la commande ci-dessus, un répertoire de données sera généré dans le répertoire / data / prometheus /. Le prochain redémarrage doit spécifier ce répertoire
-c est le chemin d'opération spécifié /data/prometheus/up.sh est le chemin d'opération Un script de démarrage du
script est le suivant: vous
devez placer le prometheus décompressé dans le répertoire / data / prometheus

/data/prometheus/prometheus/prometheus  --config.file="/data/prometheus/prometheus/prometheus.yml"

3 fichier de configuration

[root@k8s-node1 prometheus]# grep -v "^#" /data/prometheus/prometheus/prometheus.yml
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['localhost:9090']

La première est le nombre d'intervalles de temps que la variable globale scrape_interval définit pour collecter les données

L'autre consiste à écrire un travail et des cibles. Configurez une étiquette de travail, puis définissez la machine que nous devons surveiller sous cette étiquette.

4 Installation de node_exporter et fonctionnement en arrière-plan

4.1 L'
adresse de téléchargement de la configuration client est https://prometheus.io/download/#node_exporter L'
opération par défaut
démarre sur le port 9100 :

daemonize -c / data / node_exporter / /data/node_exporter/up.sh

Contenu du script:

cat up.sh
/prometheus/node_exporter/node_exporter --web.listen-address=":9200"

Données de requête:
curl localhost: 9100 / metrics

4.2 Configuration du serveur

● Le serveur de surveillance modifie le fichier de configuration: le 9200 suivant est le numéro de port par défaut de node_export

Ensuite, allez sur la page Web pour voir, cliquez sur Statut- "Cibles de points-"

Installation, fonctionnement et configuration de deux Pushushgatway

2.1 Surveillance de la configuration du serveur (serveur prometheus)

1.211 est le serveur selon pushgatway
, puis redémarrez le serveur prometheus

2.2 Fonctionnement du terminal surveillé

L'adresse de téléchargement est https://prometheus.io/download/#pushgateway. Après la décompression, le
port par défaut est 9091. Une fois le
démarrage terminé, vous pouvez visiter http://192.168.1.211:9091/#

Écrire des scripts de surveillance pour collecter le nombre de connexions en attente

#!/bin/bash 
instance_name=`hostname -f | cut -d'.' -f1` #本机机器名变量用于之后的标签 
if [ $instance_name == "localhost" ];then
echo "Must FQDN hostname" 
exit 1 
fi
count_netstat_wait_connections=`netstat -an | grep -i wait | wc -l` 
echo "count_netstat_wait_connections $count_netstat_wait_connections" | curl --data-binary @- http://192.168.1.211:9091/metrics/job/pushgateway/instance/$instance_name

Ensuite, définissez crontab * / 1 * * * * bash /prometheus/pushgateway.sh
Bien sûr, votre propre script doit être combiné avec crontab pour s'exécuter régulièrement.
Si vous voulez avoir moins de 15 secondes dans un intervalle d'une minute, utilisez sleep

Ensuite, allez sur la page de surveillance pour voir si le graphique est généré:

explication de l'url:
enfin pousser la clé et la valeur vers pushgatway

curl —data-binary envoie les données de la requête HTTP POST au serveur HTTP push (pushgateway), qui est exactement la même que la ligne du navigateur 器 lorsque l'utilisateur soumet le formulaire HTML. Les données de la requête HTTP POST sont des données binaires pures

http://prometheus.server.com:9091/metrics/job/pushgateway1/ instance / $ instance_name
Enfin, utilisez POST pour pousser la clé et la valeur vers l'URL de pushgatway

Cette adresse URL est divisée en trois parties:
http://prometheus.server.com:9091/metrics/job/pushgateway1 
Il s'agit du
travail de localisation principal / pushgateway1  de l'URL
Il s'agit du premier libellé de la partie 2: pousser vers Quel travail est défini par prometheus.yml?
{Instance = "server01"}
instance / $ instance_name
Il s'agit du nom de la machine affiché après avoir poussé la deuxième étiquette

Je suppose que tu aimes

Origine www.cnblogs.com/huningfei/p/12715234.html
conseillé
Classement