1
0
Fork 0
mirror of https://github.com/munin-monitoring/contrib.git synced 2025-07-21 18:41:03 +00:00

Save with UNIX line breaks

This commit is contained in:
Stig Sandbeck Mathisen 2014-10-04 21:22:23 +02:00
parent aaeaa2e64a
commit fc37652294
2 changed files with 214 additions and 214 deletions

View file

@ -1,161 +1,161 @@
#!/bin/bash #!/bin/bash
# #
#healthcheck on munin #healthcheck on munin
#egrep system log and alert. #egrep system log and alert.
# #
#programed by rti (hiroyuki fujie) super.rti@gmail.com @super_rti #programed by rti (hiroyuki fujie) super.rti@gmail.com @super_rti
#LICENSE: NYSL (public domain) #LICENSE: NYSL (public domain)
# #
# #
#config file #config file
# /etc/munin/plugin-conf.d/munin-node # /etc/munin/plugin-conf.d/munin-node
# #
#example minimum config #example minimum config
#--------------------------------------------------- #---------------------------------------------------
#[healthcheck_log] #[healthcheck_log]
#user root #user root
#env.log_1 /var/log/messages #env.log_1 /var/log/messages
#--------------------------------------------------- #---------------------------------------------------
# #
#check two log #check two log
#--------------------------------------------------- #---------------------------------------------------
#[healthcheck_log] #[healthcheck_log]
#user root #user root
#env.log_1 /var/log/messages #env.log_1 /var/log/messages
#env.log_2 /var/log/syslog #env.log_2 /var/log/syslog
#--------------------------------------------------- #---------------------------------------------------
# #
#check two three #check two three
#--------------------------------------------------- #---------------------------------------------------
#[healthcheck_log] #[healthcheck_log]
#user root #user root
#env.log_1 /var/log/messages #env.log_1 /var/log/messages
#env.log_2 /var/log/syslog #env.log_2 /var/log/syslog
#env.log_3 /var/log/dmesg #env.log_3 /var/log/dmesg
#--------------------------------------------------- #---------------------------------------------------
# #
#set name #set name
#--------------------------------------------------- #---------------------------------------------------
#[healthcheck_log] #[healthcheck_log]
#user root #user root
#env.log_1 /var/log/messages #env.log_1 /var/log/messages
#env.name_1 my_server_messages #env.name_1 my_server_messages
#--------------------------------------------------- #---------------------------------------------------
# #
#set egrep string #set egrep string
#--------------------------------------------------- #---------------------------------------------------
#[healthcheck_log] #[healthcheck_log]
#user root #user root
#env.log_1 /var/log/messages #env.log_1 /var/log/messages
#env.grep_1 alert|warning #env.grep_1 alert|warning
#--------------------------------------------------- #---------------------------------------------------
# #
#set egrep string #set egrep string
#--------------------------------------------------- #---------------------------------------------------
#[healthcheck_log] #[healthcheck_log]
#user root #user root
#env.log_1 /var/log/messages #env.log_1 /var/log/messages
#env.grep_1 alert|warning #env.grep_1 alert|warning
#--------------------------------------------------- #---------------------------------------------------
# #
#full option #full option
#/etc/munin/plugin-conf.d/munin-node #/etc/munin/plugin-conf.d/munin-node
#--------------------------------------------------- #---------------------------------------------------
#[healthcheck_log] #[healthcheck_log]
#user root #log file is read only root user. #user root #log file is read only root user.
#env.log_1 /var/log/messages #target log filename #env.log_1 /var/log/messages #target log filename
#env.grep_1 critical|error #egrep string. #env.grep_1 critical|error #egrep string.
#defualt by critical|error|warning|crash|fatal|kernel #defualt by critical|error|warning|crash|fatal|kernel
#--------------------------------------------------- #---------------------------------------------------
# #
#edakari speed up. #edakari speed up.
CHECKMAX=`env | grep log_ | wc -l` CHECKMAX=`env | grep log_ | wc -l`
let CHECKMAX="$CHECKMAX + 1" let CHECKMAX="$CHECKMAX + 1"
MINUTE_BY_GREP_RANGE=10 MINUTE_BY_GREP_RANGE=10
if [ "$1" = "autoconf" ]; then if [ "$1" = "autoconf" ]; then
if [ $CHECKMAX -le 1 ]; then if [ $CHECKMAX -le 1 ]; then
echo no echo no
exit 1 exit 1
fi fi
echo yes echo yes
exit 0 exit 0
fi fi
if [ "$1" = "config" ]; then if [ "$1" = "config" ]; then
echo 'graph_title log grep (match count)' echo 'graph_title log grep (match count)'
echo "graph_args --base 1000 -l 0 --vertical-label match_count" echo "graph_args --base 1000 -l 0 --vertical-label match_count"
echo 'graph_scale no' echo 'graph_scale no'
echo 'graph_vlabel match_count' echo 'graph_vlabel match_count'
echo 'graph_category healthcheck' echo 'graph_category healthcheck'
echo 'graph_info This graph shows the bad event count on log' echo 'graph_info This graph shows the bad event count on log'
for(( I = 1; I < $CHECKMAX; ++I )) for(( I = 1; I < $CHECKMAX; ++I ))
do do
eval log=\$log_${I} eval log=\$log_${I}
eval name=\$name_${I} eval name=\$name_${I}
eval grep=\$grep_${I} eval grep=\$grep_${I}
if [ "x${log}" = "x" ]; then if [ "x${log}" = "x" ]; then
continue continue
fi fi
if [ "x${name}" = "x" ]; then if [ "x${name}" = "x" ]; then
name=`echo $log | sed 's#[/|\.]#_#g'` name=`echo $log | sed 's#[/|\.]#_#g'`
fi fi
if [ "x${name}" = "x" ]; then if [ "x${name}" = "x" ]; then
grep="critical|error|crash|fatal|kernel" grep="critical|error|crash|fatal|kernel"
fi fi
echo "$name.label $name" echo "$name.label $name"
echo "$name.info egrep $grep $log | wc -l" echo "$name.info egrep $grep $log | wc -l"
echo "$name.draw LINE2" echo "$name.draw LINE2"
echo "$name.min 0" echo "$name.min 0"
echo "$name.max 20" echo "$name.max 20"
echo "$name.critical 0:0" echo "$name.critical 0:0"
done done
exit 0 exit 0
fi fi
NOWTIME=`date --date "$MINUTE_BY_GREP_RANGE minute ago" +%s` NOWTIME=`date --date "$MINUTE_BY_GREP_RANGE minute ago" +%s`
for(( I = 1; I < $CHECKMAX; ++I )) for(( I = 1; I < $CHECKMAX; ++I ))
do do
eval log=\$log_${I} eval log=\$log_${I}
eval name=\$name_${I} eval name=\$name_${I}
eval grep=\$grep_${I} eval grep=\$grep_${I}
if [ "x${log}" = "x" ]; then if [ "x${log}" = "x" ]; then
continue continue
fi fi
if [ "x${name}" = "x" ]; then if [ "x${name}" = "x" ]; then
name=`echo $log | sed 's#[/|\.]#_#g'` name=`echo $log | sed 's#[/|\.]#_#g'`
fi fi
if [ "x${grep}" = "x" ]; then if [ "x${grep}" = "x" ]; then
grep="critical|error|crash|fatal|kernel" grep="critical|error|crash|fatal|kernel"
fi fi
COUNT=0 COUNT=0
MESSAGE= MESSAGE=
IFS=$'\n' IFS=$'\n'
MATCHLINES=(`egrep -i "$grep" "$log"`) MATCHLINES=(`egrep -i "$grep" "$log"`)
for(( N = ${#MATCHLINES[@]} - 1; N >= 0 ; --N )) for(( N = ${#MATCHLINES[@]} - 1; N >= 0 ; --N ))
do do
LINE=${MATCHLINES[$N]} LINE=${MATCHLINES[$N]}
DATESTRING=`echo $LINE | awk '{ printf("%s %s %s",$1,$2,$3)}'` DATESTRING=`echo $LINE | awk '{ printf("%s %s %s",$1,$2,$3)}'`
LOGTIME=`date --date "$DATESTRING" +%s` LOGTIME=`date --date "$DATESTRING" +%s`
if [ $LOGTIME -lt $NOWTIME ]; then if [ $LOGTIME -lt $NOWTIME ]; then
break break
fi fi
let COUNT="$COUNT + 1" let COUNT="$COUNT + 1"
MESSAGE="$MESSAGE$LINE //@LINE@// " MESSAGE="$MESSAGE$LINE //@LINE@// "
done done
if [ $COUNT -eq 0 ]; then if [ $COUNT -eq 0 ]; then
echo "${name}.value 0" echo "${name}.value 0"
else else
echo "${name}.value ${COUNT}" echo "${name}.value ${COUNT}"
echo "${name}.extinfo ${MESSAGE}" echo "${name}.extinfo ${MESSAGE}"
fi fi
done done

View file

@ -1,53 +1,53 @@
#!/bin/bash #!/bin/bash
# #
# Plugin to monitor incoming mails greylisted by postfix-policyd # Plugin to monitor incoming mails greylisted by postfix-policyd
# #
# Parameters understood: # Parameters understood:
# #
# config (required) # config (required)
# autoconf (optional) # autoconf (optional)
# #
MYSQL_USER="postfix-policyd" MYSQL_USER="postfix-policyd"
MYSQL_PASS="" MYSQL_PASS=""
MYSQL_DB="postfixpolicyd" MYSQL_DB="postfixpolicyd"
if [ "$1" = "autoconf" ]; then if [ "$1" = "autoconf" ]; then
if [ -n "${MYSQL_PASS}" ] ; then if [ -n "${MYSQL_PASS}" ] ; then
echo yes echo yes
exit 0 exit 0
else else
echo "no (set mysql pass)" echo "no (set mysql pass)"
exit 1 exit 1
fi fi
fi fi
if [ "$1" = "config" ]; then if [ "$1" = "config" ]; then
echo 'graph_title Postfix-Policyd daily filtering' echo 'graph_title Postfix-Policyd daily filtering'
echo 'graph_order delayed passed whitelisted' echo 'graph_order delayed passed whitelisted'
echo 'graph_category mail' echo 'graph_category mail'
echo 'graph_vlabel Count' echo 'graph_vlabel Count'
echo 'graph_scale no' echo 'graph_scale no'
## echo 'graph_args --base 1000 -l 0' ## echo 'graph_args --base 1000 -l 0'
echo 'delayed.label delayed' echo 'delayed.label delayed'
echo 'delayed.type GAUGE' echo 'delayed.type GAUGE'
echo 'passed.label passed' echo 'passed.label passed'
echo 'passed.type GAUGE' echo 'passed.type GAUGE'
echo 'whitelisted.label whitelisted' echo 'whitelisted.label whitelisted'
echo 'whitelisted.type GAUGE' echo 'whitelisted.type GAUGE'
echo 'blacklisted.label blacklisted' echo 'blacklisted.label blacklisted'
echo 'blacklisted.type GAUGE' echo 'blacklisted.type GAUGE'
exit 0 exit 0
fi fi
DELAYED="`echo "SELECT COUNT(*) FROM triplet WHERE _count = 0" | mysql -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} | egrep [0-9]`" DELAYED="`echo "SELECT COUNT(*) FROM triplet WHERE _count = 0" | mysql -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} | egrep [0-9]`"
PASSED="`echo "SELECT COUNT(*) FROM triplet WHERE _count != 0" | mysql -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} | egrep [0-9]`" PASSED="`echo "SELECT COUNT(*) FROM triplet WHERE _count != 0" | mysql -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} | egrep [0-9]`"
WHITELISTED="`echo "SELECT COUNT(*) FROM whitelist" | mysql -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} | egrep [0-9]`" WHITELISTED="`echo "SELECT COUNT(*) FROM whitelist" | mysql -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} | egrep [0-9]`"
BLACKLISTED="`echo "SELECT COUNT(*) FROM blacklist" | mysql -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} | egrep [0-9]`" BLACKLISTED="`echo "SELECT COUNT(*) FROM blacklist" | mysql -u${MYSQL_USER} -p${MYSQL_PASS} ${MYSQL_DB} | egrep [0-9]`"
echo "delayed.value ${DELAYED}" echo "delayed.value ${DELAYED}"
echo "passed.value ${PASSED}" echo "passed.value ${PASSED}"
echo "whitelisted.value ${WHITELISTED}" echo "whitelisted.value ${WHITELISTED}"
echo "blacklisted.value ${BLACKLISTED}" echo "blacklisted.value ${BLACKLISTED}"