masterzen / mysql-snmp

Net-SNMP perl agent for monitoring MySQL servers
http://www.masterzen.fr/software-contributions/mysql-snmp-monitor-mysql-with-snmp/
GNU General Public License v2.0
67 stars 33 forks source link

MySQL Server SNMP Agent. Copyright (c) 2008,2009 Brice Figureau brice.figureau@daysofwonder.com

PREAMBLE

mysql-snmp is a MySQL Net-SNMP agent written in Perl, and using the Net-Snmp Perl bindings.

It connects to a mysql server and returns information to Net-SNMP when needed. It parses SHOW INNODB STATUS and other MySQL status variables.

This work is based on Baron Schwartz Mysql Cacti Templates, available at: http://code.google.com/p/mysql-cacti-templates/

This work is based on the blog post about a SNMP agent: http://mysqldump.azundris.com/archives/63-Sysadmins-Nightly-Mental-Pain-SNMP.html

This software is released under the GPL v2.

REQUIREMENTS

This package requires Net-SNMP version 5.4.3 or better. Previous versions have bugs preventing returning 64 bits MIBs objects correctly from a perl agentX.

INSTALL

Debian

Please build the package: $ dpkg-buildpackage -rfakeroot -uc- b

and install it Then, modify /etc/default/mysql-snmp

Other

Modify the Makefile, and: $ sudo make install

Then create an init.d startup script. You can look to the debian one in debian/init.d

Install the MIB file in your mibs directory.

CONFIGURE

Configure net-snmp

Add: master agentx to /etc/snmp/snmpd.conf, and restart snmpd Make sure the mysql-snmp agent is able to open the agentX socket (permissions and location of said socket can be managed with the snmpd.conf agentXPerms directive).

Configure mysql-snmp

Under debian, the daemon can be configured with /etc/default/mysql-snmp. On all platform, the configuration is done with command line arguments:

-h|--host HOST connect to mysql HOST -P|--port PORT port to connect to (default 3306) -u|--user DBUSER use DBUSER as user to connect to mysql -p|--password DBPASS use DBPASS as password to connect to mysql -c|--config FILE read MySQL configuration from FILE

-m|--master check master -s|--slave check slave -b|--heartbeat DB.TABLE table for Percona Toolkit pt-heartbeat --oid OID registering OID -l|--process-list|--procs enable the MySQL process list -i|--refresh refresh interval in seconds

You can specify the mysql connection parameters in a config file using my.cnf format, like this: For example:

[client] host=dbserver port=3306 user=monitor password=secret

OPENNMS

You'll find in the opennms directory the various configuration snippets that can be used to let opennms graph the value reported by this agent.

datacollection-config.xml

Add the content of opennms/mysql.datacollection-config.xml to your datacollection-config.xml file.

Then add this group to your hosts:

.1.3.6.1.4.1.8072.3. mib2-host-resources-system mib2-host-resources-memory net-snmp-disk ucd-loadavg ucd-memory ucd-sysstat mysql

And now, add the graph definitions from the opennms/mysql.snmp-graph.properties file to your snmp-graph.properties.