]> git.immae.eu Git - perso/Immae/Config/Nix.git/blame - modules/private/monitoring/plugins/check_redis_replication
Add status engine website
[perso/Immae/Config/Nix.git] / modules / private / monitoring / plugins / check_redis_replication
CommitLineData
6015a3b5
IB
1#!/bin/bash
2
3STATE_OK=0
4STATE_WARNING=1
5STATE_CRITICAL=2
6STATE_UNKNOWN=3
7
8socket=$1
9
10info=$(redis-cli -s $socket info replication)
11lag=$(echo "$info" | grep master_last_io_seconds_ago | cut -d":" -f2 | sed -e "s/\s//g")
12slave_offset=$(echo "$info" | grep slave_repl_offset | cut -d":" -f2 | sed -e "s/\s//g")
13master_offset=$(echo "$info" | grep master_repl_offset | cut -d":" -f2 | sed -e "s/\s//g")
14offset=$(($master_offset - $slave_offset))
15
16exit_code=$?
17
18if [[ $exit_code -ne 0 ]]; then
19 echo "UNKNOWN - Impossible to run redis command"
20 exit $STATE_UNKNOWN
21elif [[ -z "$lag" ]]; then
22 echo "UNKNOWN - No replication found"
23 exit $STATE_UNKNOWN
24else
25 output="Replication lag for redis is ${lag}s and offset is ${offset}"
26 LC_ALL=C lag=$(printf "%.*f" 0 $lag)
27
28 if [[ $lag -lt 5 && $offset -lt 5 ]]; then
a97118c4 29 echo "OK - $output | time=${lag}s;5;10;0; offset=${offset};5;10;0;"
6015a3b5
IB
30 exit $STATE_OK
31 elif [[ $lag -lt 10 && $offset -lt 10 ]]; then
a97118c4 32 echo "WARNING - $output | time=${lag}s;5;10;0; offset=${offset};5;10;0;"
6015a3b5
IB
33 exit $STATE_WARNING
34 else
a97118c4 35 echo "CRITICAL - $output | time=${lag}s;5;10;0; offset=${offset};5;10;0;"
6015a3b5
IB
36 exit $STATE_CRITICAL
37 fi
38fi