Comment surveiller nginx avec docker-compose avec datadog

Surveiller nginx avec Datadog

Comment surveiller nginx avec l'outil de surveillance payant datadog. Cependant, lors de la configuration de l'agent datadog avec docker-compose ...

Documentation officielle (presque inutile) https://docs.datadoghq.com/ja/integrations/nginx/?tab=host

Tout d'abord, regardez ceci et insérez le module nginx status_module. (Il n'est pas lié à docker pour l'instant)

En bref, ce n'est pas grave si vous pouvez voir l'état sur localhost: 81.

Documentation officielle

Il existe un exemple de paramètre pour surveiller nginx à l'aide de docker-compose! !! !!

Pour les environnements de conteneur, reportez-vous au Guide du modèle d'intégration de découverte automatique et appliquez les paramètres suivants:

Donc, même si je vais sur la page guidée, il n'y a pas d'exemple de docker-compose ... https://docs.datadoghq.com/ja/agent/kubernetes/integrations/?tab=kubernetes

Le point est, dois-je créer un fichier de configuration .yaml et le copier, ou le monter? Exemple de fichier? Qu'est-ce que c'est?

conf.d/<INTEGRATION_NAME>.d/conf.yaml

Donc, les paramètres pour nginx sont comme ceux-ci

<Nom de l'intégration>	nginx
<Configuration initiale>Vierge ou{}
<Configuration de l'instance>	{"nginx_status_url": "http://%%host%%:81/nginx_status/"}

Je ne sais même pas! !! !! !! Que dois-je mettre dans <nom de l'intégration>? où? Quel est le nom du fichier? La documentation officielle est trop hostile! !! !! !!

Puisque datadog est un outil payant, il y a peu d'articles que j'ai essayés ...

Donc, ce qui suit est le fichier docker-compose.yml correct.

docker-compose.yml

version: "3.8"
services:
  web:
    build:
      context: ./docker/nginx
    ports:
      - 80:80
    #Supprimer les paramètres non pertinents
    #Les paramètres jusqu'à présent n'ont rien à voir avec le journal de données. Il n'est pas nécessaire d'ouvrir le port 81.
    #À partir de là, le réglage de la partie centrale pour se connecter avec datadog
    links:
      - dd-agent:dd-agent
    depends_on:
      - dd-agent
    labels:
      com.datadoghq.ad.check_names: '["nginx"]'
      com.datadoghq.ad.init_configs: '[{}]'
      com.datadoghq.ad.instances: '[{"nginx_status_url": "http://%%host%%:81/nginx_status"}]'
      com.datadoghq.ad.logs: '[{"source": "nginx", "service": "web"}]'


#paramètres du conteneur datadog
  dd-agent:
    container_name: dd-agent
    image: datadog/agent:7
    environment:
      - DD_API_KEY=Écrivez votre clé API ici
      - DD_APM_ENABLED=true
      - DD_LOGS_ENABLED=true
      - DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true
      - DD_AC_EXCLUDE="name:dd-agent"
    volumes:
     - /var/run/docker.sock:/var/run/docker.sock
     - /proc/:/host/proc/:ro
     - /sys/fs/cgroup:/host/sys/fs/cgroup:ro
    ports:
      - "8126:8126/tcp"

Maintenant, lancez le conteneur et vérifiez l'existence avec docker ps. OK si c'est sain.

$ docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS                    PORTS                                      NAMES
577f6b34b971        datadog/agent:7      "/init"                  39 seconds ago      Up 37 seconds (healthy)   8125/udp, 0.0.0.0:8126->8126/tcp           dd-agent

S'il est vivant, vérifiez l'état du datadog.

$ docker exec -it dd-agent agent status

Avec cette commande, s'il y a une chaîne de caractères nginx en échec et que quelque chose semble être fait, c'est OK. (Omis car il est long)


    nginx (3.9.0)
    -------------
      Instance ID: nginx:[OK]
      Configuration Source: docker:docker://
      Total Runs: 4
      Metric Samples: Last Run: 7, Total: 28
      Events: Last Run: 0, Total: 0
      Service Checks: Last Run: 1, Total: 4
      Average Execution Time : 5ms
      Last Execution Date : 2020-10-27 10:20:20.000000 UTC
      Last Successful Execution Date : 2020-10-27 10:20:20.000000 UTC
      metadata:
        version.major: 1
        version.minor: 18
        version.patch: 0
        version.raw: 1.18.0
        version.scheme: semver

