DD-WRT v24

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

Moderators: Developers, Moderators

Post Reply
odmon
Posts: 14
Joined: Fri Feb 22, 2008 12:30 pm

DD-WRT v24

Post by odmon »

Bellow there are templates for DD-WRT v24 (and v23 sp2). The graphs can be seen here http://www.odmon.com/ddwrtv24.php

The graphs created are:
*CPU
*Memory
*Load avg
*Number of associated wireless clients
*SNR of given wireless client
*Interfaces traffic

The template can be run for v23 also, but starting from v23 sp2 you are able to monitor wireless clients.

Unfortunatelly there are some problems with wireless clients info oid implementation, so sometimes you can have some problems. The possible solution and tips can found here http://www.odmon.com/fasttrackdetails.php?id=1

This template is used at http://www.odmon.com for online monitoring of dd-wrt boxes (good solution for those who do not have or cannot run thier own cacti) and were tested by some cacti+dd-wrt users

The php script goes to scripts/ and xml query to resource/snmp_queries/
Attachments
Example SNR graph, see the link above for all examples
Example SNR graph, see the link above for all examples
snr_128.png (31.3 KiB) Viewed 21143 times
DDWRT_v24_template_by_odmon.com.zip
Templates
(30 KiB) Downloaded 2772 times
Devroush
Posts: 27
Joined: Sun Jan 22, 2006 7:35 am

Post by Devroush »

That is brilliant! Thanks a lot for this.

edit: I've got a small problem with the detailed memory graph. Used memory shows 0 MB. Buffers, cached en shared memory are correct.
odmon
Posts: 14
Joined: Fri Feb 22, 2008 12:30 pm

Post by odmon »

On all my graphs the memory detailed is graphed fine. Could you post the graph?
Devroush
Posts: 27
Joined: Sun Jan 22, 2006 7:35 am

Post by Devroush »

I suspect that it has something to do with shared memory being 0 MB (maybe this isn't normal?). I didn't check the function you use to calculate used memory, I'll have a look at it.

This is what the log shows

Code: Select all

01/09/2009 10:35:19 PM - CMDPHP: Poller[0] Host[3] DS[32] SNMP: v1: soprano, dsname: ucd_memTotalReal, oid: .1.3.6.1.4.1.2021.4.5.0, output: 13132
01/09/2009 10:35:19 PM - CMDPHP: Poller[0] Host[3] DS[31] SNMP: v1: soprano, dsname: ucd_memShared, oid: .1.3.6.1.4.1.2021.4.13.0, output: 0
01/09/2009 10:35:19 PM - CMDPHP: Poller[0] Host[3] DS[30] SNMP: v1: soprano, dsname: ucd_memCached, oid: .1.3.6.1.4.1.2021.4.15.0, output: 4928
01/09/2009 10:35:19 PM - CMDPHP: Poller[0] Host[3] DS[29] SNMP: v1: soprano, dsname: ucd_memBuffer, oid: .1.3.6.1.4.1.2021.4.14.0, output: 1524
01/09/2009 10:35:19 PM - CMDPHP: Poller[0] Host[3] DS[28] SNMP: v1: soprano, dsname: ucd_memAvailReal, oid: .1.3.6.1.4.1.2021.4.6.0, output: 732 
Attachments
soprano_mem.png
soprano_mem.png (22.6 KiB) Viewed 21094 times
odmon
Posts: 14
Joined: Fri Feb 22, 2008 12:30 pm

Post by odmon »

There are some tricky CDEFs created for this graph in order to allow it be presented like this. I could not find any other mem graph that would show all used add up and total as a background. Please check the graph debug

it should look as attached.
Attachments
Memory detailed. Very nice odmon style :)
Memory detailed. Very nice odmon style :)
odmon_mem.png (24.89 KiB) Viewed 21072 times
User avatar
Setarcos
Cacti User
Posts: 143
Joined: Mon Dec 13, 2004 2:55 pm
Location: San Jose, CA
Contact:

Post by Setarcos »

