BIND 9 Statistics for Cacti

Templates, scripts for templates, scripts and requests for templates.

Moderators: Developers, Moderators

Post Reply
Rossco
Cacti User
Posts: 76
Joined: Sat Jan 15, 2005 4:52 pm
Location: London, England

Post by Rossco »

Hi Gaansch

So, just to confirm, you are using Cory's scripts from the beginning of this thread, or the one I modified for pass_persist?

And the script returns the sort of values you would expect when you run it from the commandline with a "-t"?

Can you post the line of config that you have in your snmpd.conf? It should look something like:

pass_persist .1.3.6.1.4.1.2021.55 /usr/bin/perl /usr/local/etc/bindsnmp/bind9-stats-snmpd.pl

Cheers

Rossco
User avatar
Maillon
Posts: 16
Joined: Wed Jul 04, 2007 4:34 am
Location: Paris

Post by Maillon »

Hi Rossco,

In fact yesterday i run tcpdump on cacti machine and i launched this command myself "snmpwalk -c cerberemib -v 2c cerbere.domain.net .1.3.6.1.4.1.2021.55" from the same machine.


Today i run tcpdump in my cacti machine (poseidon) and i have this result : (spending the polling cycle)

Code: Select all

poseidon:/data/www/cacti# tcpdump -p udp port 161 |grep cerbere
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
12:00:08.532652 IP poseidon.domain.net.3195 > cerbere.domain.net.snmp:  C=cerberemib GetNextRequest(21)  .0.1
12:00:08.532991 IP cerbere.domain.net.snmp > poseidon.domain.net.3195:  C=cerberemib GetResponse(115)  system.sysDescr.0=[|snmp]
12:00:08.553142 IP poseidon.domain.net.3196 > cerbere.domain.net.snmp:  C=cerberemib GetRequest(28)  system.sysUpTime.0
12:00:08.553422 IP cerbere.domain.net.snmp > poseidon.domain.net.3196:  C=cerberemib GetResponse(31)  system.sysUpTime.0=7715435
12:00:08.743897 IP poseidon.domain.net.3196 > cerbere.domain.net.snmp:  C=cerberemib GetRequest(30)  E:2021.11.51.0
12:00:08.744418 IP cerbere.domain.net.snmp > poseidon.domain.net.3196:  C=cerberemib GetResponse(32)  E:2021.11.51.0=17505
12:00:08.748969 IP poseidon.domain.net.3196 > cerbere.domain.net.snmp:  C=cerberemib GetRequest(30)  E:2021.11.52.0
12:00:08.749231 IP cerbere.domain.net.snmp > poseidon.domain.net.3196:  C=cerberemib GetResponse(33)  E:2021.11.52.0=3140928
12:00:08.753577 IP poseidon.domain.net.3196 > cerbere.domain.net.snmp:  C=cerberemib GetRequest(30)  E:2021.11.50.0
12:00:08.753825 IP cerbere.domain.net.snmp > poseidon.domain.net.3196:  C=cerberemib GetResponse(33)  E:2021.11.50.0=2176082
12:00:09.065489 IP poseidon.domain.net.3196 > cerbere.domain.net.snmp:  C=cerberemib GetRequest(30)  interfaces.ifTable.ifEntry.ifInOctets.2
12:00:09.067187 IP cerbere.domain.net.snmp > poseidon.domain.net.3196:  C=cerberemib GetResponse(34)  interfaces.ifTable.ifEntry.ifInOctets.2=327241374
12:00:09.071666 IP poseidon.domain.net.3196 > cerbere.domain.net.snmp:  C=cerberemib GetRequest(30)  interfaces.ifTable.ifEntry.ifOutOctets.2
12:00:09.072594 IP cerbere.domain.net.snmp > poseidon.domain.net.3196:  C=cerberemib GetResponse(35)  interfaces.ifTable.ifEntry.ifOutOctets.2=4155030499
And tcpdump from my snmp server machine (cerbere) i have this : (always spending the polling cycle)

Code: Select all


