CI / CD Docker-Containerüberwachung

Anzeigen des Ressourcenverbrauchsstatus des laufenden Containers

$ docker stats --no-stream
CONTAINER ID        NAME                CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS
a5ed2facaadd        webcentos           0.00%               2.398MiB / 12.37GiB   0.02%               1.31kB / 0B         0B / 0B             2
e3a96695d263        docker_mysql_1      0.12%               187.5MiB / 12.37GiB   1.48%               1.05kB / 0B         0B / 0B             27
cc761f675b3b        docker_nginx_1      0.00%               4.309MiB / 12.37GiB   0.03%               956B / 0B           0B / 0B             2

Formatieren und Anzeigen

$ docker stats --no-stream --format "{{.Name}},{{.MemPerc}},{{.CPUPerc}}"   #Containername,Speichernutzung,CPU auslastung
webcentos,0.02%,0.00%
docker_mysql_1,1.48%,0.12%
docker_nginx_1,0.03%,0.00%

Charge überwachen

Führen Sie jede Minute aus und überspringen Sie die Benachrichtigung, wenn der Nutzungsschwellenwert (80%) überschritten wird

#!/bin/bash

#Schwelle(%)
LIMIT=90

#Holen Sie sich STATS für Container
CHECK_STATS=$(docker stats --no-stream --format "{{.Name}},{{.MemPerc}},{{.CPUPerc}}") #Containername,Speichernutzung,CPU auslastung

while read row; do
  name=`echo ${row} | cut -d , -f 1`     #Containername
  memPer=`echo ${row} | cut -d , -f 2`   #Speichernutzung
  memPer_i=`echo ${memPer%%.*}`
  cpuPer=`echo ${row} | cut -d , -f 3`   #CPU auslastung
  cpuPer_i=`echo ${cpuPer%%.*}`
  
  #Überprüfung des Schwellenwerts für die Speichernutzung
  if [ $memPer_i -ge $LIMIT ]; then
     message="Container:${name} Memory alert ${memPer}"
     curl -X POST --data-urlencode 'payload={"channel": "#alert", "username": "admin", "text": "${message}"}' <webhook URL>
  fi

  #Überprüfung der CPU-Auslastung
  if [ $cpuPer_i -ge $LIMIT ]; then
     message="Container:${name} CPU alert ${cpuPer}"
     curl -X POST --data-urlencode 'payload={"channel": "#alert", "username": "admin", "text": "${message}"}' <webhook URL>
  fi
done < echo "$CHECK_STATS"

Recommended Posts

CI / CD Docker-Containerüberwachung
Kleiner Docker Container
Docker-Container-Nutzungsszene
Greifen Sie mit ssh auf den Circle CI Docker-Container zu und debuggen Sie ihn
Einführung des "" Monitoring Tool "" zur Überwachung von Docker
Athrills Docker-Container-Minimierungsverfahren
Einführung in Linux Container / Docker (Teil 1)
Einführung in Linux Container / Docker (Teil 2)
Führen Sie PureScript auf einem Docker-Container aus
[Linux] Starten Sie den Apache-Container mit Docker
Über Docker, gefälschten Server und Container