prtg
http://www.paessler.com/prtg/features
prtg的sensor技术
数据库监视
Flexible Alerting
- 9 notification technologies: Send Email, SMS/Pager, syslog and SNMP Trap, HTTP request, Event log entry, Play alarm sound files, Amazon SNS, any external technology that can be triggered by an EXE or batch file
- Status alerts (up, down, warning)
- Limit alerts (value above/below x)
- Threshold alerts (above/below x for y minutes)
- Multiple condition alerts (x and y are down)
- Escalation alerts (extra notifications every x min during downtime)
- Dependencies (avoid alarm floods)
- Acknowledge Alarms (no more notifications for this alarm)
- Alert Scheduling (no low priority alerts at night)
通知投递 告诉prtg如何发送消息
通知 定义消息的类别与内容
通知触发
prtg api编程
<prtg>
<text>
</text>
<error>
</error>
<result>
</result>
</prtg>
<prtg>
<result>
<channel>a</channel>
<value>10</value>
</result>
<result>
<channel>b</channel>
<value>20</value>
</result>
</prtg>
[root@109-com1 scripts]# cat rx
#!/bin/bash
eth=eth0
RXpre=$(ifconfig ${eth} | grep bytes | awk '{print $2}'| awk -F":" '{print $2}')
TXpre=$(ifconfig ${eth} | grep bytes | awk '{print $6}' | awk -F":" '{print $2}')
sleep 1
RXnext=$(ifconfig ${eth} | grep bytes | awk '{print $2}'| awk -F":" '{print $2}')
TXnext=$(ifconfig ${eth} | grep bytes | awk '{print $6}' | awk -F":" '{print $2}')
echo "0:$(((${RXnext}-${RXpre})/1024)):recv!!!KB/s"
[root@109-com1 scripts]# cat daxiao
#!/bin/bash
daxiao=`ls -l /var/log/asterisk/messages |cut -d " " -f5`
echo "0:$daxiao:messages!!!!!!!"
prtg change web default sound
1.mp3与ogg同时替换命名为beep
2.并且要将mp3转换为ogg格式
3.清空浏览器缓存
prtg邮件发送三步走
1.通知投递,设置smtp地址与用户名与密码
2.通知
3.触发
prtg api
ASAP as soon as possible
172.16.1.14:8080
prtg
live graph 2小时120个值,1分钟扫描间隔
2天
SSH Script sensors
only one channel per sensor
The returned data for standard SSH Script sensors must be in the following format:
returncode:value:message
Value has to be a 64 bit integer or float and will be used as the resulting value for this sensor (e.g. bytes, milliseconds, etc.),
message can be any string and will be stored in the database.
[%sitename] %device %name %status %down (%message)
C:\ProgramData\Paessler\PRTG Network Monitor\
#!/bin/bash
port="80"
service="WEB"
NETSTAT=`which netstat`
ID=`which id`
die(){
exit 999
}
is_root(){
local id=$($ID -u)
if [ $id -ne 0 ]
then
echo "4:500:You have to be root to run $0." # returncode 4 = put sensor in DOWN status
die
fi
}
preparation(){
if [ ! -x $NETSTAT ]
then
echo "2:500:netstat not found."
die
fi
if [ ! -x $ID ]
then
echo "2:500:id not found." # returncode = 2 = put sensor in DOWN status
die
fi
is_root
}
check_service(){
serviceIsRunning=false
openPorts=$($NETSTAT -tulpn | grep -vE '^Active|Proto' | grep 'LISTEN' | awk '{ print $4}' | awk -F: '{print $NF}' | sed '/^$/d' | sort -u)
for openPort in $openPorts
do
if [ "$port" == "$openPort" ]
then
serviceIsRunning=true
echo "0:200:$service is running." # returncode 0 = put sensor in OK status
break
fi
done
if [ $serviceIsRunning == false ]
then
echo "1:404:$service is not running." # returncode 1 = put sensor in WARNING status
fi
}
main(){
preparation
check_service
}
main
These few lines cover a lot of simple service check needs.
Here's a super simple service check script I'm using on Ubuntu systems. When you set it up in PRTG, just put the service name you want to check in the parameter box.
That becomes $1 in the script. $? is the status of the service as reported by the service command.
This is all assembled in the echo to be formatted to make PRTG show pretty and informative results.
#!/bin/sh
service $1 status 2>&1 1>/dev/null
if [ $? -ne 0 ]; then
echo "1:$?:$1 down"
else
echo "0:$?:OK"
fi