JBoss snmp-adaptor Templates
Moderators: Developers, Moderators
JBoss snmp-adaptor Templates
JBoss 3.2 and 4.0 all configuration includes an SNMP-to-JMX bridge which makes it quite easy and efficient for Cacti to poll statistics about particular MBeans which expose int/long-type attributes.
Out of the box the configuration file server/all/snmp-adaptor.sar/attributes.xml links several MBeans to allow Cacti to poll Java Memory, Threads, and the JBoss TransactionManager (number of commits/rollbacks/etc.).
I have created a Host Template, several Data Templates, and three Graph Templates for the aforementioned attributes that come configured by default (TransactionManager is particularly interesting).
Have a look at the JBoss wiki on snmp-adaptor for documentation about how to customize the MBeans exposed to SNMP.
Out of the box the configuration file server/all/snmp-adaptor.sar/attributes.xml links several MBeans to allow Cacti to poll Java Memory, Threads, and the JBoss TransactionManager (number of commits/rollbacks/etc.).
I have created a Host Template, several Data Templates, and three Graph Templates for the aforementioned attributes that come configured by default (TransactionManager is particularly interesting).
Have a look at the JBoss wiki on snmp-adaptor for documentation about how to customize the MBeans exposed to SNMP.
- Attachments
-
- Cacti-JBoss-Templates.xml
- JBoss SNMP Adaptor Host Template
- (39.89 KiB) Downloaded 6264 times
-
- Screenshot of the Graph Templates
- Cacti-JBoss.png (117.77 KiB) Viewed 88965 times
The graphs you generated with your templates look like exactly what I need.
Could you please elaborate a bit on how to install it?
I have Cacti configured, and monitoring several servers via SNMP, but I am not sure what to do with the file I downloaded from your post:
cacti_jboss_templates_140.xml
Thanks,
David
Could you please elaborate a bit on how to install it?
I have Cacti configured, and monitoring several servers via SNMP, but I am not sure what to do with the file I downloaded from your post:
cacti_jboss_templates_140.xml
Thanks,
David
On the Cacti side, you see the following items on the console menu:
Download the cacti_jboss_templates_140.xml file from this forum, and upload it to the Import Templates for in Cacti.
This file will create 3 Graph Templates (JBoss - Active Thread Count, JBoss - Memory Utilization, and JBoss - Transaction Manager), 1 Host Template (JBoss SNMP Adaptor), and 5 Data Templates (JBoss - Active Thread Count, JBoss - Free Memory, JBoss - Max Memory, JBoss - Transaction Commit Count, etc.).
Understand that the JBoss snmp-adaptor and NET-SNMP agents are separate SNMP Agent software listening on different ports, for instance you may have NET-SNMP on a host serving stats on UDP 161 and JBoss on 1161. For this reason you have to create additional Device entries for JBoss, even if you already have ucd/net SNMP Devices for the same hosts.
Just like your existing SNMP devices, go to the Device form and Add a new device, use a Description so you can discern it from the hosts' ucd/net SNMP Device counterpart, choose Host Template = JBoss SNMP Adaptor, and SNMP Port = 1161. After saving the Device, the form should display some generic SNMP information it obtained from JBoss, stuff like Location: In The Matrix and Contact: Agent Smith, however if you see SNMP Error you'll need to work on the JBoss installation detailed below (though you may continue the Create Graphs steps). Finally, again just like existing SNMP devices, you click Create Graphs for this Host and follow those steps for enabling the 3 Graph Templates for this host (checkboxes, save, confirm...).
On the JBoss side, you need to ensure the JBoss snmp-adaptor is enabled.
Since JBoss version 3.2.2, the snmp-adaptor service has been included in the all configuration, but I think you need to be running at least 4.0.4 to be able to GET SNMP data (prior versions were only concerned with Traps). Chances are you're using the default configuration rather than all which has lots of goodies like Clustering, HA-JNDI, etc. and takes 30 seconds longer to startup! JBoss installs running the all configuration talk to eachother using multicast packets, a bit over-the-top for a vanilla J2EE stack. Irregardless, if you're running the minimal or default configuration you can still copy the snmp-adaptor files from the unused all directory tree and get it to working (I haven't tested this with snmp-adaptor, but have done similar configuration with other JBoss components).
If necessary,
You can test that snmp-adaptor is working from the NET-SNMP command-line tool snmpwalk:
There is an example MIB stored in server/all/deploy/snmp-adaptor.sar/attributes.mib. This may help you understand what statistics are available from JBoss, however it isn't utilized by Cacti whatsoever.
In general you can graph any JMX Attribute visible on the JMX-console (http://localhost:8080/jmx-console/), however you have to configure the file server/all/deploy/snmp-adaptor.sar/attributes.xml to specify additional attributes than the ones defined in this template. You can also configure JBoss to emit Traps based on JMX Notifications, though that's not really a Cacti thing.
There are a few wiki pages that document snmp-adaptor:
http://wiki.jboss.org/wiki/Wiki.jsp?pag ... NMPAdapter
http://wiki.jboss.org/wiki/Wiki.jsp?pag ... rGetValues
Hope that helps
Code: Select all
Devices
----------------
Graph Templates
Host Templates
Data Templates
----------------
Import Templates
This file will create 3 Graph Templates (JBoss - Active Thread Count, JBoss - Memory Utilization, and JBoss - Transaction Manager), 1 Host Template (JBoss SNMP Adaptor), and 5 Data Templates (JBoss - Active Thread Count, JBoss - Free Memory, JBoss - Max Memory, JBoss - Transaction Commit Count, etc.).
Understand that the JBoss snmp-adaptor and NET-SNMP agents are separate SNMP Agent software listening on different ports, for instance you may have NET-SNMP on a host serving stats on UDP 161 and JBoss on 1161. For this reason you have to create additional Device entries for JBoss, even if you already have ucd/net SNMP Devices for the same hosts.
Just like your existing SNMP devices, go to the Device form and Add a new device, use a Description so you can discern it from the hosts' ucd/net SNMP Device counterpart, choose Host Template = JBoss SNMP Adaptor, and SNMP Port = 1161. After saving the Device, the form should display some generic SNMP information it obtained from JBoss, stuff like Location: In The Matrix and Contact: Agent Smith, however if you see SNMP Error you'll need to work on the JBoss installation detailed below (though you may continue the Create Graphs steps). Finally, again just like existing SNMP devices, you click Create Graphs for this Host and follow those steps for enabling the 3 Graph Templates for this host (checkboxes, save, confirm...).
On the JBoss side, you need to ensure the JBoss snmp-adaptor is enabled.
Since JBoss version 3.2.2, the snmp-adaptor service has been included in the all configuration, but I think you need to be running at least 4.0.4 to be able to GET SNMP data (prior versions were only concerned with Traps). Chances are you're using the default configuration rather than all which has lots of goodies like Clustering, HA-JNDI, etc. and takes 30 seconds longer to startup! JBoss installs running the all configuration talk to eachother using multicast packets, a bit over-the-top for a vanilla J2EE stack. Irregardless, if you're running the minimal or default configuration you can still copy the snmp-adaptor files from the unused all directory tree and get it to working (I haven't tested this with snmp-adaptor, but have done similar configuration with other JBoss components).
If necessary,
Code: Select all
cd /path/to/jboss
cp -pr server/all/deploy/snmp-adaptor.sar server/default
Code: Select all
snmpwalk -v 1 -c public localhost:1161 .1.2.3.4
In general you can graph any JMX Attribute visible on the JMX-console (http://localhost:8080/jmx-console/), however you have to configure the file server/all/deploy/snmp-adaptor.sar/attributes.xml to specify additional attributes than the ones defined in this template. You can also configure JBoss to emit Traps based on JMX Notifications, though that's not really a Cacti thing.
There are a few wiki pages that document snmp-adaptor:
http://wiki.jboss.org/wiki/Wiki.jsp?pag ... NMPAdapter
http://wiki.jboss.org/wiki/Wiki.jsp?pag ... rGetValues
Hope that helps
JBoss snmp-adaptor Templates
Thank you so much!
I had not noticed Import/Export in Cacti.
This is all the information I needed. Unfortunately, we are running JBOSS 4.0.3SP1 on the servers I need to monitor with Cacti, not 4.0.4GA, so I may need to use another monitoring method.
Thanks again, for the quick, complete response.
David
I had not noticed Import/Export in Cacti.
This is all the information I needed. Unfortunately, we are running JBOSS 4.0.3SP1 on the servers I need to monitor with Cacti, not 4.0.4GA, so I may need to use another monitoring method.
Thanks again, for the quick, complete response.
David
i am not able to see graphs on the new device that i created
dear all i have made all the steps that you have said about but i am not able to see graphs on the new device that i have created
i tried to run snmpwalk
snmpwalk -v 1 -c public localhost:1161 .1.2.3.4
[argent@linux_server default]$ snmpwalk -v 1 -c public localhost:1161 .1.2.3.4
Timeout: No Response from localhost:1161
and i am getting SNMP error when i am creating the device
can you help
thanks
i tried to run snmpwalk
snmpwalk -v 1 -c public localhost:1161 .1.2.3.4
[argent@linux_server default]$ snmpwalk -v 1 -c public localhost:1161 .1.2.3.4
Timeout: No Response from localhost:1161
and i am getting SNMP error when i am creating the device
can you help
thanks
U
I can get the SNMP vale by command:
root@dubai rra]# snmpwalk -v1 -c public 192.168.0.201:1261
SNMPv2-MIB::sysDescr = STRING: Central Computer
SNMPv2-MIB::sysObjectID = OID: SNMPv2-SMI::enterprises.18016.1.1.2
SNMPv2-MIB::sysUpTime = Wrong Type (should be Timeticks): Gauge32: 392652
SNMPv2-MIB::sysContact = STRING: Agent Smith
SNMPv2-MIB::sysName = STRING: default@127.0.0.1
SNMPv2-MIB::sysLocation = STRING: In The Matrix
SNMPv2-MIB::sysServices = INTEGER: 64
End of MIB
I can see Cacti showed under http://192.168.0.199/cacti/host.php?action=edit&id=1001:
jboss@201 (192.168.0.201)
SNMP Information
System: Central Computer
Uptime: Wrong Type (should be Timeticks): 432316 (0 days, 0 hours, 0 minutes)
Hostname: default@127.0.0.1
Location: In The Matrix
Contact: Agent Smith
However Cacti cannot draw the graph, and return the log:
08/31/2007 11:15:05 AM - CMDPHP: Poller[0] Host[1001] SNMP: Host did not respond to SNMP
Anyone can help me? Thanks
root@dubai rra]# snmpwalk -v1 -c public 192.168.0.201:1261
SNMPv2-MIB::sysDescr = STRING: Central Computer
SNMPv2-MIB::sysObjectID = OID: SNMPv2-SMI::enterprises.18016.1.1.2
SNMPv2-MIB::sysUpTime = Wrong Type (should be Timeticks): Gauge32: 392652
SNMPv2-MIB::sysContact = STRING: Agent Smith
SNMPv2-MIB::sysName = STRING: default@127.0.0.1
SNMPv2-MIB::sysLocation = STRING: In The Matrix
SNMPv2-MIB::sysServices = INTEGER: 64
End of MIB
I can see Cacti showed under http://192.168.0.199/cacti/host.php?action=edit&id=1001:
jboss@201 (192.168.0.201)
SNMP Information
System: Central Computer
Uptime: Wrong Type (should be Timeticks): 432316 (0 days, 0 hours, 0 minutes)
Hostname: default@127.0.0.1
Location: In The Matrix
Contact: Agent Smith
However Cacti cannot draw the graph, and return the log:
08/31/2007 11:15:05 AM - CMDPHP: Poller[0] Host[1001] SNMP: Host did not respond to SNMP
Anyone can help me? Thanks
I have some idea, result from console command
php /opt/app/apache/httpd_2.2.4/htdocs/cacti/poller.php
....
08/31/2007 01:49:30 PM - POLLER: Poller[0] DEBUG: About to Spawn a Remote Process [CMD: /opt/app/php/bin/php, ARGS: -q /opt/app/cacti/cacti-0.8.6j/cmd.php 801 801]
Error in packet.
Reason: (noSuchName) There is no such variable name in this MIB.
Failed object: .0.1
....
How can I fix
php /opt/app/apache/httpd_2.2.4/htdocs/cacti/poller.php
....
08/31/2007 01:49:30 PM - POLLER: Poller[0] DEBUG: About to Spawn a Remote Process [CMD: /opt/app/php/bin/php, ARGS: -q /opt/app/cacti/cacti-0.8.6j/cmd.php 801 801]
Error in packet.
Reason: (noSuchName) There is no such variable name in this MIB.
Failed object: .0.1
....
How can I fix
-
- Posts: 5
- Joined: Wed Sep 12, 2007 4:34 pm
Hi!
I am facing the same problem. I´ve run a tcpdump to check if the packet is being sent do right port
13:04:04.868242 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto 17, length: 64) riomp06ld01.globoi.com.8349 > 10.20.x.x.1161: [bad udp cksum 7f65!] UDP, length 36
13:04:04.868614 IP (tos 0x0, ttl 64, id 679, offset 0, flags [DF], proto 17, length: 64) 10.20.132.178.1161 > xxxx.globoi.com.8349: [udp sum ok] UDP, length 36
It seems that the problem is with snmp ping test that is done while through the poller script... Any help I would also appreciate...
Just for the record... the test runs ok
[gustavo@rxxx lib]$ snmpwalk -v 1 -c public 10.20.xx.xx:1161
SNMPv2-MIB::sysDescr = STRING: Central Computer
SNMPv2-MIB::sysObjectID = OID: SNMPv2-SMI::enterprises.18016.1.1.2
SNMPv2-MIB::sysUpTime = Wrong Type (should be Timeticks): Gauge32: 7066450
SNMPv2-MIB::sysContact = STRING: Agent Smith
SNMPv2-MIB::sysName = STRING: stable2@10.20.181.13
SNMPv2-MIB::sysLocation = STRING: In The Matrix
SNMPv2-MIB::sysServices = INTEGER: 64
End of MIB
Cheers,
Gustavo
I am facing the same problem. I´ve run a tcpdump to check if the packet is being sent do right port
13:04:04.868242 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto 17, length: 64) riomp06ld01.globoi.com.8349 > 10.20.x.x.1161: [bad udp cksum 7f65!] UDP, length 36
13:04:04.868614 IP (tos 0x0, ttl 64, id 679, offset 0, flags [DF], proto 17, length: 64) 10.20.132.178.1161 > xxxx.globoi.com.8349: [udp sum ok] UDP, length 36
It seems that the problem is with snmp ping test that is done while through the poller script... Any help I would also appreciate...
Just for the record... the test runs ok
[gustavo@rxxx lib]$ snmpwalk -v 1 -c public 10.20.xx.xx:1161
SNMPv2-MIB::sysDescr = STRING: Central Computer
SNMPv2-MIB::sysObjectID = OID: SNMPv2-SMI::enterprises.18016.1.1.2
SNMPv2-MIB::sysUpTime = Wrong Type (should be Timeticks): Gauge32: 7066450
SNMPv2-MIB::sysContact = STRING: Agent Smith
SNMPv2-MIB::sysName = STRING: stable2@10.20.181.13
SNMPv2-MIB::sysLocation = STRING: In The Matrix
SNMPv2-MIB::sysServices = INTEGER: 64
End of MIB
Cheers,
Gustavo
-
- Posts: 5
- Joined: Wed Sep 12, 2007 4:34 pm
the problem is that the ping test inside $CACTI_HOME/lib/snmp.php is done using OID=.1. However, the snmp adaptor from Jboss hasn´t any entry for this OID.
If I run snmpwalk -v 1 -c public localhost:1161 .1 the result is as follow:
End of MIB
ccitt.1 = NULL
So... I could alter jboss configurations file to add this entry, however I would have to do that to each jboss that I install.. since I don´t wanna do that, I think that it would be better to edit the function cacti_snmp_getnext in $CACTI_HOME/lib/snmp.php to check if the port received is any of the ones that can be used by jboss (1161 or 1261 or 1361 or 1461 or 4161)and then set the $oid variable to ".1.3.6.1.2.1.1"
snmpwalk -v 1 -c public localhost:1161 .1.3.6.1.2.1.1
SNMPv2-MIB::sysDescr = STRING: Central Computer
SNMPv2-MIB::sysObjectID = OID: SNMPv2-SMI::enterprises.18016.1.1.2
SNMPv2-MIB::sysUpTime = Wrong Type (should be Timeticks): Gauge32: 8915097
SNMPv2-MIB::sysContact = STRING: Agent Smith
SNMPv2-MIB::sysName = STRING: stable2@localhost
SNMPv2-MIB::sysLocation = STRING: In The Matrix
SNMPv2-MIB::sysServices = INTEGER: 64
End of MIB
ports 1261 through 1461 can be used when you set jboss to use the Service Binding.
I really think that this isn´t an elegant solution.. but so far it solved my problem... anyone has a better idea?
Cheers,
Gus
If I run snmpwalk -v 1 -c public localhost:1161 .1 the result is as follow:
End of MIB
ccitt.1 = NULL
So... I could alter jboss configurations file to add this entry, however I would have to do that to each jboss that I install.. since I don´t wanna do that, I think that it would be better to edit the function cacti_snmp_getnext in $CACTI_HOME/lib/snmp.php to check if the port received is any of the ones that can be used by jboss (1161 or 1261 or 1361 or 1461 or 4161)and then set the $oid variable to ".1.3.6.1.2.1.1"
snmpwalk -v 1 -c public localhost:1161 .1.3.6.1.2.1.1
SNMPv2-MIB::sysDescr = STRING: Central Computer
SNMPv2-MIB::sysObjectID = OID: SNMPv2-SMI::enterprises.18016.1.1.2
SNMPv2-MIB::sysUpTime = Wrong Type (should be Timeticks): Gauge32: 8915097
SNMPv2-MIB::sysContact = STRING: Agent Smith
SNMPv2-MIB::sysName = STRING: stable2@localhost
SNMPv2-MIB::sysLocation = STRING: In The Matrix
SNMPv2-MIB::sysServices = INTEGER: 64
End of MIB
ports 1261 through 1461 can be used when you set jboss to use the Service Binding.
I really think that this isn´t an elegant solution.. but so far it solved my problem... anyone has a better idea?
Cheers,
Gus
My problem solved.
Please try port 1261:
snmpwalk -v 1 -c public 10.20.xx.xx:1261
Or restart JBoss and observe the port by netstat -nl, you may find the port created by JBoss.
I don't know why it is using port 1261, even I set META-INF/jboss-service.xml with port 1161. If any idea, please explain. Thanks
Please try port 1261:
snmpwalk -v 1 -c public 10.20.xx.xx:1261
Or restart JBoss and observe the port by netstat -nl, you may find the port created by JBoss.
I don't know why it is using port 1261, even I set META-INF/jboss-service.xml with port 1161. If any idea, please explain. Thanks
-
- Posts: 5
- Joined: Wed Sep 12, 2007 4:34 pm
maybe you are a using the service binding manager in conf/jboss-service.xml...
and you should set an oid in the snmpwalk command.. the ping test used by cacti use oid=.1, if you leave it blank it will retrieve the variable under system, which is the same as snmpwalk -v 1 -c public 10.20.xx.xx:1261 system
Cheers,
Gus
and you should set an oid in the snmpwalk command.. the ping test used by cacti use oid=.1, if you leave it blank it will retrieve the variable under system, which is the same as snmpwalk -v 1 -c public 10.20.xx.xx:1261 system
Cheers,
Gus
Jboss Adaptor trouble
Hi all.. i've some trouble with the SNMP Adaptor, maybe some smart cacti guru can help me!
Snmpwalk command work properly from command line as you can see
but i cannot display any graph, 'cause it seems that cacti cannot process the data sources of jboss devices.
I've checked in the poller cache[image in the bottom].. i'm wondering why if the paths of the rrd file are corrects in the poller cache, and there are no permission error on the rra folder, there isn't any row about jboss query in the log file, and obviously .. no graph!
Thanks ..
Snmpwalk command work properly from command line as you can see
Code: Select all
snmpwalk -v 1 -c read-community -On 10.**.**.**:1161 .1.2.3
.1.2.3.4.1.1 = INTEGER: 573
.1.2.3.4.1.2 = Gauge32: 564992680
.1.2.3.4.1.3 = Gauge32: 2040135680
.1.2.3.4.1.4 = INTEGER: 0
.1.2.3.4.1.5 = INTEGER: 970455
.1.2.3.4.1.6 = Gauge32: 1005181
.1.2.3.4.1.7 = Gauge32: 358
.1.2.3.4.1.8 = Gauge32: 1
End of MIB
I've checked in the poller cache[image in the bottom].. i'm wondering why if the paths of the rrd file are corrects in the poller cache, and there are no permission error on the rra folder, there isn't any row about jboss query in the log file, and obviously .. no graph!
Thanks ..
- divagater
- Cacti User
- Posts: 191
- Joined: Wed Nov 17, 2004 5:22 pm
- Location: Chapel Hill, NC.
- Contact:
I realize this is an old thread but for anyone wanting to use jboss snmp as shown in these templates you can do so without having to create a separate device due to the port the jboss snmp agent listens on. Instead, if you are using net-snmp you can proxy the requests. An entry like follows in your snmp.conf will do the trick:
Now from my Cacti host I can do:
And the correct results are returned. The request hits the jboss host on the default port 161 and proxies the request to jboss on port 1161.
Cheers,
Billy
Code: Select all
proxy -v 1 -c public localhost:1161 .1.3.6.1.3.10.1 .1.2.3.4
Code: Select all
snmpwalk -v 1 -c <community> <host> .1.3.6.1.3.10.1
Cheers,
Billy
Jboss. Empty graphs on Linux and Win
Hi Everyone!
I created graphs using template and this http://forums.cacti.net/viewtopic.php?t ... ight=Jboss guide.
I created it on 3 environments Windows, Ubuntu and RedHat - anyway chart created basis on those templates are not updated. I have SNMP device and device is properly connected. I see uptime, hostname from SNMP etc.
I do not use spine - standard Windows scheduler or crontab on Linux.
Other system graps are updated but not Jboss graphs.
It seems RRDTool do not process rrd files related to JBoss. On each OS I have other version of RRDTool so it seems problem is not in version.
Please give me any buzz what could be wrong.
Regards
I created graphs using template and this http://forums.cacti.net/viewtopic.php?t ... ight=Jboss guide.
I created it on 3 environments Windows, Ubuntu and RedHat - anyway chart created basis on those templates are not updated. I have SNMP device and device is properly connected. I see uptime, hostname from SNMP etc.
I do not use spine - standard Windows scheduler or crontab on Linux.
Other system graps are updated but not Jboss graphs.
It seems RRDTool do not process rrd files related to JBoss. On each OS I have other version of RRDTool so it seems problem is not in version.
Please give me any buzz what could be wrong.
Regards
Who is online
Users browsing this forum: No registered users and 1 guest