Devroush wrote:I suspect that it has something to do with shared memory being 0 MB (maybe this isn't normal?). I didn't check the function you use to calculate used memory, I'll have a look at it.

This is what the log shows

Code: Select all

01/09/2009 10:35:19 PM - CMDPHP: Poller[0] Host[3] DS[32] SNMP: v1: soprano, dsname: ucd_memTotalReal, oid: .1.3.6.1.4.1.2021.4.5.0, output: 13132
01/09/2009 10:35:19 PM - CMDPHP: Poller[0] Host[3] DS[31] SNMP: v1: soprano, dsname: ucd_memShared, oid: .1.3.6.1.4.1.2021.4.13.0, output: 0
01/09/2009 10:35:19 PM - CMDPHP: Poller[0] Host[3] DS[30] SNMP: v1: soprano, dsname: ucd_memCached, oid: .1.3.6.1.4.1.2021.4.15.0, output: 4928
01/09/2009 10:35:19 PM - CMDPHP: Poller[0] Host[3] DS[29] SNMP: v1: soprano, dsname: ucd_memBuffer, oid: .1.3.6.1.4.1.2021.4.14.0, output: 1524
01/09/2009 10:35:19 PM - CMDPHP: Poller[0] Host[3] DS[28] SNMP: v1: soprano, dsname: ucd_memAvailReal, oid: .1.3.6.1.4.1.2021.4.6.0, output: 732 
I am seeing the same thing (both v24-sp1 and v24-pre-sp2 (svn11482)) and suspect it has something to do with the CDEFs (see graph below).

I am also having problems with the PHP script used by the number of wireless clients. The template as imported has the script running outside of the script server, but includes some script server support bits. I can't get it to work either way with cacti 0.8.7b:

stand-alone

Code: Select all

[set@setsbox cacti]$ php /var/www/html/cacti-0.8.7b/scripts/ddwrt_nmb_wireless_clients.php 192.168.1.1 public 2 161 500
PHP Notice:  Undefined variable:  config in /var/www/html/cacti-0.8.7b/lib/snmp.php on line 33
Content-type: text/html
X-Powered-By: PHP/4.3.9

2
script server

Code: Select all

[set@setsbox cacti]$ php script_server.php
PHP Script Server has Started - Parent is cmd
/var/www/html/cacti-0.8.7b/scripts/ddwrt_nmb_wireless_clients.php 192.168.1.1 public 2 161 500
WARNING: Function does not exist
I am going to take a crack at redoing the script in Perl...
Attachments
DD-WRT memory usage graph
DD-WRT memory usage graph
setswap-memoryusage-graph-problem.png (41.3 KiB) Viewed 20627 times
User avatar
Setarcos
Cacti User
Posts: 143
Joined: Mon Dec 13, 2004 2:55 pm
Location: San Jose, CA
Contact:

Post by Setarcos »

Here is my version of ddwrt_nmb_wireless_clients re-written in Perl. To install, just replace Data Input Methods->DDWRT Numer of Wireless Clients->Input String

Original

Code: Select all

php <path_cacti>/scripts/ddwrt_nmb_wireless_clients.php <hostname> <snmp_community> <snmp_version> <snmp_port> <snmp_timeout>
New

Code: Select all

perl <path_cacti>/scripts/ddwrt_nmb_wireless_clients.pl <hostname> <snmp_community> <snmp_version> <snmp_port> <snmp_timeout>
Attachments
ddwrt_nmb_wireless_clients.pl
ddwrt_nmb_wireless_clients re-written in Perl
(1.58 KiB) Downloaded 796 times
odmon
Posts: 14
Joined: Fri Feb 22, 2008 12:30 pm

Post by odmon »

It seems that CDEFs are the problem, but shouldn't the used CDEFs be exported in host template? I am not sure how to fix that.

Regarding the php script, well, it is a bit taken from other scripts and definitely it is not a fine piece of o programming, good job on the perl script
ikmps
Posts: 2
Joined: Wed Mar 24, 2010 9:57 am

Post by ikmps »

Hi All

I am busy playing with Cacti and DD-wrt which all seems to be working ok except "the number of wireless clients" i seem to only get a max number of clients of 3 on cacti but when i check the access point there can be 15 - 16 users working through the point, i am also getting drop out on the client numbers ie the graph just drops to 0 and stays there for a while which seems to be the same time the load average peaks

any ideas why

thanks

Paul
odmon
Posts: 14
Joined: Fri Feb 22, 2008 12:30 pm

Post by odmon »

The snmp implementation for wireless clients is rather poor. I have raised this issue to dd-wrt developers but I don't know if they fixed that.
For temporary solution you can do this:
http://odmon.com/fasttrackdetails.php?id=1
"If at any time graphs will start to show wrong values e.g.that there is one host associated, when there will be none, it means that wl_snmpd.sh (run by snmpd) is working bad. I do not know why is happens, but solution is to restart wl_snmpd.sh from time to time. You can do this by going to Administration - Management and enable such Cron entry:
*/15 * * * * root /usr/bin/killall wl_snmpd.sh

This will kill the wl_snmpd.sh, which then will be run by snmp whenever odmon.com poller ask for snmp value "

Not a nice solution but it works!
www.odmon.com
ikmps
Posts: 2
Joined: Wed Mar 24, 2010 9:57 am

Post by ikmps »

Hi

Thanks for that will keep a eye on DD-wrt for a fix ????

Paul
iwhite
Posts: 4
Joined: Mon Mar 05, 2012 6:44 am

Re: DD-WRT v24

Post by iwhite »

Hello, all

I have problem with DDWRT - SNR Data query.
The "ddwrt_assoc_clients.xml" is to "/var/www/cacti/resource/snmp_queries/"
The "ddwrt_nmb_wireless_clients.php " is to "/var/www/cacti/scripts"
I imported the "ddv24 by odmon.com" file from Cacti console.
Any ideas for this issue "+ Error parsing XML file into an array"?
Thanks in advance :)

