~arosales/charms/precise/nrpe-external-master/better-icon

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/bin/bash
set -eux

# Try to ensure we have an IP address, not a hostname
function get_ipaddress {
    local addr=${1:?}
    echo $addr | egrep -q '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$'
    if [ $? -ne 0 ]; then
        # Could be a hostname
        addr=$(host -4 -t a ${addr} | awk 'NR==1 { print $NF }')
        if [ ${addr} = "3(NXDOMAIN)" ]; then
            # Maybe not, return the original input just to be safe
            addr=$1
        fi
    fi
    echo ${addr}
}

#-----------------------------------------------------
# nrpe.cfg and rsyncd.conf
#-----------------------------------------------------

export NAGIOS_MASTER=$(config-get nagios_master)
export SERVER_PORT=$(config-get server_port)
cheetah fill --env --oext compiled templates/nrpe.cfg.tmpl
cp templates/nrpe.cfg.compiled /etc/nagios/nrpe.cfg
if [[ -d /etc/rsyncd.d ]]; then
    export RSYNC_MODULE_ONLY=1
else
    export RSYNC_MODULE_ONLY=0
fi
cheetah fill --env --oext compiled templates/rsyncd.conf.tmpl
if [[ -d /etc/rsyncd.d ]]; then
    cp templates/rsyncd.conf.compiled /etc/rsyncd.d/010-nrpe-external-master
    concat_rsync_fragments || true
else
    cp templates/rsyncd.conf.compiled /etc/rsyncd.conf
fi

#-----------------------------------------------------
# Standard Checks
#-----------------------------------------------------
DISK_ROOT=$(config-get disk_root)
ZOMBIES=$(config-get zombies)
PROCS=$(config-get procs)
LOAD=$(config-get load)
USERS=$(config-get users)
SWAP=$(config-get swap)

echo "# Root disk" > /etc/nagios/nrpe.d/check_disk_root.cfg
echo "command[check_disk_root]=/usr/lib/nagios/plugins/check_disk ${DISK_ROOT} -p /" >> /etc/nagios/nrpe.d/check_disk_root.cfg

echo "# Number of Zombie processes" > /etc/nagios/nrpe.d/check_zombie_procs.cfg
echo "command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs ${ZOMBIES}" >> /etc/nagios/nrpe.d/check_zombie_procs.cfg

echo "# Number of processes" > /etc/nagios/nrpe.d/check_total_procs.cfg
echo "command[check_total_procs]=/usr/lib/nagios/plugins/check_procs ${PROCS}" >> /etc/nagios/nrpe.d/check_total_procs.cfg

echo "# System Load" > /etc/nagios/nrpe.d/check_load.cfg
echo "command[check_load]=/usr/lib/nagios/plugins/check_load ${LOAD}" >> /etc/nagios/nrpe.d/check_load.cfg

echo "# Number of Users" > /etc/nagios/nrpe.d/check_users.cfg
echo "command[check_users]=/usr/lib/nagios/plugins/check_users ${USERS}" >> /etc/nagios/nrpe.d/check_users.cfg

echo "# Swap" > /etc/nagios/nrpe.d/check_swap.cfg
echo "command[check_swap]=/usr/lib/nagios/plugins/check_swap ${SWAP}" >> /etc/nagios/nrpe.d/check_swap.cfg

#------------------------------------------------------
# Host check
#------------------------------------------------------
# Handle nrpe-external-master one to many
# The relation that is set will have the relation information
# others will be blank
RELATION=''
RELATION_IDS=$(relation-ids nrpe-external-master)
for id in $RELATION_IDS; do
    RELATION=$(relation-list -r $id)
    if [ -n "$RELATION" ]; then
        break
    fi
done
if [ -z "$RELATION" ]; then
    RELATION="$JUJU_UNIT_NAME"
fi
export NAGIOS_HOSTNAME="$(config-get nagios_host_context)-${RELATION}"
export NAGIOS_HOSTNAME=${NAGIOS_HOSTNAME//\//-}
export IPADDRESS=$(get_ipaddress $(unit-get private-address))
export HOSTCHECK_INHERIT=$(config-get hostcheck_inherit)
export HOSTGROUPS=$(config-get hostgroups)
cheetah fill --env --oext compiled templates/host.cfg.tmpl
rm -f /var/lib/nagios/export/host__*.cfg
cp templates/host.cfg.compiled /var/lib/nagios/export/host__${NAGIOS_HOSTNAME}.cfg

#------------------------------------------------------
# Service specific checks
#------------------------------------------------------

service nagios-nrpe-server reload