@@ -27,12 +27,12 @@ usage() {
27
27
- TLS expiration days for TLS mode; default is 30
28
28
- Pod restart count in pods mode; default is 30
29
29
- Job failed count in jobs mode; default is 1
30
- - Pvc storage utilization; default is 80%
30
+ - Pvc storage utilization; default is 80%
31
31
-c CRIT Critical threshold for
32
32
- Pod restart count (in pods mode); default is 150
33
33
- Unbound Persistent Volumes in unboundpvs mode; default is 5
34
34
- Job failed count in jobs mode; default is 2
35
- - Pvc storage utilization; default is 90%
35
+ - Pvc storage utilization; default is 90%
36
36
-b Brief mode (more suitable for Zabbix)
37
37
-M EXIT_CODE Exit code when resource is missing; default is 2 (CRITICAL)
38
38
-h Show this help and exit
@@ -47,7 +47,7 @@ usage() {
47
47
replicasets Check for replicasets readiness
48
48
statefulsets Check for statefulsets readiness
49
49
tls Check for tls secrets expiration dates
50
- pvc Check for pvc utilization
50
+ pvc Check for pvc utilization
51
51
unboundpvs Check for unbound persistent volumes
52
52
components Check for health of k8s components (deprecated in K8s 1.19+)
53
53
EOF
@@ -273,41 +273,49 @@ mode_pvc() {
273
273
for node in " ${nodes[@]} " ; do
274
274
data=" $( getJSON " get nodes" " api/v1/nodes/$node /proxy/stats/summary" ) "
275
275
[ $? -gt 0 ] && die " $data "
276
- pods=($( echo " $data " | jq -r " .pods[].podRef.name" ) )
276
+ pods=($( echo " $data " | jq -r " .pods[].podRef.name" ) )
277
277
278
- for pod in " ${pods[@]} " ; do
278
+ for pod in " ${pods[@]} " ; do
279
279
pod_volumes=" $( echo " $data " | jq -r " .pods[] | select(.podRef.name==\" $pod \" ) | .volume" 2> /dev/null) "
280
- [ " $pod_volumes " == " null" ] && continue
281
- for volumes in " ${pod_volumes[@]} " ; do
282
- volumes_list=" $( echo " $volumes " | jq -r " .[] | select(.pvcRef.name!=null)" ) "
283
- volumes_namespace=$( echo " $volumes_list " | jq -r " .pvcRef.namespace" | uniq)
284
- for pvc_volumes in " ${volumes_list[@]} " ; do
285
- [ " x$pvc_volumes " == " x" ] && continue
286
- for volume_name in $( echo $pvc_volumes | jq -r " .name" ) ; do
287
- volume_bytes_available=$( echo " $pvc_volumes " | jq -r " . | select(.name==\" $volume_name \" ) | .availableBytes" )
288
- volume_bytes_capacity=$( echo " $pvc_volumes " | jq -r " . | select(.name==\" $volume_name \" ) | .capacityBytes" )
289
- volume_bytes_used=$( echo " $pvc_volumes " | jq -r " . | select(.name==\" $volume_name \" ) | .usedBytes" )
290
- volume_inodes_free=$( echo " $pvc_volumes " | jq -r " . | select(.name==\" $volume_name \" ) | .inodesFree" )
291
- volume_inodes_used=$( echo " $pvc_volumes " | jq -r " . | select(.name==\" $volume_name \" ) | .inodesUsed" )
292
- volume_inodes_capacity=$( echo " $pvc_volumes " | jq -r " . | select(.name==\" $volume_name \" ) | .inodes" )
293
- volume_bytes_utilization=$( echo " 100 * $volume_bytes_used / $volume_bytes_capacity " | bc)
294
- volume_inodes_utilization=$( echo " 100 * $volume_inodes_used / $volume_inodes_capacity " | bc)
295
- if [ " $volume_bytes_utilization " -gt " $WARN " -a " $volume_bytes_utilization " -lt " $CRIT " ]; then
296
- echo " WARNING. High storage utilization on pvc $volume_name (namespace:$volumes_namespace ): $volume_bytes_utilization % ($volume_bytes_used /$volume_bytes_capacity Bytes)" && WARN_ERROR=$(( $WARN_ERROR + 1 ))
297
- fi
298
- if [ " $volume_bytes_utilization " -gt " $CRIT " ]; then
299
- echo " CRITICAL. Very high storage utilization on pvc $volume_name : $volume_bytes_utilization % ($volume_bytes_used /$volume_bytes_capacity Bytes)" && CRIT_ERROR=$(( $CRIT_ERROR + 1 ))
300
- fi
301
- if [ " $volume_inodes_utilization " -gt " $WARN " -a " $volume_inodes_utilization " -lt " $CRIT " ]; then
302
- echo " WARNING. High inodes utilization on pvc $volume_name : $volume_inodes_utilization % ($volume_inodes_used /$volume_inodes_capacity )" && WARN_ERROR=$(( $WARN_ERROR + 1 ))
280
+ [ " $pod_volumes " == " null" ] && continue
281
+ for volumes in " ${pod_volumes[@]} " ; do
282
+ volumes_list=" $( echo " $volumes " | jq -r " .[] | select(.pvcRef.name!=null)" ) "
283
+ volumes_namespace=$( echo " $volumes_list " | jq -r " .pvcRef.namespace" | uniq)
284
+ for pvc_volumes in " ${volumes_list[@]} " ; do
285
+ [ -z " $pvc_volumes " ] && continue
286
+ for volume_name in $( echo $pvc_volumes | jq -r " .name" ) ; do
287
+ volume_bytes_available=$( echo " $pvc_volumes " | jq -r " . | select(.name==\" $volume_name \" ) | .availableBytes" )
288
+ volume_bytes_capacity=$( echo " $pvc_volumes " | jq -r " . | select(.name==\" $volume_name \" ) | .capacityBytes" )
289
+ volume_bytes_used=$( echo " $pvc_volumes " | jq -r " . | select(.name==\" $volume_name \" ) | .usedBytes" )
290
+ volume_inodes_free=$( echo " $pvc_volumes " | jq -r " . | select(.name==\" $volume_name \" ) | .inodesFree" )
291
+ volume_inodes_used=$( echo " $pvc_volumes " | jq -r " . | select(.name==\" $volume_name \" ) | .inodesUsed" )
292
+ volume_inodes_capacity=$( echo " $pvc_volumes " | jq -r " . | select(.name==\" $volume_name \" ) | .inodes" )
293
+ volume_bytes_utilization=$( echo " 100 * $volume_bytes_used / $volume_bytes_capacity " | bc)
294
+ volume_inodes_utilization=$( echo " 100 * $volume_inodes_used / $volume_inodes_capacity " | bc)
295
+ if [ " $volume_bytes_utilization " -gt " $WARN " -a " $volume_bytes_utilization " -lt " $CRIT " ]; then
296
+ echo " WARNING. High storage utilization on pvc $volume_name (namespace:$volumes_namespace ): \
297
+ $volume_bytes_utilization % ($volume_bytes_used /$volume_bytes_capacity Bytes)"
298
+ WARN_ERROR=$(( $WARN_ERROR + 1 ))
299
+ fi
300
+ if [ " $volume_bytes_utilization " -gt " $CRIT " ]; then
301
+ echo " CRITICAL. Very high storage utilization on pvc $volume_name : \
302
+ $volume_bytes_utilization % ($volume_bytes_used /$volume_bytes_capacity Bytes)"
303
+ CRIT_ERROR=$(( $CRIT_ERROR + 1 ))
304
+ fi
305
+ if [ " $volume_inodes_utilization " -gt " $WARN " -a " $volume_inodes_utilization " -lt " $CRIT " ]; then
306
+ echo " WARNING. High inodes utilization on pvc $volume_name : \
307
+ $volume_inodes_utilization % ($volume_inodes_used /$volume_inodes_capacity )"
308
+ WARN_ERROR=$(( $WARN_ERROR + 1 ))
303
309
fi
304
310
if [ " $volume_inodes_utilization " -gt " $CRIT " ]; then
305
- echo " CRITICAL. Very high inodes utilization on pvc $volume_name : $volume_inodes_utilization % ($volume_inodes_used /$volume_inodes_capacity )" && CRIT_ERROR=$(( $CRIT_ERROR + 1 ))
311
+ echo " CRITICAL. Very high inodes utilization on pvc $volume_name : \
312
+ $volume_inodes_utilization % ($volume_inodes_used /$volume_inodes_capacity )"
313
+ CRIT_ERROR=$(( $CRIT_ERROR + 1 ))
306
314
fi
307
- done
308
- done
309
- done
310
- done
315
+ done
316
+ done
317
+ done
318
+ done
311
319
done
312
320
313
321
if [ " $WARN_ERROR " -eq " 0" -a " $CRIT_ERROR " -eq " 0" ]; then
0 commit comments