-
-
Notifications
You must be signed in to change notification settings - Fork 31
Expand file tree
/
Copy pathmonitoring.init
More file actions
executable file
·104 lines (90 loc) · 3.51 KB
/
monitoring.init
File metadata and controls
executable file
·104 lines (90 loc) · 3.51 KB
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
99
100
101
102
103
104
#!/bin/sh /etc/rc.common
#
# OpenWISP Monitoring Daemon
# shellcheck disable=SC2034
START=99
STOP=15
USE_PROCD=1
PROG="/usr/sbin/openwisp-monitoring"
PROG_NAME="OpenWISP monitoring daemon"
time_to_seconds() {
time=$1
{ [ "$time" -ge 1 ] 2>/dev/null && seconds="$time"; } \
|| { [ "${time%s}" -ge 1 ] 2>/dev/null && seconds="${time%s}"; } \
|| { [ "${time%m}" -ge 1 ] 2>/dev/null && seconds=$((${time%m} * 60)); } \
|| { [ "${time%h}" -ge 1 ] 2>/dev/null && seconds=$((${time%h} * 3600)); } \
|| { [ "${time%d}" -ge 1 ] 2>/dev/null && seconds=$((${time%d} * 86400)); }
echo "$seconds"
unset seconds
unset time
}
start_service() {
# for openwisp-config
config_load openwisp
config_get base_url http url
config_get uuid http uuid
config_get key http key
config_get cacert http cacert
config_get capath http capath
config_get_bool verify_ssl http verify_ssl "1"
config_get respawn_threshold http respawn_threshold
config_get respawn_timeout http respawn_timeout
config_get respawn_retry http respawn_retry
[ -n "$base_url" ] && base_url="--url $base_url"
[ -n "$uuid" ] && uuid="--uuid $uuid"
[ -n "$key" ] && key="--key $key"
[ -n "$cacert" ] && cacert="--cacert $cacert"
[ -n "$capath" ] && capath="--capath $capath"
[ -n "$verify_ssl" ] && verify_ssl="--verify_ssl $verify_ssl"
if [ -z "$base_url" ]; then
logger -s "url is not set, please add it to /etc/config/openwisp" \
-t openwisp-monitoring \
-p daemon.err
exit 1
fi
# for openwisp-monitoring
config_load openwisp-monitoring
config_get monitored_interfaces monitoring monitored_interfaces "*"
config_get interval monitoring interval "300"
config_get_bool verbose_mode monitoring verbose_mode "0"
config_get required_memory monitoring required_memory "0.05"
config_get max_retries monitoring max_retries "5"
config_get bootup_delay monitoring bootup_delay "10"
config_get ignore_wifi monitoring ignore_wifi
config_get ignore_wifi_mac monitoring ignore_wifi_mac
interval="$(time_to_seconds "$interval")"
if [ "$interval" -lt 1 ]; then
logger -s "Interval is invalid. Use time value(eg: '10', '2m', '3h', '1d')" \
-t openwisp-monitoring \
-p daemon.err
exit 1
fi
interval="--interval $interval"
verbose="--verbose_mode ${verbose_mode:-0}"
required_memory="--required_memory $required_memory"
max_retries="--max_retries $max_retries"
bootup_delay="--bootup_delay $bootup_delay"
procd_open_instance "openwisp-monitoring_collect_data"
# shellcheck disable=SC2086,SC2154
procd_set_param command $PROG $interval $verbose $required_memory --mode collect --monitored_interfaces "$monitored_interfaces" --ignore_wifi "$ignore_wifi" --ignore_wifi_mac "$ignore_wifi_mac"
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
[ "$verbose_mode" -eq "1" ] && procd_set_param stdout 1 && procd_set_param stderr 1
procd_close_instance
procd_open_instance "openwisp-monitoring_send_data"
# shellcheck disable=SC2086
procd_set_param command $PROG $base_url $uuid $key $cacert $capath $verify_ssl $interval $verbose $max_retries $bootup_delay --mode send
procd_set_param respawn "${respawn_threshold:-3600}" "${respawn_timeout:-5}" "${respawn_retry:-5}"
[ "$verbose_mode" -eq "1" ] && procd_set_param stdout 1 && procd_set_param stderr 1
procd_close_instance
logger -s "$PROG_NAME started" \
-t openwisp-monitoring \
-p daemon.info
}
stop_service() {
logger -s "$PROG_NAME stopping" \
-t openwisp-monitoring \
-p daemon.info
}
service_triggers() {
procd_add_reload_trigger "openwisp" "openwisp-monitoring"
}