[root@cerbere snmp]# tcpdump -p udp port 161
tcpdump: listening on eth0
12:00:08.222723 poseidon.domain.net.3195 > cerbere.domain.net.snmp:  C=cerberemib GetNextRequest(21)  .0.1 (DF)
12:00:08.222875 cerbere.domain.net.snmp > poseidon.domain.net.3195:  C=cerberemib GetResponse(34)  system.sysDescr.0="Linux " (DF)
12:00:08.243211 poseidon.domain.net.3196 > cerbere.domain.net.snmp:  C=cerberemib GetRequest(28)  system.sysUpTime.0 (DF)
12:00:08.243322 cerbere.domain.net.snmp > poseidon.domain.net.3196:  C=cerberemib GetResponse(31)  system.sysUpTime.0=7715435 (DF)
12:00:08.433971 poseidon.domain.net.3196 > cerbere.domain.net.snmp:  C=cerberemib GetRequest(30)  E:2021.11.51.0 (DF)
12:00:08.434250 cerbere.domain.net.snmp > poseidon.domain.net.3196:  C=cerberemib GetResponse(32)  E:2021.11.51.0=17505 (DF)
12:00:08.438968 poseidon.domain.net.3196 > cerbere.domain.net.snmp:  C=cerberemib GetRequest(30)  E:2021.11.52.0 (DF)
12:00:08.439105 cerbere.domain.net.snmp > poseidon.domain.net.3196:  C=cerberemib GetResponse(33)  E:2021.11.52.0=3140928 (DF)
12:00:08.443590 poseidon.domain.net.3196 > cerbere.domain.net.snmp:  C=cerberemib GetRequest(30)  E:2021.11.50.0 (DF)
12:00:08.443700 cerbere.domain.net.snmp > poseidon.domain.net.3196:  C=cerberemib GetResponse(33)  E:2021.11.50.0=2176082 (DF)
12:00:08.755528 poseidon.domain.net.3196 > cerbere.domain.net.snmp:  C=cerberemib GetRequest(30)  interfaces.ifTable.ifEntry.ifInOctets.2 (DF)
12:00:08.757013 cerbere.domain.net.snmp > poseidon.domain.net.3196:  C=cerberemib GetResponse(34)  interfaces.ifTable.ifEntry.ifInOctets.2=327241374 (DF)
12:00:08.761650 poseidon.domain.net.3196 > cerbere.domain.net.snmp:  C=cerberemib GetRequest(30)  interfaces.ifTable.ifEntry.ifOutOctets.2 (DF)
12:00:08.762421 cerbere.domain.net.snmp > poseidon.domain.net.3196:  C=cerberemib GetResponse(35)  interfaces.ifTable.ifEntry.ifOutOctets.2=4155030499 (DF)

There are (DF) i don't know what is it...

I try to create the file cerbere_bind_snmp_referral_1113.rrd in /data/www/cacti/rra but i have the same graph : nothing.

This result help you ?
Last edited by Maillon on Wed Jul 18, 2007 7:08 am, edited 2 times in total.
Rossco
Cacti User
Posts: 76
Joined: Sat Jan 15, 2005 4:52 pm
Location: London, England

Post by Rossco »

Hi Maillon

I dont see the polling of the bind stats in your first tcpdump, but the 2nd seems to show cacti correctly querying and being responded to. In which case it would seem your snmp setup is fine and that this is a cacti related issue(in my opinion).

On the off chance, are you running the boost plugin?

Was there anything useful in your poller log in relation to this host? Does cacti say in the log that it is getting responses to the bind oid queries?

Cheers

Rossco
User avatar
Maillon
Posts: 16
Joined: Wed Jul 04, 2007 4:34 am
Location: Paris

Post by Maillon »

I try to change the snmp version to Version 1 in my device and when i click on "Verbose Query" in Device -> Machine -> Associated Data Queries and i have this result :

Code: Select all

+ Running data query [17].
+ Found type = '3' [snmp query].
+ Found data query XML file at '/data/www/cacti/resource/snmp_queries/bind9-stats-snmp.xml'
+ XML file parsed ok.
+ Executing SNMP walk for list of indexes @ '.1.3.6.1.4.1.2021.55.1'
+ Located input field 'bindIndex' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.4.1.2021.55.1'
+ Found item [bindIndex='1'] index: 1 [from value]
+ Found item [bindIndex='2'] index: 2 [from value]
+ Found item [bindIndex='3'] index: 3 [from value]
+ Found item [bindIndex='4'] index: 4 [from value]
+ Located input field 'bindName' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.4.1.2021.55.2'
+ Found item [bindName='GLOBAL'] index: 1 [from value]
+ Found item [bindName='0.0.127.in-addr.arpa_inside'] index: 2 [from value]
+ Found item [bindName='domain.net_inside'] index: 3 [from value]
+ Found item [bindName='1.168.192.in-addr.arpa_inside'] index: 4 [from value]
+ Found data query XML file at '/data/www/cacti/resource/snmp_queries/bind9-stats-snmp.xml'
+ Found data query XML file at '/data/www/cacti/resource/snmp_queries/bind9-stats-snmp.xml'
+ Found data query XML file at '/data/www/cacti/resource/snmp_queries/bind9-stats-snmp.xml'
And there is not SNMP error when the request is launched BUT there are not graph...
Rossco
Cacti User
Posts: 76
Joined: Sat Jan 15, 2005 4:52 pm
Location: London, England

Post by Rossco »

Hi Maillon

