So überwachen Sie Nginx mit Docker-Compose mit Datadog

Überwachen Sie Nginx mit Datadog

So überwachen Sie nginx mit dem kostenpflichtigen Überwachungstool datadog. Beim Einrichten des Datadog-Agenten mit Docker-Compose ...

Offizielle Dokumentation (fast nutzlos) https://docs.datadoghq.com/ja/integrations/nginx/?tab=host

Schauen Sie sich das zuerst an und fügen Sie das nginx status_module ein. (Es ist noch nicht mit Docker verwandt)

Kurz gesagt, es ist in Ordnung, wenn Sie den Status bei localhost sehen können: 81.

Offizielle Dokumentation

Es gibt eine Beispieleinstellung zum Überwachen von Nginx mit Docker-Compose! !! !!

Informationen zu Containerumgebungen finden Sie im AutoDiscovery Integration Template Guide. Wenden Sie die folgenden Parameter an:

Selbst wenn ich zur geführten Seite gehe, gibt es kein Beispiel für Docker-Compose ... https://docs.datadoghq.com/ja/agent/kubernetes/integrations/?tab=kubernetes

Der Punkt ist, sollte ich eine Konfigurationsdatei .yaml erstellen und kopieren oder mounten? Beispieldatei? was ist das?

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

Die Einstellungen für Nginx sind also wie folgt

<Integrationsname>	nginx
<Anfangskonfiguration>Leer oder{}
<Instanzkonfiguration>	{"nginx_status_url": "http://%%host%%:81/nginx_status/"}

Ich weiß es nicht einmal! !! !! !! Was soll ich in eingeben? wo? Wie lautet der Dateiname? Die offizielle Dokumentation ist zu unfreundlich! !! !! !!

Da Datadog ein kostenpflichtiges Tool ist, habe ich nur wenige Artikel ausprobiert ...

Das Folgende ist also die richtige Datei docker-compose.yml.

docker-compose.yml

version: "3.8"
services:
  web:
    build:
      context: ./docker/nginx
    ports:
      - 80:80
    #Löschen Sie irrelevante Einstellungen
    #Die Einstellungen bis zu diesem Punkt haben nichts mit Datadog zu tun. Port 81 muss nicht geöffnet werden.
    #Von hier aus ist die Einstellung des Kernteils für die Protokollierung mit 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"}]'


#Einstellungen für Datadog-Container
  dd-agent:
    container_name: dd-agent
    image: datadog/agent:7
    environment:
      - DD_API_KEY=Schreiben Sie hier Ihren API-Schlüssel
      - 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"

Starten Sie nun den Container und überprüfen Sie die Existenz mit Docker ps. OK, wenn es gesund ist.

$ 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

Wenn Sie am Leben sind, überprüfen Sie den Status des Datenprotokolls.

$ docker exec -it dd-agent agent status

Mit diesem Befehl ist es in Ordnung, wenn eine Zeichenfolge nginx überprüft wird und etwas getan zu sein scheint. (Weggelassen, weil es lang ist)


    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

Es gibt kein Beispiel oder Artikel einer solchen grundlegenden Anwendungskombination, es gibt keinen Datenhund ... es ist schwierig ...

Hamari Punkt

DD_API_KEY anstelle von API_KEY Der Statusbefehl war bei Verwendung des alten dd-agent usw. nicht vorhanden.

Etwas hilfreicher Artikel

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

So überwachen Sie Nginx mit Docker-Compose mit Datadog
Wie schreibe ich Docker-Compose
So erstellen Sie Docker-Compose
So senden Sie benutzerdefinierte Metriken und Ereignisse mit Laravel in einer Docker-Compose-Umgebung an Datadog
Wie man mit html.erb nummeriert (nummeriert)
So aktualisieren Sie mit activerecord-import
Wie fange ich mit schlank an?
Wie man mssql-tools mit alpine benutzt
So starten Sie Camunda mit Docker
[Hinweis] So starten Sie den mit Docker-Compose eingerichteten Windows-Container neu
Verwendung von MinIO mit derselben Funktion wie S3 Verwenden Sie Docker-Compose
So beschneiden Sie ein Bild in libGDX
So passen Sie TextPosition mit der iOS-Tastaturerweiterung an
So teilen Sie Dateien mit Docker Toolbox
So kompilieren Sie Java mit VsCode & Ant
[Java] Fassen Sie zusammen, wie Sie mit der Methode equals vergleichen können
[Android] Wie man mit dunklen Themen umgeht
So wechseln Sie Miniaturbilder mit JavaScript
[Hinweis] Erste Schritte mit Rspec
API-basierte Steuerung mit cancancan
Starten Sie die Nginx + Spring Boot-Anwendung mit Docker-Compose
So aktualisieren Sie verwandte Modelle mit accept_nested_attributes_for
So setzen Sie JAVA_HOME mit dem Appassembler-Maven-Plugin von Maven
So implementieren Sie TextInputLayout mit Validierungsfunktion
So behandeln Sie Anmeldefehler mit devise
So löschen Sie Daten mit einem externen Schlüssel
So testen Sie den privaten Bereich mit JUnit
Der Umgang mit dem Vorkompilieren von Assets ist fehlgeschlagen.
So erreichen Sie das Hochladen von Dateien mit Feign
So führen Sie Blazor (C #) mit Docker aus
So erstellen Sie eine Rails 6-Umgebung mit Docker
Wie kann ich mit NUXTJS Official S3 und CloudFront für AWS bereitstellen? Mit Docker-Compose
Verwendung der Dateien args :, environment :, env_file: und .env mit dem Befehl docker-compose
So wenden Sie IP-Adressbeschränkungen nur auf bestimmte Verzeichnisse mit Laravel + Nginx an
So laden Sie Oracle JDK 8 U / min mit Curl herunter
[Java] So testen Sie, ob es in JUnit null ist
Wie man jeden Fall mit Mockito 1x verspottet
Wie man jeden Fall mit PowerMock + Mockito1x verspottet
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
So speichern Sie mit einer Eingabe in mehreren Tabellen
So testen Sie Interrupts während Thread.sleep mit JUnit
Verwendung des Java-Frameworks mit AWS Lambda! ??
So erstellen Sie mit ActiveHash mehrere Pulldown-Menüs
Verwendung der Java-API mit Lambda-Ausdrücken
Erste Schritte mit Eclipse Micro Profile
So fügen Sie mit MyBatis alles auf einmal ein
So schreiben Sie Testcode mit Basic-Zertifizierung
So erstellen Sie eine API mit GraphQL und Rails
Verwendung des NFS-Protokolls Version 2 mit Ubuntu 18.04
Fehler beim Bereitstellen von Rails5 + MySQL auf Heroku mit Docker-Compose
So erstellen Sie Elementvariablen mit dem JPA-Modell
So überprüfen Sie variable Elemente mit RequestBodyMatching von WireMock