root / plugins / google / snmp__gsa_docs @ 17f78427
Historique | Voir | Annoter | Télécharger (5,96 ko)
| 1 | 899a974d | Marcello Barnaba | #!/usr/bin/perl -w |
|---|---|---|---|
| 2 | # -*- cperl -*- |
||
| 3 | |||
| 4 | =head1 NAME |
||
| 5 | |||
| 6 | 46d1dcc9 | Kenyon Ralph | snmp__gsa_docs - SNMP wildcard plugin to monitor Google Search Appliance (GSA) document statistics |
| 7 | 899a974d | Marcello Barnaba | |
| 8 | =head1 APPLICABLE SYSTEMS |
||
| 9 | |||
| 10 | A GSA running software version 5.0 or above. See [1] for counters |
||
| 11 | exported via SNMP. Usage of SNMPv3 is recommended, with AuthPriv, |
||
| 12 | and the SHA authentication scheme. |
||
| 13 | |||
| 14 | [1]: https://developers.google.com/search-appliance/documentation/50/help_gsa/admin_snmp |
||
| 15 | |||
| 16 | =head1 CONFIGURATION |
||
| 17 | |||
| 18 | Create a "Munin" user on the GSA SNMP configuration, and then use |
||
| 19 | something similar to the following: |
||
| 20 | |||
| 21 | [snmpv3_gsa.host.name_*] |
||
| 22 | env.v3username munin |
||
| 23 | env.v3authprotocol sha |
||
| 24 | env.v3authpassword your-auth-passwd |
||
| 25 | env.v3privprotocol des |
||
| 26 | env.v3privpassword your-priv-passwd |
||
| 27 | |||
| 28 | Please see 'perldoc Munin::Plugin::SNMP' for further configuration |
||
| 29 | information. |
||
| 30 | |||
| 31 | =head1 INTERPRETATION |
||
| 32 | |||
| 33 | The graph shows statistics about the documents index and queries per minute. |
||
| 34 | |||
| 35 | =head1 MIB INFORMATION |
||
| 36 | |||
| 37 | This plugin requires the GOOGLE-MIB and GSA-MIB and will report |
||
| 38 | |||
| 39 | GSA-MIB::docsServed.0 = INTEGER: .. |
||
| 40 | GSA-MIB::docErrors.0 = INTEGER: ... |
||
| 41 | GSA-MIB::docsFound.0 = INTEGER: ... |
||
| 42 | GSA-MIB::docBytes.0 = INTEGER: .... |
||
| 43 | GSA-MIB::qpm.0 = INTEGER: ......... |
||
| 44 | |||
| 45 | =head1 MAGIC MARKERS |
||
| 46 | |||
| 47 | #%# family=snmpauto |
||
| 48 | #%# capabilities=snmpconf |
||
| 49 | |||
| 50 | =head1 VERSION |
||
| 51 | |||
| 52 | $Id$ |
||
| 53 | |||
| 54 | =head1 BUGS |
||
| 55 | |||
| 56 | None known. |
||
| 57 | |||
| 58 | =head1 AUTHOR |
||
| 59 | |||
| 60 | Copyright (C) 2013 Marcello Barnaba <vjt@openssl.it> based on snmp__if_, |
||
| 61 | Copyright (C) 2004-2009 Jimmy Olsen, Daginn Ilmari Mannsaaker. |
||
| 62 | |||
| 63 | =head1 LICENSE |
||
| 64 | |||
| 65 | GPLv2 |
||
| 66 | |||
| 67 | =cut |
||
| 68 | |||
| 69 | use strict; |
||
| 70 | use Munin::Plugin; |
||
| 71 | use Munin::Plugin::SNMP; |
||
| 72 | |||
| 73 | need_multigraph(); |
||
| 74 | |||
| 75 | # This is the snmpwalk: |
||
| 76 | # .1.3.6.1.4.1.11129.1.1.1.0 = INTEGER: Running(1) ## GSA-MIB::crawlRunning.0 = INTEGER: Running(1) |
||
| 77 | # .1.3.6.1.4.1.11129.1.1.2.1.0 = INTEGER: 855802 ## GSA-MIB::docsServed.0 = INTEGER: 855802 |
||
| 78 | # .1.3.6.1.4.1.11129.1.1.2.2.0 = INTEGER: 0 ## GSA-MIB::crawlingRate.0 = INTEGER: 0 |
||
| 79 | # .1.3.6.1.4.1.11129.1.1.2.3.0 = INTEGER: 501606 ## GSA-MIB::docBytes.0 = INTEGER: 501606 |
||
| 80 | # .1.3.6.1.4.1.11129.1.1.2.4.0 = INTEGER: 1 ## GSA-MIB::todayDocsCrawled.0 = INTEGER: 1 |
||
| 81 | # .1.3.6.1.4.1.11129.1.1.2.5.0 = INTEGER: 0 ## GSA-MIB::docErrors.0 = INTEGER: 0 |
||
| 82 | # .1.3.6.1.4.1.11129.1.1.2.6.0 = INTEGER: 860683 ## GSA-MIB::docsFound.0 = INTEGER: 860683 |
||
| 83 | # .1.3.6.1.4.1.11129.1.1.2.7.0 = INTEGER: Off(0) ## GSA-MIB::batchCrawlRunning.0 = INTEGER: Off(0) |
||
| 84 | # .1.3.6.1.4.1.11129.1.1.2.8.0 = INTEGER: 0 ## GSA-MIB::batchCrawlStartTime.0 = INTEGER: 0 |
||
| 85 | # .1.3.6.1.4.1.11129.1.1.2.9.0 = INTEGER: 0 ## GSA-MIB::batchCrawlEndTime.0 = INTEGER: 0 |
||
| 86 | # .1.3.6.1.4.1.11129.1.2.1.0 = INTEGER: 0 ## GSA-MIB::qpm.0 = INTEGER: 0 |
||
| 87 | # .1.3.6.1.4.1.11129.1.3.1.1.0 = INTEGER: green(0) ## GSA-MIB::diskHealth.0 = INTEGER: green(0) |
||
| 88 | # .1.3.6.1.4.1.11129.1.3.1.2.0 = STRING: ## GSA-MIB::diskErrors.0 = STRING: |
||
| 89 | # .1.3.6.1.4.1.11129.1.3.2.1.0 = INTEGER: green(0) ## GSA-MIB::temperatureHealth.0 = INTEGER: green(0) |
||
| 90 | # .1.3.6.1.4.1.11129.1.3.2.2.0 = STRING: ## GSA-MIB::temperatureErrors.0 = STRING: |
||
| 91 | # .1.3.6.1.4.1.11129.1.3.3.1.0 = INTEGER: green(0) ## GSA-MIB::machineHealth.0 = INTEGER: green(0) |
||
| 92 | # .1.3.6.1.4.1.11129.1.3.3.2.0 = STRING: ## GSA-MIB::machineErrors.0 = STRING: |
||
| 93 | |||
| 94 | my $entryDocsServed = "1.3.6.1.4.1.11129.1.1.2.1.0"; |
||
| 95 | my $entryDocBytes = "1.3.6.1.4.1.11129.1.1.2.3.0"; |
||
| 96 | my $entryDocErrors = "1.3.6.1.4.1.11129.1.1.2.5.0"; |
||
| 97 | my $entryDocsFound = "1.3.6.1.4.1.11129.1.1.2.6.0"; |
||
| 98 | my $entryQPM = "1.3.6.1.4.1.11129.1.2.1.0" ; # Queries per Minute |
||
| 99 | |||
| 100 | if (defined $ARGV[0] and $ARGV[0] eq "snmpconf") {
|
||
| 101 | print "require $entryDocsServed\n"; |
||
| 102 | print "require $entryDocErrors\n"; |
||
| 103 | print "require $entryDocsFound\n"; |
||
| 104 | print "require $entryDocBytes\n"; |
||
| 105 | print "require $entryQPM\n"; |
||
| 106 | exit 0; |
||
| 107 | } |
||
| 108 | |||
| 109 | # SNMP needed for both config and fetch. |
||
| 110 | my $session = Munin::Plugin::SNMP->session(); |
||
| 111 | my $response; |
||
| 112 | |||
| 113 | if ($ARGV[0] and $ARGV[0] eq "config") {
|
||
| 114 | my ($host,undef,$version) = Munin::Plugin::SNMP->config_session(); |
||
| 115 | |||
| 116 | print "host_name $host\n" unless $host eq 'localhost'; |
||
| 117 | |||
| 118 | print "multigraph gsa_documents\n"; |
||
| 119 | print "graph_title GSA documents statistics\n"; |
||
| 120 | print "graph_order found served errors\n"; |
||
| 121 | print "graph_args --base 1000\n"; |
||
| 122 | print "graph_vlabel Documents\n"; |
||
| 123 | print "graph_category search\n"; |
||
| 124 | print "graph_info This graph shows document statistics for the GSA\n"; |
||
| 125 | print "served.label served\n"; |
||
| 126 | print "served.type GAUGE\n"; |
||
| 127 | print "served.graph yes\n"; |
||
| 128 | print "errors.label errors\n"; |
||
| 129 | print "errors.type GAUGE\n"; |
||
| 130 | print "errors.graph yes\n"; |
||
| 131 | print "found.label found\n"; |
||
| 132 | print "found.type GAUGE\n"; |
||
| 133 | print "found.graph yes\n"; |
||
| 134 | print "multigraph gsa_storage\n"; |
||
| 135 | print "graph_title GSA storage statistics\n"; |
||
| 136 | print "graph_order bytes\n"; |
||
| 137 | print "graph_vlabel Megabytes Filtered\n"; |
||
| 138 | print "graph_category search\n"; |
||
| 139 | print "graph_info This graph shows the GSA index size\n"; |
||
| 140 | print "bytes.label bytes\n"; |
||
| 141 | print "bytes.type GAUGE\n"; |
||
| 142 | print "bytes.graph yes\n"; |
||
| 143 | print "multigraph gsa_qpm\n"; |
||
| 144 | print "graph_title GSA Queries Per Minute\n"; |
||
| 145 | print "graph_order qpm\n"; |
||
| 146 | print "graph_vlabel Queries per minute\n"; |
||
| 147 | print "graph_category search\n"; |
||
| 148 | print "graph_info This graph shows how many Queries Per Minute the GSA receives\n"; |
||
| 149 | print "qpm.label count\n"; |
||
| 150 | print "qpm.type DERIVE\n"; |
||
| 151 | print "qpm.graph yes\n"; |
||
| 152 | exit 0; |
||
| 153 | } |
||
| 154 | |||
| 155 | print "multigraph gsa_documents\n"; |
||
| 156 | if (defined ($response = $session->get_single($entryDocsServed))) {
|
||
| 157 | print "served.value ", $response, "\n"; |
||
| 158 | } |
||
| 159 | if (defined ($response = $session->get_single($entryDocErrors))) {
|
||
| 160 | print "errors.value ", $response, "\n"; |
||
| 161 | } |
||
| 162 | if (defined ($response = $session->get_single($entryDocsFound))) {
|
||
| 163 | print "found.value ", $response, "\n"; |
||
| 164 | } |
||
| 165 | |||
| 166 | print "multigraph gsa_storage\n"; |
||
| 167 | if (defined ($response = $session->get_single($entryDocBytes))) {
|
||
| 168 | print "bytes.value ", $response, "\n"; |
||
| 169 | } |
||
| 170 | |||
| 171 | print "multigraph gsa_qpm\n"; |
||
| 172 | if (defined ($response = $session->get_single($entryQPM))) {
|
||
| 173 | print "qpm.value ", $response, "\n"; |
||
| 174 | } |