Thats the initial query, you should have a text logfile where you can set the output to "Debug" to display the results of your 5 polling cycle?

This should show the in depth results of your polling cycle. Its under "Congiguration"->Settings->Poller Specific Logging. The path to your log file is under the "Paths" tab.

Do you have boost plugin enabled?

Cheers

Rossco
User avatar
Maillon
Posts: 16
Joined: Wed Jul 04, 2007 4:34 am
Location: Paris

Post by Maillon »

Hi Rossco ^^,

In first, how can i verify if i have the boost plugin enabled ? And if it is disabled how can i enabled it ?

In "Settings" -> "Path" there is "Alternate Poller Path (Cacti Poller Path)" and this path is empty. It's normal ?


http://img519.imageshack.us/img519/9269 ... eenqd4.jpg

http://img261.imageshack.us/img261/1787 ... eenin8.jpg

This can help you ?

Thanks
Rossco
Cacti User
Posts: 76
Joined: Sat Jan 15, 2005 4:52 pm
Location: London, England

Post by Rossco »

Hi Maillon

If you didnt explicitly enable boost, it wont be there, Looking at your screen shots it doesnt seem to be installed.(I only asked because I had problems when it was running with these graphs).

The log file you need to look at is in /data/www/cacti/log/cacti.log Try and find entries related to this specific host and see if you are getting the replies you expect.

Cheers

Rossco
User avatar
Maillon
Posts: 16
Joined: Wed Jul 04, 2007 4:34 am
Location: Paris

Post by Maillon »

Hi Rossco ^^,

This is the screen about Console -> Data Source -> The Graph :

http://img442.imageshack.us/img442/4702 ... ph1wk5.jpg

In my cacti log file i find this about my host (number 44) when i click on Console -> Device -> Machine. There are only SQL request, no error, no warning ... it's so weird no ?

Code: Select all

07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Cell: "select cacti from version"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Cell: "select id from user_auth where username='guest'"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "select   user_auth_realm.realm_id   from   user_auth_realm   where user_auth_realm.user_id='1'   and user_auth_realm.realm_id='3'"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Cell: "select username from user_auth where id=1"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "select realm_id from user_auth_realm where user_id=1"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Row: "select * from host where id=44"

07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "select id,name from host_template order by name"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "select   graph_templates.id,   graph_templates.name   from (graph_templates,host_graph)   where graph_templates.id=host_graph.graph_template_id   and host_graph.host_id=44   order by graph_templates.name"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "SELECT   graph_templates.id, graph_templates.name   FROM snmp_query_graph RIGHT JOIN graph_templates   ON (snmp_query_graph.graph_template_id = graph_templates.id)   WHERE (((snmp_query_graph.name) Is Null)) ORDER BY graph_templates.name"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "select id from graph_local where graph_template_id=81 and host_id=44"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Cell: "select id from graph_local where graph_template_id=81 and host_id=44 limit 0,1"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "select   snmp_query.id,   snmp_query.name,   host_snmp_query.reindex_method   from (snmp_query,host_snmp_query)   where snmp_query.id=host_snmp_query.snmp_query_id   and host_snmp_query.host_id=44   order by snmp_query.name"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "select       snmp_query.id,       snmp_query.name       from snmp_query       order by snmp_query.name"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "SELECT snmp_query_id FROM host_snmp_query  WHERE ((host_id=44) and (snmp_query_id=17))"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "SELECT snmp_query_id FROM host_snmp_query  WHERE ((host_id=44) and (snmp_query_id=3))"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "SELECT snmp_query_id FROM host_snmp_query  WHERE ((host_id=44) and (snmp_query_id=4))"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "SELECT snmp_query_id FROM host_snmp_query  WHERE ((host_id=44) and (snmp_query_id=7))"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "SELECT snmp_query_id FROM host_snmp_query  WHERE ((host_id=44) and (snmp_query_id=8))"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "SELECT snmp_query_id FROM host_snmp_query  WHERE ((host_id=44) and (snmp_query_id=9))"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "SELECT snmp_query_id FROM host_snmp_query  WHERE ((host_id=44) and (snmp_query_id=1))"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "SELECT snmp_query_id FROM host_snmp_query  WHERE ((host_id=44) and (snmp_query_id=2))"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "SELECT snmp_query_id FROM host_snmp_query  WHERE ((host_id=44) and (snmp_query_id=6))"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "select snmp_index from host_snmp_cache where host_id=44 and snmp_query_id=17"
07/18/2007 03:18:55 PM - CMDPHP: Poller[0] DEBUG: SQL Assoc: "select snmp_index from host_snmp_cache where host_id=44 and snmp_query_id=17 group by snmp_index"
I think i don't have a graph because the file cerbere_bind_snmp_referral_1113.rrd doesn't exist.