Code: Select all

+ Running data query [10].
+ Found type = '3' [SNMP Query].
+ Found data query XML file at '/var/www/cacti/resource/snmp_queries/ddwrt_assoc_clients.xml'
+ Error parsing XML file into an array.
+ Found data query XML file at '/var/www/cacti/resource/snmp_queries/ddwrt_assoc_clients.xml'
+ Found data query XML file at '/var/www/cacti/resource/snmp_queries/ddwrt_assoc_clients.xml'
+ Found data query XML file at '/var/www/cacti/resource/snmp_queries/ddwrt_assoc_clients.xml'
smalldragoon
Posts: 1
Joined: Sat Mar 12, 2016 4:32 am

Re: DD-WRT v24

Post by smalldragoon »

Hi All,
I'm just reopening an old topic here.
I have a fresh Cacti install , on which I tested few DDWRT54 template which were not providing good results.
Testing this one, I was able to have at some point some graph for the interfaces ...
I tried other templates after but definitly , this one is the best one.
I deleted all data sources, templates, devices ref ...
Reinstalled the different templates but I can't get working the interfaces anymore ...
Few points I double checked :
As it is SNMP, using the SNMP Interface query is working ( I'm able to get some graph from my switch )
I'm able to connect to the DDWRT and get some stats as I have CPU, Load... without any problem
In debug/verbose mode, I can see some results :

SNMP - Interface Statistics (Verbose Query) Uptime Goes Backwards Success [50 Items, 8 Rows]

and verbose result :
+ Running data query [1].
+ Found type = '3' [SNMP Query].
+ Found data query XML file at '/var/www/cacti/resource/snmp_queries/interface.xml'
+ XML file parsed ok.
+ Executing SNMP get for num of indexes @ '.1.3.6.1.2.1.2.1.0' Index Count: 8
+ Executing SNMP walk for list of indexes @ '.1.3.6.1.2.1.2.2.1.1' Index Count: 8
+ Index found at OID: '.1.3.6.1.2.1.2.2.1.1.1' value: '1'
+ Index found at OID: '.1.3.6.1.2.1.2.2.1.1.2' value: '2'
+ Index found at OID: '.1.3.6.1.2.1.2.2.1.1.3' value: '3'
+ Index found at OID: '.1.3.6.1.2.1.2.2.1.1.4' value: '4'
+ Index found at OID: '.1.3.6.1.2.1.2.2.1.1.5' value: '5'
+ Index found at OID: '.1.3.6.1.2.1.2.2.1.1.6' value: '6'
+ Index found at OID: '.1.3.6.1.2.1.2.2.1.1.7' value: '7'
+ Index found at OID: '.1.3.6.1.2.1.2.2.1.1.8' value: '8'
+ Located input field 'ifIndex' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.1'
+ Found item [ifIndex='1'] index: 1 [from value]
+ Found item [ifIndex='2'] index: 2 [from value]
+ Found item [ifIndex='3'] index: 3 [from value]
+ Found item [ifIndex='4'] index: 4 [from value]
+ Found item [ifIndex='5'] index: 5 [from value]
+ Found item [ifIndex='6'] index: 6 [from value]
+ Found item [ifIndex='7'] index: 7 [from value]
+ Found item [ifIndex='8'] index: 8 [from value]
+ Located input field 'ifOperStatus' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.8'
+ Found item [ifOperStatus='Up'] index: 1 [from value]
+ Found item [ifOperStatus='Down'] index: 2 [from value]
+ Found item [ifOperStatus='Up'] index: 3 [from value]
+ Found item [ifOperStatus='Up'] index: 4 [from value]
+ Found item [ifOperStatus='Up'] index: 5 [from value]
+ Found item [ifOperStatus='Up'] index: 6 [from value]
+ Found item [ifOperStatus='Up'] index: 7 [from value]
+ Found item [ifOperStatus='Down'] index: 8 [from value]
+ Located input field 'ifDescr' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.2'
+ Found item [ifDescr='lo'] index: 1 [from value]
+ Found item [ifDescr='teql0'] index: 2 [from value]
+ Found item [ifDescr='eth0'] index: 3 [from value]
+ Found item [ifDescr='eth1'] index: 4 [from value]
+ Found item [ifDescr='vlan0'] index: 5 [from value]
+ Found item [ifDescr='vlan1'] index: 6 [from value]
+ Found item [ifDescr='br0'] index: 7 [from value]
+ Found item [ifDescr='etherip0'] index: 8 [from value]
+ Located input field 'ifName' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.31.1.1.1.1'
+ Located input field 'ifAlias' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.31.1.1.1.18'
+ Located input field 'ifType' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.3'
+ Found item [ifType='24'] index: 1 [from value]
+ Found item [ifType='1'] index: 2 [from value]
+ Found item [ifType='6'] index: 3 [from value]
+ Found item [ifType='6'] index: 4 [from value]
+ Found item [ifType='6'] index: 5 [from value]
+ Found item [ifType='6'] index: 6 [from value]
+ Found item [ifType='6'] index: 7 [from value]
+ Found item [ifType='6'] index: 8 [from value]
+ Located input field 'ifSpeed' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.5'
+ Found item [ifSpeed='10000000'] index: 1 [from value]
+ Found item [ifSpeed='0'] index: 2 [from value]
+ Found item [ifSpeed='10000000'] index: 3 [from value]
+ Found item [ifSpeed='10000000'] index: 4 [from value]
+ Found item [ifSpeed='10000000'] index: 5 [from value]
+ Found item [ifSpeed='10000000'] index: 6 [from value]
+ Found item [ifSpeed='10000000'] index: 7 [from value]
+ Found item [ifSpeed='10000000'] index: 8 [from value]
+ Located input field 'ifHighSpeed' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.31.1.1.1.15'
+ Located input field 'ifHwAddr' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.6'
+ Found item [ifHwAddr=''] index: 1 [from value]
+ Found item [ifHwAddr=''] index: 2 [from value]
+ Found item [ifHwAddr='00:1D:7E:E3:4E:9B'] index: 3 [from value]
+ Found item [ifHwAddr='00:1D:7E:E3:4E:9D'] index: 4 [from value]
+ Found item [ifHwAddr='00:1D:7E:E3:4E:9B'] index: 5 [from value]
+ Found item [ifHwAddr='00:1D:7E:E3:4E:9B'] index: 6 [from value]
+ Found item [ifHwAddr='00:1D:7E:E3:4E:9B'] index: 7 [from value]
+ Found item [ifHwAddr='AE:2F:C2:C4:5F:3F'] index: 8 [from value]
+ Located input field 'ifIP' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.4.20.1.2'
+ Found item [ifIP='127.0.0.1'] index: 1 [from regexp oid parse]
+ Found item [ifIP='169.254.255.1'] index: 7 [from regexp oid parse]
+ Found item [ifIP='172.16.25.206'] index: 7 [from regexp oid parse]

What am I missing ? is there somehting which was changed because of my test with other templates ??
Thx in advance !
Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests