@@ -34,6 +34,27 @@ show_version() {
3434
3535echoerr () { echo " $@ " 1>&2 && exit 1; }
3636
37+ log () {
38+ level=" $1 "
39+ type=" $2 "
40+ shift 2
41+
42+ if [ " $type " = " -v" ] && [ " $VERBOSE_MODE " -ne " 1" ]; then
43+ return 0
44+ fi
45+
46+ case " $level " in
47+ -i) level=daemon.info ;;
48+ -w) level=daemon.warn ;;
49+ -e) level=daemon.err ;;
50+ -* )
51+ echoerr " Invalid message level : $level "
52+ ;;
53+ esac
54+
55+ logger -s " $@ " -p " $level " -t openwisp-monitoring
56+ }
57+
3758check_available_memory () {
3859 while true ; do
3960 total=$( ubus call system info | jsonfilter -e ' @.memory.total' )
@@ -50,9 +71,7 @@ check_available_memory() {
5071 if [ -f " $file " ]; then
5172 rm " $file "
5273 else
53- [ " $VERBOSE_MODE " -eq " 1" ] \
54- && logger -s " Not enough memory available, skipping collect data." \
55- -p daemon.warn
74+ log -w -v " Not enough memory available, skipping collect data."
5675 return 1
5776 fi
5877 fi
@@ -61,14 +80,11 @@ check_available_memory() {
6180
6281collect_data () {
6382 n=0
64- [ " $VERBOSE_MODE " -eq " 1" ] && logger -s " Collecting NetJSON Monitoring data" \
65- -p daemon.info
83+ log -i -v " Collecting NetJSON Monitoring data"
6684 until [ " $n " -ge 5 ]; do
6785 /usr/sbin/netjson-monitoring --dump " $MONITORED_INTERFACES " && break
6886
69- if [ " $n " -eq 5 ]; then
70- [ " $VERBOSE_MODE " -eq " 1" ] && logger -s " Collecting data failed!" -p daemon.err
71- fi
87+ [ " $n " -eq 5 ] && log -e -v " Collecting data failed!"
7288 n=$(( n + 1 ))
7389 sleep 5
7490 done
@@ -103,8 +119,7 @@ save_data() {
103119 echo " $data " > " $TMP_DIR /$filename "
104120 # compress data
105121 gzip " $TMP_DIR /$filename "
106- [ " $VERBOSE_MODE " -eq " 1" ] && logger -s " Data saved temporarily" \
107- -p daemon.info
122+ log -i -v " Data saved temporarily"
108123 fi
109124 # get process id of the process sending data
110125 pid=$( pgrep -f " openwisp-monitoring.*--mode send" )
@@ -114,17 +129,15 @@ save_data() {
114129}
115130
116131handle_sigusr1 () {
117- [ " $VERBOSE_MODE " -eq " 1" ] && logger -s " SIGUSR1 received! Sending data" \
118- -p daemon.info
132+ log -i -v " SIGUSR1 received! Sending data"
119133 return 0
120134}
121135
122136send_data () {
123137 while true ; do
124138 for file in " $TMP_DIR " /* ; do
125139 if [ ! -f " $file " ]; then
126- [ " $VERBOSE_MODE " -eq " 1" ] && logger -s " No data file found to send." \
127- -p daemon.info
140+ log -i -v " No data file found to send. Checking after $INTERVAL seconds"
128141 trap handle_sigusr1 USR1
129142 # SIGUSR1 signal received, interrupt sleep and continue sending data
130143 sleep " $INTERVAL " &
@@ -152,40 +165,32 @@ send_data() {
152165 while true ; do
153166 if [ " $failures " -eq " $MAX_RETRIES " ]; then
154167 [ -f " $RESPONSE_FILE " ] && error_message=" \" $( cat " $RESPONSE_FILE " ) \" " || error_message=' "".'
155- if [ " $VERBOSE_MODE " -eq " 1" ]; then
156- logger -s " Data not sent successfully. Response code is \" $response_code \" ." \
157- " Error message is $error_message " \
158- -p daemon.err
159- elif [ " $FAILING " -eq " 0" ]; then
168+ log -e -v " Data not sent successfully. Response code is \" $response_code \" ." \
169+ " Error message is $error_message "
170+ # check if agent was already passing or not to avoid repeating log messages
171+ if [ " $FAILING " -eq " 0" ]; then
160172 FAILING=1
161- logger -s " Data not sent successfully. Response code is \" $response_code \" ." \
162- " Error message is $error_message " \
163- " Run with verbose mode to find more." \
164- -t openwisp-monitoring \
165- -p daemon.err
173+ [ " $VERBOSE_MODE " -ne " 1" ] && log -e -n " Data not sent successfully. Response code is \" $response_code \" ." \
174+ " Run with verbose mode to find more."
166175 fi
167176 break
168177 fi
169178 # send data
170179 response_code=$( $CURL_COMMAND -H " Content-Type: application/json" -d " $data " " $url " )
171180 if [ " $response_code " = " 200" ]; then
172- if [ " $VERBOSE_MODE " -eq " 1" ]; then
173- logger -s " Data sent successfully." \
174- -p daemon.info
175- elif [ " $FAILING " -eq " 1" ]; then
176- logger -s " Data sent successfully" \
177- -t openwisp-monitoring \
178- -p daemon.info
181+ log -i -v " Data sent successfully"
182+ # check if agent was already failing or not to avoid repeating log messages
183+ if [ " $FAILING " -eq " 1" ]; then
179184 FAILING=0
180185 rm -f " $RESPONSE_FILE "
186+ [ " $VERBOSE_MODE " -ne " 1" ] && log -i -n " Data sent successfully"
181187 fi
182188 # remove saved data
183189 rm -f " $filename "
184190 break
185191 else
186192 timeout=$(( timeout * 2 ))
187- [ " $VERBOSE_MODE " -eq " 1" ] && logger -s " Data not sent successfully. Retrying in $timeout seconds" \
188- -p daemon.warn
193+ log -w -v " Data not sent successfully. Retrying in $timeout seconds"
189194 failures=$(( failures + 1 ))
190195 sleep " $timeout "
191196 fi
@@ -247,8 +252,7 @@ main() {
247252 shift
248253 ;;
249254 -* )
250- echo " Invalid option: $1 "
251- exit 1
255+ echoerr " Invalid option: $1 "
252256 ;;
253257 * ) break ;;
254258 esac
0 commit comments