PowerDNS Stats

From Frotmail Projects
Jump to navigation Jump to search

Waneer je PowerDNS draait kan het intressant zijn om statistieken bij te houden. In PowerDNS zit de mogelijkheid om een interne webserver te draaien, welke zeer uitgebreide statistieken kan weergeven. Echter bij een restart van de service is deze informatie verloren.

Om een aantal performance counters in Cacti weer te geven kunnen de onderstaande tools worden gebruikt.

PowerDNS

Via het pdns_control commando kan men verschillende counters uitlezen:

root@vps:/home/eric# pdns_control show *
corrupt-packets=0,deferred-cache-inserts=0,deferred-cache-lookup=0,latency=0,packetcache-hit=909,
packetcache-miss=10760,packetcache-size=322,qsize-q=1,query-cache-hit=12492,query-cache-miss=33716,
recursing- answers=0,recursing-questions=0,servfail-packets=0,tcp-answers=3,tcp-queries=9,
timedout-packets=0,udp-answers=11679,udp-queries=11688,udp4-answers=11456,udp4-queries=11465,
udp6-answers=223,udp6-queries=223,

Een aantal van deze counters heb ik in een script opgenomen welke worden doorgevoerd naar Cacti:

/etc/powerdns/pdns_cacti.sh

#!/bin/bash
/usr/bin/sudo pdns_control show latency
/usr/bin/sudo pdns_control show corrupt-packets
/usr/bin/sudo pdns_control show query-cache-hit
/usr/bin/sudo pdns_control show query-cache-miss
/usr/bin/sudo pdns_control show tcp-queries
/usr/bin/sudo pdns_control show udp-queries
/usr/bin/sudo pdns_control show udp4-queries
/usr/bin/sudo pdns_control show udp6-queries

Dit script laat ik vervolgens door SNMP uitvoeren en doorgeven

/etc/snmp/snmpd.conf

extend pdns-rec /etc/powerdns/pdns_cacti.sh

Omdat SNMP bij mij niet als root draait zal de 'snmp' user het pdns_control commando moeten kunnen uitvoeren (zie script, met behulp van sudo)

/etc/sudoers

snmp	ALL=NOPASSWD: /usr/bin/pdns_control

Als we het script executable hebben gemaakt:

chmod 755 /etc/powerdns/pdns_cacti.sh

En de snmpd hebben herstart

/etc/init.d/snmpd restart

Dan kunnen we testen of het script via SNMP is aan te roepen:

eric@vps:~$ snmpwalk -v 2c -c public [server hostname]  .1.3.6.1.4.1.8072.1.3.2.4.1.2
iso.3.6.1.4.1.8072.1.3.2.4.1.2.8.112.100.110.115.45.114.101.99.1 = STRING: "0"
iso.3.6.1.4.1.8072.1.3.2.4.1.2.8.112.100.110.115.45.114.101.99.2 = STRING: "0"
iso.3.6.1.4.1.8072.1.3.2.4.1.2.8.112.100.110.115.45.114.101.99.3 = STRING: "12494"
iso.3.6.1.4.1.8072.1.3.2.4.1.2.8.112.100.110.115.45.114.101.99.4 = STRING: "33727"
iso.3.6.1.4.1.8072.1.3.2.4.1.2.8.112.100.110.115.45.114.101.99.5 = STRING: "9"
iso.3.6.1.4.1.8072.1.3.2.4.1.2.8.112.100.110.115.45.114.101.99.6 = STRING: "11693"
iso.3.6.1.4.1.8072.1.3.2.4.1.2.8.112.100.110.115.45.114.101.99.7 = STRING: "11470"
iso.3.6.1.4.1.8072.1.3.2.4.1.2.8.112.100.110.115.45.114.101.99.8 = STRING: "223"

Dit is alles wat vanaf de server gedaan moet worden

Cacti

Om de grafiek in Cacti te krijgen kan je gebruik maken van deze cacti template: test

Door deze te importeren krijg je bij het maken van nieuwe grafieken de optie om een PowerDNS grafiek te maken. Deze kan er dan als volgt uitzien:

File:Powerdns.png