Maison >Opération et maintenance >exploitation et maintenance Linux >Comment utiliser Docker pour la surveillance des conteneurs et l'analyse des journaux sous Linux ?

Comment utiliser Docker pour la surveillance des conteneurs et l'analyse des journaux sous Linux ?

王林
王林original
2023-07-29 22:49:091355parcourir

Comment utiliser Docker pour la surveillance des conteneurs et l'analyse des journaux sous Linux ?

Introduction :
Docker est une technologie de conteneurisation populaire qui permet aux développeurs de créer, de distribuer et d'exécuter plus facilement des applications. Cependant, à mesure que le nombre d’applications augmente, la surveillance des conteneurs et l’analyse des journaux deviennent de plus en plus importantes. Cet article explique comment utiliser Docker pour la surveillance des conteneurs et l'analyse des journaux sur les systèmes Linux, et fournit des exemples de code correspondants.

1. Surveillance des conteneurs

  1. Utilisez cAdvisor pour la surveillance des conteneurs
    cAdvisor est l'outil de surveillance des conteneurs open source de Google, qui peut fournir des données de surveillance telles que le processeur, la mémoire, le réseau et le disque du conteneur. Voici les étapes pour utiliser cAdvisor pour surveiller les conteneurs :

Étape 1 : Installer et démarrer cAdvisor
cAdvisor peut être installé avec la commande suivante :

docker run --detach=true --name=cadvisor --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 gcr.io/cadvisor/cadvisor:latest

Après le démarrage, vous pouvez afficher les données de surveillance en visitant http://localhost :8080.

Étape 2 : Surveiller le conteneur spécifié
Vous pouvez surveiller le conteneur spécifié via la commande suivante :

docker run --detach=true --name=cadvisor --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 gcr.io/cadvisor/cadvisor:latest -c docker_container_name

où docker_container_name est le nom du conteneur à surveiller.

  1. Utilisation de Prometheus et Grafana pour la surveillance des conteneurs
    Prometheus est un système de surveillance basé sur des séries chronologiques qui peut être utilisé pour la surveillance des conteneurs. Grafana est un outil de visualisation de données open source qui peut afficher et analyser les données collectées par Prometheus. Voici les étapes pour utiliser Prometheus et Grafana pour la surveillance des conteneurs :

Étape 1 : Installer et configurer Prometheus
Prometheus peut être installé via la commande suivante :

docker run -d --name=prometheus -p 9090:9090 -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

L'exemple de contenu du fichier de configuration prometheus.yml est le suivant :

global:
  scrape_interval: 15s
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'cadvisor'
    static_configs:
      - targets: ['cadvisor:8080']

Après l'exécution, vous pouvez afficher les données de surveillance en accédant à http://localhost:9090.

Étape 2 : Installer et configurer Grafana
Grafana peut être installé via la commande suivante :

docker run -d --name=grafana -p 3000:3000 grafana/grafana

Après l'installation, visitez http://localhost:3000 pour configurer Grafana et ajouter la source de données Prometheus. Des tableaux de bord peuvent ensuite être créés pour afficher et analyser les données collectées.

2. Analyse des journaux

  1. Utilisez ELK pour l'analyse des journaux de conteneurs
    ELK est une solution d'analyse de journaux couramment utilisée, composée d'Elasticsearch, Logstash et Kibana. Voici les étapes d'analyse des journaux de conteneur à l'aide d'ELK :

Étape 1 : Installer et configurer Elasticsearch
Elasticsearch peut être installé via la commande suivante :

docker run -d --name=elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.15.1

Après l'installation, vous pouvez vérifier qu'Elasticsearch fonctionne correctement en visitant http:/ /localhost : 9 200 exécutions.

Étape 2 : Installer et configurer Kibana
Kibana peut être installé via la commande suivante :

docker run -d --name=kibana -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://localhost:9200" docker.elastic.co/kibana/kibana:7.15.1

Après l'installation, Kibana peut être configuré en visitant http://localhost:5601 et en utilisant Elasticsearch comme source de données.

Étape 3 : Installer et configurer Logstash
Logstash peut être installé avec la commande suivante :

docker run -d --name=logstash -p 5000:5000 -v /path/to/logstash.conf:/usr/share/logstash/pipeline/logstash.conf docker.elastic.co/logstash/logstash:7.15.1

L'exemple de contenu du fichier de configuration logstash.conf est le suivant :

input {
  beats {
    port => 5000
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
  }
}

Après l'installation, Logstash écoutera sur le port 5000 et enverra enregistrer les données sur Elasticsearch.

Étape 4 : Configurer la collecte des journaux du conteneur
Vous pouvez configurer la collecte des journaux du conteneur via la commande suivante :

docker run -it --name=your_container_name --log-driver=gelf --log-opt gelf-address=udp://localhost:5000 your_image_name

où votre_nom_du_conteneur est le nom du conteneur pour collecter les journaux et votre_nom_image est le nom de l'image utilisée par le conteneur.

Conclusion :
En utilisant Docker pour la surveillance des conteneurs et l'analyse des journaux, nous pouvons mieux comprendre l'état d'exécution et les informations de journalisation du conteneur, améliorant ainsi la stabilité et la fiabilité de l'application. Cet article présente deux outils et méthodes couramment utilisés et fournit des exemples de code correspondants. J'espère qu'il sera utile aux lecteurs lors de l'utilisation de Docker pour la surveillance des conteneurs et l'analyse des journaux sur les systèmes Linux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn