Categories
Errors Linux Software

Munin & Bind9_rndc

2012/06/18-16:30:03 [28214] Error output from bind9_rndc:
2012/06/18-16:30:03 [28214] rndc: error: none:0: open: /etc/bind/rndc.key: permission denied
2012/06/18-16:30:03 [28214] rndc: could not load rndc configuration

However, via command line (and user root) it works:

/etc/munin/plugins # ./bind9_rndc 
query_recursion.value 0
query_success.value 80
query_nxrrset.value 17
query_requests.value 104
query_failure.value 0
query_duplicates.value 0
query_nonauth_answer.value 0
query_nxdomain.value 4
query_auth_answer.value 101
query_responses.value 104

Solution:

add this to /etc/munin/plugin-conf.d/munin-node:

[bind_rndc]
user bind

and be sure the key has the right ownership:

sudo chown root:bind /etc/bind/rndc.key
sudo chmod 644 /etc/bind/rndc.key

and restart munin-node.

Categories
Apple Linux Networking Software

Prowl: check server status (using ping)

Yesterday I’ve start using Prowl, as I heard good comments about it. And one of the things I want it to check, are my server statuses. I made a quick script using bash and crontab to check every 10 min if it replies on ping. Per server, I created “host.domain.tld.sh” (e.g. zero.rootspirit.com.sh), and added this in the file:

#!/bin/bash
KEY=YourApiKey
HOST=zero.rootspirit.com
ping -c 1 $HOST   &>/dev/null
if [ $? -ne 0 ] ; then
curl -k -s "https://prowl.weks.net/publicapi/add?apikey=$KEY&application=Server%20Connectivity%20Failure&event=&description=$HOST&priority=2"
fi

Of course, change KEY to your API key, HOST to the IP or DNS of the server it should ping. Also, make sure, that when pinging on your host where you’ll run the bash script on, a non-existing domain actually returns:

ping: unknown host ezfzigjagaqg.reg

instead of

PING ezfzigjagaqg.reg.rootspirit.com (85.12.6.130) 56(84) bytes of data.

(Should depend on the search line in /etc/resolv.conf) As I’m pinging about 6 servers I created the file “checkServers.sh” with this content:

#!/bin/bash
 
`/home/yeri/prowl/zero.rootspirit.com.sh &>/dev/null`
`/home/yeri/prowl/one.rootspirit.com.sh &>/dev/null`
`/home/yeri/prowl/two.rootspirit.com.sh &>/dev/null`
`/home/yeri/prowl/four.rootspirit.com.sh &>/dev/null`
`/home/yeri/prowl/vm0.rootspirit.com.sh &>/dev/null`
`/home/yeri/prowl/vm1.rootspirit.com.sh &>/dev/null`

Make sure to chmod +x *.sh, to make it executable, and edit crontab and add something like that:

*/10	*	*	*	*	/home/yeri/prowl/checkServers.sh &>/dev/null

Don’t forget to test it whether it works or not (try non-existing domain(s), and run the script again).