Skip to content
GitLab
Explorer
Connexion
Navigation principale
Rechercher ou aller à…
Projet
nagios-plugin
Gestion
Activité
Membres
Labels
Programmation
Tickets
Tableaux des tickets
Jalons
Code
Requêtes de fusion
Dépôt
Branches
Validations
Étiquettes
Graphe du dépôt
Comparer les révisions
Analyse
Données d'analyse des chaînes de valeur
Analyse des contributeurs
Données d'analyse du dépôt
Aide
Aide
Support
Documentation de GitLab
Comparer les forfaits GitLab
Forum de la communauté GitLab
Contribuer à GitLab
Donner votre avis
Raccourcis clavier
?
Extraits de code
Groupes
Projets
Afficher davantage de fils d'Ariane
Le Filament
nagios-plugin
Validations
460bbf01
Valider
460bbf01
rédigé
Il y a 3 ans
par
Théo - Le Filament
Parcourir les fichiers
Options
Téléchargements
Correctifs
Plain Diff
add check_docker shell script
parent
03246197
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Modifications
1
Afficher les modifications d'espaces
En ligne
Côte à côte
Affichage de
1 fichier modifié
check_docker.sh
+103
-0
103 ajouts, 0 suppression
check_docker.sh
avec
103 ajouts
et
0 suppression
check_docker.sh
0 → 100755
+
103
−
0
Voir le fichier @
460bbf01
#!/bin/bash
# Default threshold values.
cpu_threshold_warning
=
25
cpu_threshold_critical
=
50
mem_threshold_warning
=
50
mem_threshold_critical
=
75
filter
=
''
print_help
()
{
echo
"usage:
${
0
}
[OPTIONS]"
echo
"options:"
echo
-e
" -c, --cpu <warning:critical>
\t\t
threshold values for cpu usage"
echo
-e
" -f, --filter <regex>
\t\t\t
containers to check"
echo
-e
" -h, --help
\t\t\t\t
print this help"
echo
-e
" -m, --memory <warning:critical>
\t
threshold values for memory usage"
}
while
[[
$#
-gt
0
]]
;
do
case
"
$1
"
in
-c
|
--cpu
)
cpu_threshold_warning
=
`
awk
-F
':'
'{print +$1}'
<
(
echo
$2
)
`
cpu_threshold_critical
=
`
awk
-F
':'
'{print +$2}'
<
(
echo
$2
)
`
shift
2
;;
-f
|
--filter
)
filter
=
$2
shift
2
;;
-m
|
--memory
)
mem_threshold_warning
=
`
awk
-F
':'
'{print +$1}'
<
(
echo
$2
)
`
mem_threshold_critical
=
`
awk
-F
':'
'{print +$2}'
<
(
echo
$2
)
`
shift
2
;;
--help
|
-h
)
print_help
exit
0
;;
*
)
echo
"Error while parsing argument '
$1
'."
exit
1
;;
esac
done
# Gathering facts.
all_containers
=
`
sudo
docker ps
--format
'{{.Names}}'
--filter
"name=
${
filter
}
"
--no-trunc
--quiet
--all
`
running_containers
=
`
sudo
docker ps
--format
'{{.Names}}'
--filter
"name=
${
filter
}
"
--no-trunc
--quiet
`
running_containers_stats
=
`
sudo
docker stats
--format
'{{.Name}}:{{.CPUPerc}}:{{.MemPerc}}'
--no-stream
`
not_running_containers
=
`
comm
-23
<
(
echo
$all_containers
)
<
(
echo
$running_containers
)
`
# Format data.
output
=
''
perf
=
''
cpu_scale
=
";
${
cpu_threshold_warning
}
;
${
cpu_threshold_critical
}
;0;100"
mem_scale
=
";
${
mem_threshold_warning
}
;
${
mem_threshold_critical
}
;0;100"
# Running containers.
for
container
in
${
running_containers
}
;
do
output+
=
" OK:
${
container
}
status is running"
done
# Not running containers.
for
container
in
${
not_running_containers
}
;
do
output+
=
" NOK:
${
container
}
status is not running"
done
# CPU and memory statistics for running containers.
for
container_stats
in
${
running_containers_stats
}
;
do
name
=
`
awk
-F
':'
'{print $1}'
<
(
echo
$container_stats
)
`
[[
!
$name
=
~
${
filter
}
]]
&&
continue
cpu
=
`
awk
-F
':'
'{print +$2}'
<
(
echo
$container_stats
)
`
mem
=
`
awk
-F
':'
'{print +$3}'
<
(
echo
$container_stats
)
`
status
=
'OK'
[[
${
cpu
%.*
}
-ge
$cpu_threshold_warning
]]
&&
status
=
'WARNING'
[[
${
cpu
%.*
}
-ge
$cpu_threshold_critical
]]
&&
status
=
'CRITICAL'
output+
=
"
${
status
}
:
${
name
}
cpu is
${
cpu
}
%"
status
=
'OK'
[[
${
mem
%.*
}
-ge
$mem_threshold_warning
]]
&&
status
=
'WARNING'
[[
${
mem
%.*
}
-ge
$mem_threshold_critical
]]
&&
status
=
'CRITICAL'
output+
=
"
${
status
}
:
${
name
}
memory is
${
mem
}
%"
perf+
=
"
${
name
}
_cpu=
${
cpu
}
%
${
cpu_scale
}
"
perf+
=
"
${
name
}
_mem=
${
mem
}
%
${
mem_scale
}
"
done
# Nagios OK status.
exit_code
=
0
# Nagios WARNING status.
grep
--quiet
'WARNING:'
<
(
echo
$output
)
&&
exit_code
=
1
# Nagios CRITICAL status.
grep
--quiet
'NOK:\|CRITICAL:'
<
(
echo
$output
)
&&
exit_code
=
2
# Plugin output.
echo
"
${
output
#
' '
}
|
${
perf
#
' '
}
"
exit
$exit_code
Ce diff est replié.
Cliquez pour l'agrandir.
Aperçu
0%
Chargement en cours
Veuillez réessayer
ou
joindre un nouveau fichier
.
Annuler
You are about to add
0
people
to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Enregistrer le commentaire
Annuler
Veuillez vous
inscrire
ou vous
se connecter
pour commenter