diff options
author | Holger Weiss <holger@zedat.fu-berlin.de> | 2013-09-30 00:03:24 +0200 |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2013-09-30 00:03:24 +0200 |
commit | 0b6423f9c99d9edf8c96fefd0f6c453859395aa1 (patch) | |
tree | 1c2b6b21704a294940f87c7892676998d8371707 /web/attachments/182402-check_mysql.c | |
download | site-0b6423f9c99d9edf8c96fefd0f6c453859395aa1.tar.gz |
Import Nagios Plugins site
Import the Nagios Plugins web site, Cronjobs, infrastructure scripts,
and configuration files.
Diffstat (limited to 'web/attachments/182402-check_mysql.c')
-rw-r--r-- | web/attachments/182402-check_mysql.c | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/web/attachments/182402-check_mysql.c b/web/attachments/182402-check_mysql.c new file mode 100644 index 0000000..5ef37d1 --- /dev/null +++ b/web/attachments/182402-check_mysql.c | |||
@@ -0,0 +1,100 @@ | |||
1 | /***************************************************************** | ||
2 | * | ||
3 | * Program: check_mysql.c | ||
4 | * License: GPL | ||
5 | * | ||
6 | * Written by Tim Weippert | ||
7 | * (based on plugins by Ethan Galstad and MySQL example code) | ||
8 | * | ||
9 | * Adapted by J. Javier Sianes - skyo@rotxa.org | ||
10 | * | ||
11 | * | ||
12 | * Command line: check_mysql <host> [user] [passwd] [db] [port] | ||
13 | * <host> can be the FQDN or the IP-Adress | ||
14 | * [user], [passwd], [db] and [port] are optional | ||
15 | * | ||
16 | * Description: | ||
17 | * | ||
18 | * This plugin attempts to connect to an MySQL Server | ||
19 | * with the optional specified parameters user, passwd and db. | ||
20 | * Normaly the host and a user HAVE to assigned. | ||
21 | * | ||
22 | * The plugin returns | ||
23 | * STATE_OK and the Version Number of the Server when all is fine | ||
24 | * STATE_CRITICAL if the Connection can't be esablished | ||
25 | * STATE_WARNING if the connection was established but the | ||
26 | * program can't get the Versoin Number | ||
27 | * STATE_UNKNOWN if to many parameters are given | ||
28 | * | ||
29 | * Copyright (c) 1999 by Tim Weippert | ||
30 | * | ||
31 | * Changes: | ||
32 | * 16.12.1999: Changed the return codes from numbers to statements | ||
33 | * 20.06.2006: Included new db and port parameters | ||
34 | * 20.06.2006: Adapted for using new MySQL5 API | ||
35 | * | ||
36 | *******************************************************************/ | ||
37 | |||
38 | /***************************************************************** | ||
39 | * | ||
40 | * Note that all includes are related to Nagios and MySQL default installation. | ||
41 | * If you have installed them on a different location, you may change | ||
42 | * the following include lines in order to make it works. | ||
43 | * | ||
44 | * To compile the agent, in a shell use the following command, for example: | ||
45 | * | ||
46 | * gcc -lmysqlclient -o check_mysql check_mysql.c | ||
47 | * | ||
48 | *******************************************************************/ | ||
49 | |||
50 | #include <stdio.h> | ||
51 | #include <stdlib.h> | ||
52 | #include "/usr/include/nagios/config.h" | ||
53 | #include "/usr/include/nagios/common.h" | ||
54 | #include "/usr/include/nagios/nagios.h" | ||
55 | #include "/usr/include/mysql/mysql.h" | ||
56 | |||
57 | MYSQL mysql; | ||
58 | |||
59 | int main(int argc, char **argv) | ||
60 | { | ||
61 | uint i = 0; | ||
62 | int mport; | ||
63 | char *host; | ||
64 | char *user; | ||
65 | char *passwd; | ||
66 | char *db; | ||
67 | |||
68 | char *status; | ||
69 | char *version; | ||
70 | |||
71 | if ( ( argc > 6 ) || ( argc < 2 ) ) { | ||
72 | printf("Incorrect number of arguments supplied - %i .\n", argc); | ||
73 | printf("Usage: %s <host> [user] [passwd] [db] [port]\n", argv[0]); | ||
74 | return STATE_UNKNOWN; | ||
75 | } | ||
76 | |||
77 | (host = argv[1]) || (host = NULL); | ||
78 | (user = argv[2]) || (user = NULL); | ||
79 | (passwd = argv[3]) || (passwd = NULL); | ||
80 | (db = argv[4]) || (db = "mysql"); | ||
81 | if (argc==6) { mport = atoi(argv[5]); } else { mport = 3306; } | ||
82 | |||
83 | mysql_init(&mysql); | ||
84 | mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"check_mysql"); | ||
85 | |||
86 | if (!mysql_real_connect(&mysql,host,user,passwd,db,(unsigned int)mport,NULL,0)) { | ||
87 | printf("Connect ERROR, Failed to connect to database '%s': %s\n",db,mysql_error(&mysql)); | ||
88 | return STATE_CRITICAL; | ||
89 | } | ||
90 | |||
91 | if ( !(version = mysql_get_server_info(&mysql)) ) { | ||
92 | printf("Connect OK, but can't get Serverinfo ... something wrong !\n"); | ||
93 | return STATE_WARNING; | ||
94 | } | ||
95 | |||
96 | printf("MYSQL OK - Running Version: %s\n", version); | ||
97 | |||
98 | mysql_close(&mysql); | ||
99 | return STATE_OK; | ||
100 | } | ||