So what am i doing to cacti create it ?
Rossco
Cacti User
Posts: 76
Joined: Sat Jan 15, 2005 4:52 pm
Location: London, England

Post by Rossco »

Hi Maillon

Thats bizarre.

My understanding is that the rrd file will be created afer the first successfull poll. You could try adding the host again using a different name, but the same ip address(in case something is damaged with that host/graph set). I use ucd/net as the host template and then add the Bind9 statistics dataquery, then just create the graphs as normal.

Sorry Maillon, but I am running out of suggestions.

Cheers

Rossco
User avatar
Maillon
Posts: 16
Joined: Wed Jul 04, 2007 4:34 am
Location: Paris

Post by Maillon »

Hi Rossco ^^,

I have recreated my device and i have this :
http://img386.imageshack.us/img386/682/ ... erykm2.jpg

And when i want create the graph i have this :
http://img509.imageshack.us/img509/6330 ... ph2ox9.jpg


But i always don't have a graph and the file . rrd aren't always created.

Maybe i need to launch a script which created the .rrd ?
Rossco
Cacti User
Posts: 76
Joined: Sat Jan 15, 2005 4:52 pm
Location: London, England

Post by Rossco »

Hi Maillon

I think something is odd here - I dont get a "BIND 9 Statistics(SNMP)" under associated graph templates, whereas you have. All I do is add it under Associated Data Queries and the graphs work fine automatically.

It may be you added it by mistake (but I dont know how). Try not adding it as a graph template and just using the associated data queries.

Cheers

Rossco
User avatar
Maillon
Posts: 16
Joined: Wed Jul 04, 2007 4:34 am
Location: Paris

Post by Maillon »

Hi Rossco ^^,

Before I thought it must have "Bind9 Statistics (SNMP)" to do work graphs.

I remove the "Bind9 Statistics (SNMP)" under associated graph templates and i add only associated data queries : i have the same result.

Bind9 Statistics SNMP look like that (see attachment). It's in ../cacti/resources/snmp_queries

There is the file which imported in Template (see attachment).

Now i have this :
http://img443.imageshack.us/img443/833/ ... teddb5.jpg

And this :
http://img376.imageshack.us/img376/4892 ... atexi1.jpg

And my files .rrd aren't created .... it's so weird. Really i think i need to launch a script to create it ... but what script ?
Attachments
cacti_data_query_bind_9_statistics_snmp.xml
(21.49 KiB) Downloaded 565 times
bind9-stats-snmp.xml
(1.65 KiB) Downloaded 516 times
Rossco
Cacti User
Posts: 76
Joined: Sat Jan 15, 2005 4:52 pm
Location: London, England

Post by Rossco »

Hi Maillon

I dont quite see how you have the associated graph query - I have the graph template in my setup, but it is not available to add as a associated graph query, but it may not be relevent. From the screen shots you have shown me it all seems fine. I never had to run any additional scripts to create the rrd - it is created automatically after a successful poller run I believe. The odd thing is that you dont seem to show in your logs that this host is being polled by cacti, whereas the tcpdump seems to show that it is.

I'd suggest you have another trawl through your log file to see if you can fined the poller details for this host and any associated details - you should at least be seeing it querying for the interface statistics, if not the bind stats.

If it definitely isnt showing, then perhaps it isnt in your poller cache(which would be very odd). You could try rebuilding the poller cache in between cycles by going to "System"->"System Utilities"->"Rebuild poller cache". Depending on the size of your installation this may take a while and should probably be done when the poller isnt active.

Cheers

Rossco
gaansch
Posts: 7
Joined: Wed Jul 18, 2007 2:42 am

Post by gaansch »

Hi Rossco,

thanks for your answer.
Rossco wrote: So, just to confirm, you are using Cory's scripts from the beginning of this thread, or the one I modified for pass_persist?
No, im using the script from the beginning.
And the script returns the sort of values you would expect when you run it from the commandline with a "-t"?
Yes the script returns the right results.
Can you post the line of config that you have in your snmpd.conf? It should look something like:

pass_persist .1.3.6.1.4.1.2021.55 /usr/bin/perl /usr/local/etc/bindsnmp/bind9-stats-snmpd.pl
pass .1.3.6.1.4.1.2021.55 /usr/bin/perl /usr/local/bin/bind9-stats-snmpd.pl


As I wrote before it seems that the script isn't invoked by snmp. But the snmp log doesn't tell very much except for the logging entry that some host connected through snmp.

Regards
Sebastian
gaansch
Posts: 7
Joined: Wed Jul 18, 2007 2:42 am

Post by gaansch »

I've just tried the pass_persist version of the script and also get no result via snmp.

Sebastian
Post Reply

Who is online

Users browsing this forum: No registered users and 2 guests