removed pushover files (they are now integrated into alarm-notify.sh
Costa Tsaousis (ktsaou) committed
Sep 9, 2016 at 00:59 UTC
a82c149234da54efb805fa58dc8b9c0c430dc2d0
2 files changed
-246
conf.d/health_pushover_tokens.conf
deleted
-16
@@ -1,16 +0,0 @@
1
-# Configuration for pushover alarms
2
-# by Jan Arnold
3
-# v0.1
4
-# 2016-09-12
5
-#
6
-# This is the configuration file for alarm-pushover.sh, a shell script for using the Pushover (https://pushover.net)
7
-# push service with netdata. Please copy this to the netdata config directory, which by default is "/etc/netdata/".
8
-# Once Pushover is installed on your phone or computer, you need to create an account to receive a user token.
9
-# This is needed so the push reaches your device.
10
-#
11
-# Further help for pushover: https://pushover.net/faq
12
-#
13
-# Generate an apptoken and a usertoken at https://pushover.net and insert them here
14
-
15
-APPTOKEN=""
16
-USERTOKEN=""
plugins.d/alarm-pushover.sh
deleted
-230
@@ -1,230 +0,0 @@
1
-#!/usr/bin/env bash
2
-# based on alarm-email.sh by netdata
3
-# by Jan Arnold
4
-# v0.1
5
-# 2016-09-12
6
-#
7
-# This is a shell script for using the Pushover (https://pushover.net) push service.
8
-# Copy this script to the netdata plugin folder which by default is "/usr/libexec/netdata/plugins.d/".
9
-# In the config file for the alarm you want to use it for add:
10
-# "exec: /usr/libexec/netdata/plugins.d/alarm-pushover.sh"
11
-# Once Pushover client is installed on your phone or computer, you need to create an account to receive a
12
-# user token. This is needed so the push reaches your device.
13
-#
14
-# Generate an apptoken at https://pushover.net and insert that and the usertoken into the
15
-# "healt_pushover_tokens.conf" file which has to reside in the netdata config dir which by
16
-# default is "/etc/netdata/".
17
-#
18
-# Further help for pushover: https://pushover.net/faq
19
-
20
-me="${0}"
21
-
22
-curl="$(which curl 2>/dev/null || command -v curl 2>/dev/null)"
23
-if [ -z "${curl}" ]
24
-then
25
- echo >&2 "I cannot send push notifications - there is no curl command available."
26
- exit 1
27
-fi
28
-
29
-if [ -f "${NETDATA_CONFIG_DIR}/health_pushover_tokens.conf" ]
30
- then
31
- source "${NETDATA_CONFIG_DIR}/health_pushover_tokens.conf"
32
-else
33
- echo >&2 "${me}: FAILED to source ${NETDATA_CONFIG_DIR}/health_pushover_tokens.conf for push token"
34
- exit 1
35
-fi
36
-
37
-if ! [ "$APPTOKEN" ]
38
- then
39
- echo >&2 "${me}: FAILED - Please set pushover APPTOKEN in ${NETDATA_CONFIG_DIR}/health_pushover_tokens.conf"
40
- exit 1
41
-fi
42
-
43
-if ! [ "$USERTOKEN" ]
44
- then
45
- echo >&2 "${me}: FAILED - Please set pushover USERTOKEN in ${NETDATA_CONFIG_DIR}/health_pushover_tokens.conf"
46
- exit 1
47
-fi
48
-
49
-curl_pushover() {
50
- httpcode=$(curl --write-out %{http_code} --silent --output /dev/null \
51
- --form-string "token=$APPTOKEN" \
52
- --form-string "user=$USERTOKEN" \
53
- --form-string "html=1" \
54
- --form-string "title=$TITLE" \
55
- --form-string "message=$MESSAGE" \
56
- https://api.pushover.net/1/messages.json)
57
-
58
- if [ "$httpcode" == "200" ]
59
- then
60
- echo >&2 "${me}: Sent notification push for ${status} on '${chart}.${name}'"
61
- return 0
62
- else
63
- echo >&2 "${me}: FAILED to send notification push for ${status} on '${chart}.${name}'"
64
- return 1
65
- fi
66
-}
67
-
68
-recipient="${1}" # the recepient of the push
69
-hostname="${2}" # the hostname this event refers to
70
-unique_id="${3}" # the unique id of this event
71
-alarm_id="${4}" # the unique id of the alarm that generated this event
72
-event_id="${5}" # the incremental id of the event, for this alarm
73
-when="${6}" # the timestamp this event occured
74
-name="${7}" # the name of the alarm, as given in netdata health.d entries
75
-chart="${8}" # the name of the chart (type.id)
76
-family="${9}" # the family of the chart
77
-status="${10}" # the current status : UNITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL
78
-old_status="${11}" # the previous status: UNITIALIZED, UNDEFINED, CLEAR, WARNING, CRITICAL
79
-value="${12}" # the current value
80
-old_value="${13}" # the previous value
81
-src="${14}" # the line number and file the alarm has been configured
82
-duration="${15}" # the duration in seconds the previous state took
83
-non_clear_duration="${16}" # the total duration in seconds this is non-clear
84
-units="${17}" # the units of the value
85
-info="${18}" # a short description of the alarm
86
-
87
-[ ! -z "${info}" ] && info=" <small><br/>${info}</small>"
88
-
89
-# get the system hostname
90
-[ -z "${hostname}" ] && hostname="${NETDATA_HOSTNAME}"
91
-[ -z "${hostname}" ] && hostname="${NETDATA_REGISTRY_HOSTNAME}"
92
-[ -z "${hostname}" ] && hostname="$(hostname 2>/dev/null)"
93
-
94
-goto_url="${NETDATA_REGISTRY_URL}/goto-host-from-alarm.html?machine_guid=${NETDATA_REGISTRY_UNIQUE_ID}&chart=${chart}&family=${family}"
95
-
96
-date="$(date --date=@${when} 2>/dev/null)"
97
-[ -z "${date}" ] && date="$(date 2>/dev/null)"
98
-
99
-# convert a duration in seconds, to a human readable duration
100
-# using DAYS, MINUTES, SECONDS
101
-duration4human() {
102
- local s="${1}" d=0 h=0 m=0 ds="day" hs="hour" ms="minute" ss="second"
103
- d=$(( s / 86400 ))
104
- s=$(( s - (d * 86400) ))
105
- h=$(( s / 3600 ))
106
- s=$(( s - (h * 3600) ))
107
- m=$(( s / 60 ))
108
- s=$(( s - (m * 60) ))
109
-
110
- if [ ${d} -gt 0 ]
111
- then
112
- [ ${m} -ge 30 ] && h=$(( h + 1 ))
113
- [ ${d} -gt 1 ] && ds="days"
114
- [ ${h} -gt 1 ] && hs="hours"
115
- if [ ${h} -gt 0 ]
116
- then
117
- echo "${d} ${ds} and ${h} ${hs}"
118
- else
119
- echo "${d} ${ds}"
120
- fi
121
- elif [ ${h} -gt 0 ]
122
- then
123
- [ ${s} -ge 30 ] && m=$(( m + 1 ))
124
- [ ${h} -gt 1 ] && hs="hours"
125
- [ ${m} -gt 1 ] && ms="minutes"
126
- if [ ${m} -gt 0 ]
127
- then
128
- echo "${h} ${hs} and ${m} ${ms}"
129
- else
130
- echo "${h} ${hs}"
131
- fi
132
- elif [ ${m} -gt 0 ]
133
- then
134
- [ ${m} -gt 1 ] && ms="minutes"
135
- [ ${s} -gt 1 ] && ss="seconds"
136
- if [ ${s} -gt 0 ]
137
- then
138
- echo "${m} ${ms} and ${s} ${ss}"
139
- else
140
- echo "${m} ${ms}"
141
- fi
142
- else
143
- [ ${s} -gt 1 ] && ss="seconds"
144
- echo "${s} ${ss}"
145
- fi
146
-}
147
-
148
-severity="${status}"
149
-raised_for="<br/><small>(was ${old_status,,} for $(duration4human ${duration}))</small>"
150
-status_message="status unknown"
151
-color="grey"
152
-alarm="${name} = ${value} ${units}"
153
-
154
-# prepare the title based on status
155
-case "${status}" in
156
- CRITICAL)
157
- status_message="is critical"
158
- color="#ca414b"
159
- ;;
160
-
161
- WARNING)
162
- status_message="needs attention"
163
- color="#caca4b"
164
- ;;
165
-
166
- CLEAR)
167
- status_message="recovered"
168
- color="#77ca6d"
169
-
170
- # don't show the value when the status is CLEAR
171
- # for certain alarms, this value might not have any meaning
172
- alarm="${name}"
173
- ;;
174
-esac
175
-
176
-if [ "${status}" != "WARNING" -a "${status}" != "CRITICAL" -a "${status}" != "CLEAR" ]
177
-then
178
- # don't do anything if this is not WARNING, CRITICAL or CLEAR
179
- echo >&2 "${me}: not sending notification push for ${status} on '${chart}.${name}'"
180
- exit 0
181
-elif [ "${old_status}" != "WARNING" -a "${old_status}" != "CRITICAL" -a "${status}" = "CLEAR" ]
182
-then
183
- # don't do anything if this is CLEAR, but it was not WARNING or CRITICAL
184
- echo >&2 "${me}: not sending notification push for ${status} on '${chart}.${name}' (last status was ${old_status})"
185
- exit 0
186
-elif [ "${status}" = "CLEAR" ]
187
-then
188
- severity="Recovered from ${old_status}"
189
- if [ $non_clear_duration -gt $duration ]
190
- then
191
- raised_for="<br/><small>(had issues for $(duration4human ${non_clear_duration}))</small>"
192
- fi
193
-
194
-elif [ "${old_status}" = "WARNING" -a "${status}" = "CRITICAL" ]
195
-then
196
- severity="Escalated to ${status}"
197
- if [ $non_clear_duration -gt $duration ]
198
- then
199
- raised_for="<br/><small>(has issues for $(duration4human ${non_clear_duration}))</small>"
200
- fi
201
-
202
-elif [ "${old_status}" = "CRITICAL" -a "${status}" = "WARNING" ]
203
-then
204
- severity="Demoted to ${status}"
205
- if [ $non_clear_duration -gt $duration ]
206
- then
207
- raised_for="<br/><small>(has issues for $(duration4human ${non_clear_duration}))</small>"
208
- fi
209
-
210
-else
211
- raised_for=
212
-fi
213
-
214
-# generate push message
215
-TITLE="${hostname} ${status_message} - ${chart}.${name}"
216
-MESSAGE="<font size="5" color=\"${color}\"><b>${hostname} ${status_message}</b></font>
217
-
218
-<b>${alarm}</b>${info}
219
-
220
-Chart: ${chart}
221
-Family: ${family}
222
-Severity: ${severity}
223
-Time: ${date}
224
-${raised_for}
225
-<a href=\"${goto_url}\">View Netdata</a>
226
-
227
-<small>The source of this alarm is line ${src}</small>"
228
-
229
-# send the push
230
-curl_pushover