作者:麦兜199294_835 | 来源:互联网 | 2023-09-12 14:39
RabbitMQ队列监控?下面脚本可以监控RabbitMQ队列,可以看到剩余队列数量,已经增加数量。?#!binbash####################
?
RabbitMQ 队列监控
?
下面脚本可以监控RabbitMQ 队列,可以看到剩余队列数量,已经增加数量。
?
#!/bin/bash
##################################################
# Website http://www.netkiller.cn
# Author netkiller
# OSCM https://github.com/oscm/shell
##################################################
# You have to clean data at midnight
# crontab -e
# 05 00 * * * /www/queue.gnuplot.sh clean
##################################################
QUEUE=example
##################################################
PROG=$(basename $0 .sh)
LOGFILE=/var/tmp/$PROG.log
PIDFILE=/var/tmp/$PROG.pid
GNUPLOTDATA=/var/tmp/queue.$PROG.$QUEUE.dat
PNGFILE=/www/example.com/www.example.com/public/img/queue
##################################################
function collector(){
datetime=$(date ‘+%H:%M:%S‘)
queue=$(rabbitmqctl list_queues | grep $QUEUE | awk -F‘ ‘ ‘{print $2}‘)
echo "$datetime $queue" >> $GNUPLOTDATA
}
function generate(){
datetime=$(date ‘+%Y-%m-%d %H:%M:%S‘)
gnuplot <set terminal png truecolor size 1024,480
set output "$PNGFILE-day.png"
set autoscale
set xdata time
set timefmt "%H:%M"
set format x "%H:%M"
set style data lines
set xlabel "$datetime GMT+800"
set ylabel "Burndown"
set title "RabbitMQ Burndown - Day"
set grid
plot "$GNUPLOTDATA" using 1:2 title "Burndown"
EOF
hour=$(date ‘+%H‘)
gnuplot <set terminal png truecolor size 1024,480
set output "$PNGFILE-hour.png"
set autoscale
set xdata time
set timefmt "%H:%M"
set xrange ["$hour:00":"$hour:60"]
set format x "%H:%M"
set style data lines
set xlabel "$datetime GMT+800"
set ylabel "Burndown"
set title "RabbitMQ Burndown - Hour"
set grid
plot "$GNUPLOTDATA" using 1:2 title "Burndown"
EOF
minute=$(date ‘+%H:%M‘)
minute5=$(date --date=‘5 minutes ago‘ "+%H:%M")
gnuplot <> $LOGFILE.minute
set terminal png truecolor size 1024,480
set output "$PNGFILE-minute.png"
set autoscale
set xdata time
set timefmt "%H:%M:%S"
set xrange ["$minute5:00":"$minute:60"]
set format x "%H:%M:%S"
set style data lines
set xlabel "$datetime GMT+800"
set ylabel "Burndown"
set title "RabbitMQ Burndown - Minute"
set grid
plot "$GNUPLOTDATA" using 1:2 title "Burndown"
EOF
}
function daemon(){
for (( ; ; )) do
collector
generate
sleep 60
done &
echo $! > $PIDFILE
}
function start(){
if [ ! -f $RRDDATA ]; then
create
fi
daemon
}
function stop(){
[ -f $PIDFILE ] && kill `cat $PIDFILE` && rm -rf $PIDFILE
}
function status(){
ps ax | grep $PROG | grep -v grep | grep -v status
}
function clean(){
rm -rf $GNUPLOTDATA
}
function usage(){
echo $"Usage: $0 {start|stop|restart|status|clean}"
echo $"
Options
-v, --verbose increase verbosity
-q, --quiet suppress non-error messages
-h, --help show this help (-h works with no other options)
Website http://www.netkiller.cn
Author netkiller
"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
-d)
daemon
;;
clean)
clean
;;
*)
usage
;;
esac
RETVAL=$?
exit $RETVAL?
?
?
?
?