Il n'y a pas d'échantillon ou d'article d'une telle combinaison d'applications de base, il n'y a pas de datadog ... c'est difficile ...

Point Hamari

DD_API_KEY au lieu d'API_KEY La commande d'état n'existait pas lors de l'utilisation de l'ancien agent dd, etc.

Article un peu utile

https://y-ohgi.com/2019-aws-handson/datadog/docker-compose/ https://tech.griphone.co.jp/2018/12/02/advent-calendar-20181202/ https://qiita.com/comefigo/items/4d867a39ad2fd5b9bbd2 https://qiita.com/spesnova/items/b1f2cc4e33ddf7cea285

Recommended Posts

Comment surveiller nginx avec docker-compose avec datadog
Comment écrire docker-compose
Comment créer docker-compose
Comment envoyer des métriques et des événements personnalisés à datadog avec laravel dans l'environnement docker-compose
Comment numéroter (nombre) avec html.erb
Comment mettre à jour avec activerecord-import
Comment démarrer avec Slim
Comment utiliser mssql-tools avec Alpine
Comment démarrer Camunda avec Docker
[Note] Comment redémarrer le conteneur Windows configuré avec docker-compose
Comment utiliser MinIO avec la même fonction que S3 Utiliser docker-compose
Comment recadrer une image avec libGDX
Comment ajuster TextPosition avec l'extension de clavier iOS
Comment partager des fichiers avec Docker Toolbox
Comment compiler Java avec VsCode & Ant
[Java] Résumez comment comparer avec la méthode equals
[Android] Comment gérer les thèmes sombres
Comment changer d'images miniatures avec JavaScript
[Note] Comment démarrer avec Rspec
Comment faire un contrôle basé sur l'API avec cancancan
Lancez l'application Nginx + Spring Boot avec docker-compose
Comment mettre à jour les modèles associés avec accepte_nested_attributes_for
Comment définir JAVA_HOME avec l'appassembler-maven-plugin de Maven
Comment implémenter TextInputLayout avec la fonction de validation
Comment gérer les erreurs de connexion avec l'appareil
Comment supprimer des données avec une clé externe
Comment tester l'étendue privée avec JUnit
Comment gérer les actifs de précompilation a échoué.
Comment réaliser le téléchargement de fichiers avec Feign
Comment exécuter Blazor (C #) avec Docker
Comment créer un environnement Rails 6 avec Docker
Comment déployer sur AWS à l'aide de NUXTJS S3 et CloudFront officiels? Avec docker-compose
Comment utiliser les fichiers args:, environment:, env_file: et .env avec la commande docker-compose
Comment appliquer les restrictions d'adresse IP uniquement à des répertoires spécifiques avec laravel + nginx
Comment télécharger Oracle JDK 8 rpm avec curl
[Java] Comment tester s'il est nul dans JUnit
Comment se moquer de chaque cas avec Mockito 1x
Comment se moquer de chaque cas avec PowerMock + Mockito1x
Comment utiliser MyBatis2 (iBatis) avec Spring Boot 1.4 (Spring 4)
Comment enregistrer dans plusieurs tables avec une seule entrée
Comment tester les interruptions pendant Thread.sleep avec JUnit
Comment utiliser le framework Java avec AWS Lambda! ??
Comment créer plusieurs menus déroulants avec ActiveHash
Comment utiliser l'API Java avec des expressions lambda
Comment démarrer avec Eclipse Micro Profile
Comment tout insérer en même temps avec MyBatis
Comment écrire du code de test avec la certification de base
Comment créer une API avec GraphQL et Rails
Comment utiliser le protocole NFS version 2 avec Ubuntu 18.04
Erreur lors du déploiement de rails5 + Mysql sur heroku avec Docker-compose
Comment créer des variables membres avec le modèle JPA
Comment vérifier les éléments variables avec RequestBodyMatching de WireMock