Compare commits
253 commits
1.20131115
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
701ad1159a | ||
|
c9d0bd759b | ||
|
f20f327eec | ||
|
db2b665887 | ||
|
caf760b421 | ||
|
2e59122227 | ||
|
bd8a94bf65 | ||
|
7c9978122a | ||
|
236700d78f | ||
|
a1fcd7829d | ||
|
577b3149d7 | ||
|
23dc31c8ca | ||
|
cd2b375667 | ||
|
c8ae2e0a3d | ||
|
e384cab2a4 | ||
|
07aecaf763 | ||
|
ed62d581b6 | ||
|
139b2d6563 | ||
|
12e3504d8a | ||
|
529f82cccd | ||
|
b8eb749871 | ||
|
a967689263 | ||
|
b0924750e5 | ||
|
c25f3f271d | ||
|
6b2b9a340b | ||
|
bdb03d8a4b | ||
|
b5bb786dc1 | ||
|
6bebf057c7 | ||
|
8ccc6c1f15 | ||
|
4b69a0077a | ||
|
5e1abd1674 | ||
|
9dc411381a | ||
|
7661b7ba44 | ||
|
16e37413ed | ||
|
fe5636a618 | ||
|
023a659532 | ||
|
6ac31e169c | ||
|
8ce56194cc | ||
|
91b1867309 | ||
|
8e5d8ec82c | ||
|
179f643a9c | ||
|
a2422ebd49 | ||
|
b91fc10fa0 | ||
|
1effd2422a | ||
|
71a9a9e8ad | ||
|
147a2a6896 | ||
|
46c6a102b8 | ||
|
c874d999e0 | ||
|
092c3a5435 | ||
|
8aaac360a1 | ||
|
721aa2c852 | ||
|
391557f1b2 | ||
|
c175581409 | ||
|
bbf8984c1b | ||
|
66b38cf650 | ||
|
f476a6f37e | ||
|
306c791445 | ||
|
b487452577 | ||
|
f41f36154a | ||
|
56d37b5b5d | ||
|
82aeb14a25 | ||
|
17b322f443 | ||
|
3c03495e47 | ||
|
8ba8ea8f0d | ||
|
0ac7e5c757 | ||
|
bfd168f5cd | ||
|
ab5f0b8c7f | ||
|
088dc0d337 | ||
|
9df31e7682 | ||
|
c9eab33a18 | ||
|
6660a85f5b | ||
|
92f865099d | ||
|
0f776a8b12 | ||
|
ba9e7aa793 | ||
|
0430bdcd47 | ||
|
9e126706cc | ||
|
9dd1253858 | ||
|
e2d7788c6e | ||
|
8f7842acf9 | ||
|
8e92d0691c | ||
|
2dd4995992 | ||
|
52fd18c887 | ||
|
c912af176b | ||
|
b4741c37f2 | ||
|
74bdb31bb6 | ||
|
4e5b96d3ee | ||
|
4dcc659638 | ||
|
634170ac9b | ||
|
e58c4069f2 | ||
|
377dd27ee3 | ||
|
aea814e242 | ||
|
2889ce6fb6 | ||
|
51da819380 | ||
|
126fad709e | ||
|
13dd9d8569 | ||
|
8692bf3f37 | ||
|
b052a862d5 | ||
|
8376586d3f | ||
|
c5f57c694a | ||
|
c900d80f14 | ||
|
216bbfb414 | ||
|
2914fcb832 | ||
|
e553414387 | ||
|
27e5cd8898 | ||
|
8db15a8443 | ||
|
7e40de85ac | ||
|
92447f086d | ||
|
d6ba386327 | ||
|
79c1b18711 | ||
|
34e2aabf84 | ||
|
9ff9923971 | ||
|
5218397d0d | ||
|
857f689f4c | ||
|
42c2018d0a | ||
|
e132732325 | ||
|
f2db6c2265 | ||
|
7d410af3f1 | ||
|
43d5911a57 | ||
|
1a2be29176 | ||
|
f12c75bbbb | ||
|
a6b217c8f5 | ||
|
a22a9e349b | ||
|
abeb1ba95b | ||
|
655f76070b | ||
|
db8718849a | ||
|
605709f5fe | ||
|
d014bfa386 | ||
|
c5b434c7ea | ||
|
899e09699c | ||
|
98a99aa548 | ||
|
e7b9753fa7 | ||
|
ad0bb373da | ||
|
eed5d8ac3c | ||
|
2b22342316 | ||
|
b4fc1b4188 | ||
|
3f29eabf53 | ||
|
83bc010257 | ||
|
9205a1b115 | ||
|
a718bf03e1 | ||
|
7d109ffb0d | ||
|
36ffda35d3 | ||
|
662d9b1da8 | ||
|
f6af041c32 | ||
|
e404383817 | ||
|
109e71da01 | ||
|
4512b2bdde | ||
|
01116e5dbc | ||
|
947398540e | ||
|
f724aa6089 | ||
|
6d4a73a004 | ||
|
2af0f6f917 | ||
|
0fce1f7ed0 | ||
|
e5a659f339 | ||
|
f134dbfd1c | ||
|
36649d7285 | ||
|
2b07b2053d | ||
|
5b545ac648 | ||
|
ba39a8dcef | ||
|
fd1164df3f | ||
|
581fc6ce92 | ||
|
6af92e5dd3 | ||
|
240073c60f | ||
|
74c9bd7381 | ||
|
fdcad15c3d | ||
|
69d09ac207 | ||
|
c6ade244b1 | ||
|
7b229a851b | ||
|
f5da8826e2 | ||
|
aee28d7a4f | ||
|
6af6c5412a | ||
|
b064dda772 | ||
|
7ce4ca56fa | ||
|
77bc646aca | ||
|
2e462377f9 | ||
|
f07e400fe4 | ||
|
4c86b3906b | ||
|
96914b6c6e | ||
|
54a63765e2 | ||
|
f7e67c0f74 | ||
|
7eb6cc05d9 | ||
|
3155447fb2 | ||
|
a2f5e5ed10 | ||
|
00d5ca9249 | ||
|
02dd6a7cc3 | ||
|
8a1cb84347 | ||
|
04cf19d793 | ||
|
cd7660c570 | ||
|
4721bb1268 | ||
|
1bcaa1eee4 | ||
|
1638ce8669 | ||
|
cf95c232f8 | ||
|
3a4746ff4a | ||
|
413e6bb7aa | ||
|
808b174441 | ||
|
de08de4318 | ||
|
441cc43bc7 | ||
|
608c53e6c1 | ||
|
7989df9a75 | ||
|
46aaf767e8 | ||
|
b964123fd1 | ||
|
17038528de | ||
|
712a20a381 | ||
|
7cda3816af | ||
|
21632a6654 | ||
|
e8302f9aad | ||
|
623ae4b056 | ||
|
a185728bcb | ||
|
7053799ae0 | ||
|
10325a164b | ||
|
5dba34f0cb | ||
|
f064fe8e3e | ||
|
10a0f4699d | ||
|
4832e74750 | ||
|
7978d99a92 | ||
|
1697637249 | ||
|
34c5c8f81e | ||
|
c44c5ecf05 | ||
|
ce030fb41a | ||
|
e776f51323 | ||
|
1b3695de71 | ||
|
434fe2018d | ||
|
9c91dfd76e | ||
|
43be123a11 | ||
|
3370a29669 | ||
|
b49136ddfa | ||
|
b0ce667dae | ||
|
36d07c6e58 | ||
|
552f8d2227 | ||
|
443c5e1b48 | ||
|
5e81c86471 | ||
|
15a3d1f73c | ||
|
e95e2a8f9a | ||
|
d441fe0ee5 | ||
|
166e43eb9d | ||
|
8843ede486 | ||
|
7977340482 | ||
|
b8b74568a7 | ||
|
b66f7e6493 | ||
|
6d67539e29 | ||
|
65e0cc9bab | ||
|
20369091e7 | ||
|
5738aab7f2 | ||
|
0b013b0b51 | ||
|
0659e124a7 | ||
|
cc3665131a | ||
|
ea93f67faf | ||
|
726dd5dd3c | ||
|
5b67839877 | ||
|
2ed4647fa9 | ||
|
2c398c3d8d | ||
|
9496de3393 | ||
|
fdeb7716d0 | ||
|
6ea3e5ce5e |
12
.github/dependabot.yml
vendored
Normal file
12
.github/dependabot.yml
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: github-actions
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "04:00"
|
||||
reviewers:
|
||||
- "waja"
|
||||
pull-request-branch-name:
|
||||
separator: "-"
|
||||
open-pull-requests-limit: 10
|
20
.github/issue-branch.yml
vendored
Normal file
20
.github/issue-branch.yml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
mode: auto
|
||||
branchName: '${issue.number}-${issue.title[0,40]}'
|
||||
gitSafeReplacementChar: '-'
|
||||
branches:
|
||||
- label: question
|
||||
skip: true
|
||||
- label: feature
|
||||
prefix: feature/
|
||||
- label: bug
|
||||
prefix: bugfix/
|
||||
- label: security
|
||||
prefix: security/
|
||||
- label: automation
|
||||
prefix: automation/
|
||||
openDraftPR: true
|
||||
copyIssueDescriptionToPR: false
|
||||
copyIssueLabelsToPR: true
|
||||
copyIssueAssigneeToPR: true
|
||||
copyIssueProjectsToPR: false
|
||||
copyIssueMilestoneToPR: true
|
25
.github/workflows/automate-issue-branch.yml
vendored
Normal file
25
.github/workflows/automate-issue-branch.yml
vendored
Normal file
|
@ -0,0 +1,25 @@
|
|||
name: Tools - Automate Issue Branch
|
||||
on:
|
||||
issues:
|
||||
types: [ assigned ]
|
||||
issue_comment:
|
||||
types: [ created ]
|
||||
|
||||
jobs:
|
||||
create_issue_branch_job:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: read
|
||||
checks: write
|
||||
contents: write
|
||||
deployments: none
|
||||
issues: write
|
||||
packages: none
|
||||
pull-requests: write
|
||||
repository-projects: none
|
||||
security-events: none
|
||||
steps:
|
||||
- name: Create Issue Branch
|
||||
uses: robvanderleek/create-issue-branch@main
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
35
.github/workflows/packaging_test.yml
vendored
Normal file
35
.github/workflows/packaging_test.yml
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
name: Packaging Test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- $default-branch
|
||||
- development
|
||||
- master
|
||||
# Run tests for any PRs
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
SOURCE_DIR: ./
|
||||
ARTIFACTS_DIR: debian/build/release/
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
env:
|
||||
DEBIAN_FRONTEND: "noninteractive"
|
||||
- name: Remove github artefacts
|
||||
run: |
|
||||
rm -rf .git*
|
||||
- name: Adjust distibution in changelog file
|
||||
run: |
|
||||
sed -i '0,/restricted/s//stable/' debian/changelog
|
||||
- name: Build Debian package
|
||||
uses: dawidd6/action-debian-package@v1.4.0
|
||||
with:
|
||||
artifacts_directory: debian/build/release/
|
||||
- name: Debug
|
||||
run: |
|
||||
ls -la
|
70
.github/workflows/release.yml
vendored
Normal file
70
.github/workflows/release.yml
vendored
Normal file
|
@ -0,0 +1,70 @@
|
|||
on:
|
||||
push:
|
||||
# Sequence of patterns matched against refs/tags
|
||||
tags:
|
||||
- 'debian/*' # Push events to matching debian/*, i.e. debian/1.0-2, debian/20.15.10, debian/23.20020326
|
||||
|
||||
name: Release Process
|
||||
|
||||
env:
|
||||
SOURCE_DIR: ./
|
||||
ARTIFACTS_DIR: debian/build/release/
|
||||
|
||||
jobs:
|
||||
create-release:
|
||||
name: Create Release
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
release-id: ${{ steps.create_release.outputs.id }}
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
- name: Install needed packages
|
||||
run: |
|
||||
if [ $(dpkg -l | grep -c dpkg-dev) -ne 1 ]; then sudo apt-get update && sudo apt-get install -y dpkg-dev; fi
|
||||
- name: Gather changelog
|
||||
run: |
|
||||
ls -la
|
||||
dpkg-parsechangelog | tail -n +9 > debian.changelog
|
||||
- name: Create Release
|
||||
id: create_release
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
|
||||
with:
|
||||
tag_name: ${{ github.ref }}
|
||||
release_name: Release ${{ github.ref }}
|
||||
body_path: debian.changelog
|
||||
draft: false
|
||||
prerelease: false
|
||||
|
||||
build:
|
||||
name: Build and upload packages
|
||||
needs: create-release
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
env:
|
||||
DEBIAN_FRONTEND: "noninteractive"
|
||||
- name: Remove github artefacts
|
||||
run: |
|
||||
rm -rf .git*
|
||||
- name: Adjust distibution in changelog file
|
||||
run: |
|
||||
sed -i '0,/restricted/s//stable/' debian/changelog
|
||||
- name: Build Debian package
|
||||
uses: dawidd6/action-debian-package@v1.4.0
|
||||
with:
|
||||
artifacts_directory: debian/build/release/
|
||||
# - name: Build Debian package
|
||||
# uses: pi-top/action-debian-package@v0.2.0
|
||||
# with:
|
||||
# artifacts_directory: debian/build/release/
|
||||
# target_architectures: "amd64,i386"
|
||||
- name: Upload the artifacts
|
||||
uses: skx/github-action-publish-binaries@release-2.0
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
releaseId: ${{ needs.create-release.outputs.release-id }}
|
||||
args: debian/build/release/*
|
42
.travis.yml
42
.travis.yml
|
@ -1,16 +1,40 @@
|
|||
language: c
|
||||
dist: xenial
|
||||
sudo: required
|
||||
|
||||
before_install:
|
||||
# update package list
|
||||
- sudo apt-get update -qq
|
||||
env:
|
||||
global:
|
||||
# travis encrypt -r waja/monitoring-plugins-cyconet GITHUBTOKEN=XXXXXX (https://help.github.com/articles/creating-an-access-token-for-command-line-use / http://docs.travis-ci.com/user/encryption-keys/)
|
||||
- secure: "G/f08BKWorfnej6309TiTzESH/HPQlA8AJwpPTWcDkf5X0/9UcpouuajrXBayu0Km3pN0jMzJXOU3S5mQvuebNHCWY1ehVkL4h+z0bDXxFG0SZBLuy0dJ+NPyd7iTp/tlRUfencxymAmaRQQa4zFkLndT0W0MH88NNsYgh/eCBw="
|
||||
matrix:
|
||||
- TRAVIS_DEBIAN_DISTRIBUTION=unstable TRAVIS_DEBIAN_MIRROR="http://httpredir.debian.org/debian/" TRAVIS_DEBIAN_SECURITY_UPDATES=false
|
||||
- TRAVIS_DEBIAN_DISTRIBUTION=testing TRAVIS_DEBIAN_MIRROR="http://httpredir.debian.org/debian/"
|
||||
- TRAVIS_DEBIAN_DISTRIBUTION=stable TRAVIS_DEBIAN_MIRROR="http://httpredir.debian.org/debian/"
|
||||
|
||||
install:
|
||||
# install build dependencies
|
||||
- sudo apt-get install -qq --no-install-recommends debhelper devscripts python python-debian quilt autotools-dev
|
||||
services:
|
||||
- docker
|
||||
|
||||
before_script:
|
||||
# fetch all tags (not done due travis cloning with depth=50)
|
||||
- git fetch --tags
|
||||
|
||||
script:
|
||||
# build the debian package
|
||||
- debuild -uc -us
|
||||
# build the debian package
|
||||
- wget -O- http://travis.debian.net/script.sh | sh -
|
||||
|
||||
after_script:
|
||||
# run lintian after build
|
||||
- sudo add-apt-repository -y ppa:waja/trusty-backports
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install -qq --no-install-recommends lintian
|
||||
- lintian --info --display-info --display-experimental --pedantic --show-overrides ../*.deb && lintian --info --display-info --display-experimental --pedantic --show-overrides ../*.dsc
|
||||
|
||||
after_success:
|
||||
- '[ "$TRAVIS_DEBIAN_DISTRIBUTION" = "stable" ] && sudo apt-get install -qq --no-install-recommends devscripts && mkdir -p debian/build/release/ && for FILE in $(dcmd ../*.changes); do cp ../$(basename $FILE) debian/build/release/; done'
|
||||
- '[ "$TRAVIS_DEBIAN_DISTRIBUTION" = "stable" ] && debian/bin/github-release.sh "$TRAVIS_REPO_SLUG" "debian/`head -1 debian/changelog | awk -F"[()]" "{print $2}" | awk -F"+" "{print $1}"`" debian/build/release/*'
|
||||
|
||||
#notifications:
|
||||
# email: false
|
||||
|
||||
#branches:
|
||||
# except:
|
||||
# - /^debian\/\d/
|
||||
|
|
4
check_apache_balancer_members/Makefile
Normal file
4
check_apache_balancer_members/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
|||
#/usr/bin/make -f
|
||||
|
||||
include ../common.mk
|
||||
|
59
check_apache_balancer_members/check_apache_balancer_members
Normal file
59
check_apache_balancer_members/check_apache_balancer_members
Normal file
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/perl
|
||||
use strict;
|
||||
use warnings;
|
||||
use LWP::Simple;
|
||||
use Data::Dump qw(dump); #libdata-dump-perl
|
||||
use Web::Scraper; #libweb-scraper-perl
|
||||
use Monitoring::Plugin; #libmonitoring-plugin-perl
|
||||
|
||||
my $np = Monitoring::Plugin->new(
|
||||
usage => '',
|
||||
plugin => $0,
|
||||
shortname => "Balancer Members",
|
||||
blurb => 'Apache 2 Load Balancer Manager Members',
|
||||
timeout => 10
|
||||
);
|
||||
|
||||
$np->add_arg(
|
||||
spec => 'hostname|h=s',
|
||||
help => 'hostname of the apache server',
|
||||
required => 1
|
||||
);
|
||||
|
||||
$np->add_arg(
|
||||
spec => 'path|p=s',
|
||||
help => 'path to the balancer url',
|
||||
required => 1
|
||||
);
|
||||
|
||||
$np->getopts;
|
||||
|
||||
my $response = get("http://".$np->opts->hostname."/".$np->opts->path);
|
||||
my $s = scraper {
|
||||
process 'table:nth-of-type(2) tr', 'members[]' => scraper {
|
||||
process 'td:nth-of-type(1)', 'worker' => 'TEXT';
|
||||
process 'td:nth-of-type(6)', 'status' => 'TEXT';
|
||||
process 'td:nth-of-type(7)', 'elected' => 'TEXT';
|
||||
process 'td:nth-of-type(8)', 'busy' => 'TEXT';
|
||||
process 'td:nth-of-type(9)', 'load' => 'TEXT';
|
||||
process 'td:nth-of-type(10)', 'to' => 'TEXT';
|
||||
process 'td:nth-of-type(11)', 'from' => 'TEXT';
|
||||
}
|
||||
};
|
||||
|
||||
my $results = $s->scrape($response);
|
||||
my @problemMembers = ();
|
||||
my $at_least_one_is_ok = 0;
|
||||
|
||||
foreach my $member (@{$results->{'members'}})
|
||||
{
|
||||
next unless $member->{'worker'};
|
||||
push @problemMembers, $member->{'worker'} if $member->{'status'} =~ /Err/i;
|
||||
$at_least_one_is_ok = 1 if $member->{'status'} =~ /Ok\s?$/;
|
||||
$np->add_perfdata(label => "elected-$member->{'worker'}", value => $member->{'elected'}, uom => 'c');
|
||||
$np->add_perfdata(label => "busy-$member->{'worker'}", value => $member->{'busy'}, uom => 'rqts');
|
||||
}
|
||||
|
||||
$np->nagios_exit('CRITICAL', "No members are Ok; there is a problem") unless $at_least_one_is_ok;
|
||||
$np->nagios_exit('CRITICAL', "Members have errors: " . join (", ", @problemMembers)) if (@problemMembers > 0);
|
||||
$np->nagios_exit('OK', "All members functioning correctly");
|
6
check_apache_balancer_members/control
Normal file
6
check_apache_balancer_members/control
Normal file
|
@ -0,0 +1,6 @@
|
|||
Homepage: https://raw.github.com/mintsoft/check_apache_balancer_members/master/check_apache_balancer_members.pl
|
||||
Watch: https://github.com/mintsoft/check_apache_balancer_members <a class="commit-tease-sha"[^>]*>\s+([0-9a-f]+)\s+</a>
|
||||
Recommends: libdata-dump-perl, libweb-scraper-perl, libmonitoring-plugin-perl | libnagios-plugin-perl
|
||||
Version: 8e1ad17
|
||||
Uploaders: Jan Wagner <waja@cyconet.org>
|
||||
Description: plugin to monitor Apache2 balancer_manager
|
15
check_apache_balancer_members/copyright
Normal file
15
check_apache_balancer_members/copyright
Normal file
|
@ -0,0 +1,15 @@
|
|||
Copyright Copyright 2015 Robert Emery/Codeweavers Ltd
|
||||
|
||||
License: Apache-2.0
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
|
@ -1,6 +1,6 @@
|
|||
Homepage: https://www.monitoringexchange.org/inventory/Check-Plugins/Software/SNMP/check_bgp
|
||||
Watch: https://www.monitoringexchange.org/attachment/preview/Check-Plugins/Software/SNMP/check_bgp/check_bgp.0.4.pl Revision: ([0-9.]+)
|
||||
Homepage: https://exchange.icinga.org/exchange/check_bgp
|
||||
Watch: https://exchange.icinga.org/exchange/check_bgp/files/657/check_bgp.0.4.pl Revision: ([0-9.]+)
|
||||
Uploaders: Jan Wagner <waja@cyconet.org>
|
||||
Description: plugin to check BGP peer status via SNMP.
|
||||
Recommends: libnet-snmp-perl, nagios-plugins-common
|
||||
Recommends: libnet-snmp-perl, monitoring-plugins-common | nagios-plugins-common
|
||||
Version: 0.4
|
||||
|
|
10
check_es_system/Makefile
Normal file
10
check_es_system/Makefile
Normal file
|
@ -0,0 +1,10 @@
|
|||
#/usr/bin/make -f
|
||||
|
||||
PLUGIN = src/check_es_system
|
||||
CLEANEXTRAFILES = $(PLUGIN)
|
||||
DOCFILES = src/README.md
|
||||
|
||||
include ../common.mk
|
||||
|
||||
src/$(PLUGIN): src/$(PLUGIN).sh
|
||||
cp $< $@
|
22
check_es_system/check_es_system-1.12.0/.travis.yml
Normal file
22
check_es_system/check_es_system-1.12.0/.travis.yml
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
sudo: required
|
||||
dist: focal
|
||||
language: generic
|
||||
|
||||
services:
|
||||
- elasticsearch
|
||||
|
||||
before_install:
|
||||
- sudo apt-get update -q
|
||||
- sudo apt-get install curl jq
|
||||
|
||||
before_script:
|
||||
#- sleep 10
|
||||
|
||||
script:
|
||||
- ./check_es_system.sh --help || true
|
||||
- |
|
||||
test/test_status.sh
|
||||
test/test_readonly.sh
|
||||
|
||||
|
339
check_es_system/check_es_system-1.12.0/LICENSE
Normal file
339
check_es_system/check_es_system-1.12.0/LICENSE
Normal file
|
@ -0,0 +1,339 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
{description}
|
||||
Copyright (C) {year} {fullname}
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
{signature of Ty Coon}, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
15
check_es_system/check_es_system-1.12.0/README.md
Normal file
15
check_es_system/check_es_system-1.12.0/README.md
Normal file
|
@ -0,0 +1,15 @@
|
|||
# check_es_system
|
||||
This is a monitoring plugin to check the status of an ElasticSearch cluster node. Besides the classical status check (green, yellow, red) this plugin also allows to monitor disk or memory usage of Elasticsearch. This is especially helpful when running Elasticsearch in the cloud (e.g. Elasticsearch as a service) because, as ES does not run on your own server, you cannot monitor the disk or memory usage. This is where this plugin comes in. Just tell the plugin how much resources (diskspace, memory capacity) you have available (-d) and it will alarm you when you reach a threshold.
|
||||
Besides that, the plugin offers additional (advanced) checks of a Elasticsearch node/cluster (Java Threads, Thread Pool Statistics, Master Verification, Read-Only Indexes, ...).
|
||||
|
||||
Please refer to https://www.claudiokuenzler.com/monitoring-plugins/check_es_system.php for full documentation and usage examples.
|
||||
|
||||
Requirements
|
||||
------
|
||||
- The following commands must be available: `curl`, `expr`
|
||||
- One of the following json parsers must be available: `jshon` or `jq` (defaults to jq)
|
||||
|
||||
Usage
|
||||
------
|
||||
|
||||
./check_es_system.sh -H ESNode [-P port] [-S] [-u user] [-p pass] [-d available] -t check [-o unit] [-i indexes] [-w warn] [-c crit] [-m max_time] [-e node] [-X jq|jshon]
|
761
check_es_system/check_es_system-1.12.0/check_es_system.sh
Executable file
761
check_es_system/check_es_system-1.12.0/check_es_system.sh
Executable file
|
@ -0,0 +1,761 @@
|
|||
#!/bin/bash
|
||||
################################################################################
|
||||
# Script: check_es_system.sh #
|
||||
# Author: Claudio Kuenzler www.claudiokuenzler.com #
|
||||
# Purpose: Monitor ElasticSearch Store (Disk) Usage #
|
||||
# Official doc: www.claudiokuenzler.com/monitoring-plugins/check_es_system.php #
|
||||
# License: GPLv2 #
|
||||
# GNU General Public Licence (GPL) http://www.gnu.org/ #
|
||||
# This program is free software; you can redistribute it and/or #
|
||||
# modify it under the terms of the GNU General Public License #
|
||||
# as published by the Free Software Foundation; either version 2 #
|
||||
# of the License, or (at your option) any later version. #
|
||||
# #
|
||||
# This program is distributed in the hope that it will be useful, #
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
||||
# GNU General Public License for more details. #
|
||||
# #
|
||||
# You should have received a copy of the GNU General Public License #
|
||||
# along with this program; if not, see <https://www.gnu.org/licenses/>. #
|
||||
# #
|
||||
# Copyright 2016,2018-2021 Claudio Kuenzler #
|
||||
# Copyright 2018 Tomas Barton #
|
||||
# Copyright 2020 NotAProfessionalDeveloper #
|
||||
# Copyright 2020 tatref #
|
||||
# Copyright 2020 fbomj #
|
||||
# Copyright 2021 chicco27 #
|
||||
# #
|
||||
# History: #
|
||||
# 20160429: Started programming plugin #
|
||||
# 20160601: Continued programming. Working now as it should =) #
|
||||
# 20160906: Added memory usage check, check types option (-t) #
|
||||
# 20160906: Renamed plugin from check_es_store to check_es_system #
|
||||
# 20160907: Change internal referenced variable name for available size #
|
||||
# 20160907: Output now contains both used and available sizes #
|
||||
# 20161017: Add missing -t in usage output #
|
||||
# 20180105: Fix if statement for authentication (@deric) #
|
||||
# 20180105: Fix authentication when wrong credentials were used #
|
||||
# 20180313: Configure max_time for Elastic to respond (@deric) #
|
||||
# 20190219: Fix alternative subject name in ssl (issue 4), direct to auth #
|
||||
# 20190220: Added status check type #
|
||||
# 20190403: Check for mandatory parameter checktype, adjust help #
|
||||
# 20190403: Catch connection refused error #
|
||||
# 20190426: Catch unauthorized (403) error #
|
||||
# 20190626: Added readonly check type #
|
||||
# 20190905: Catch empty cluster health status (issue #13) #
|
||||
# 20190909: Added jthreads and tps (thread pool stats) check types #
|
||||
# 20190909: Handle correct curl return codes #
|
||||
# 20190924: Missing 'than' in tps output #
|
||||
# 20191104: Added master check type #
|
||||
# 20200401: Fix/handle 503 errors with curl exit code 0 (issue #20) #
|
||||
# 20200409: Fix 503 error lookup (issue #22) #
|
||||
# 20200430: Support both jshon and jq as json parsers (issue #18) #
|
||||
# 20200609: Fix readonly check on ALL indices (issue #26) #
|
||||
# 20200723: Add cluster name to status output #
|
||||
# 20200824: Fix typo in readonly check output #
|
||||
# 20200916: Internal renaming of -i parameter, use for tps check (issue #28) #
|
||||
# 20201110: Fix thresholds in jthreads check #
|
||||
# 20201125: Show names of read_only indexes with jq, set jq as default parser #
|
||||
# 20210616: Fix authentication bug (#38) and non ES URL responding (#39) #
|
||||
# 20211202: Added local node (-L), SSL settings (-K, -E), cpu check #
|
||||
################################################################################
|
||||
#Variables and defaults
|
||||
STATE_OK=0 # define the exit code if status is OK
|
||||
STATE_WARNING=1 # define the exit code if status is Warning
|
||||
STATE_CRITICAL=2 # define the exit code if status is Critical
|
||||
STATE_UNKNOWN=3 # define the exit code if status is Unknown
|
||||
export PATH=$PATH:/usr/local/bin:/usr/bin:/bin # Set path
|
||||
version=1.12.0
|
||||
port=9200
|
||||
httpscheme=http
|
||||
unit=G
|
||||
include='_all'
|
||||
max_time=30
|
||||
parsers=(jq jshon)
|
||||
################################################################################
|
||||
#Functions
|
||||
help () {
|
||||
echo -e "$0 $version (c) 2016-$(date +%Y) Claudio Kuenzler and contributors (open source rulez!)
|
||||
|
||||
Usage: ./check_es_system.sh -H ESNode [-P port] [-S] [-u user -p pass|-E cert -K key] -t checktype [-o unit] [-w int] [-c int] [-m int] [-e string] [-X parser]
|
||||
|
||||
Options:
|
||||
|
||||
* -H Hostname or ip address of ElasticSearch Node
|
||||
-L Run check on local node instead of cluster
|
||||
-P Port (defaults to 9200)
|
||||
-S Use https
|
||||
-E Certs for Authentication
|
||||
-K Key for Authentication
|
||||
-u Username if authentication is required
|
||||
-p Password if authentication is required
|
||||
* -t Type of check (disk, mem, cpu, status, readonly, jthreads, tps, master)
|
||||
-o Disk space unit (K|M|G) (defaults to G)
|
||||
-i Space separated list of included object names to be checked (index names on readonly check, pool names on tps check)
|
||||
-w Warning threshold (see usage notes below)
|
||||
-c Critical threshold (see usage notes below)
|
||||
-m Maximum time in seconds to wait for response (default: 30)
|
||||
-e Expect master node (used with 'master' check)
|
||||
-X The json parser to be used jshon or jq (default: jq)
|
||||
-h Help!
|
||||
|
||||
*mandatory options
|
||||
|
||||
Threshold format for 'disk', 'mem' and 'cpu': int (for percent), defaults to 80 (warn) and 95 (crit)
|
||||
Threshold format for 'tps': int,int,int (active, queued, rejected), no defaults
|
||||
Threshold format for all other check types': int, no defaults
|
||||
|
||||
Requirements: curl, expr and one of $(IFS=,; echo "${parsers[*]}")"
|
||||
exit $STATE_UNKNOWN;
|
||||
}
|
||||
|
||||
authlogic () {
|
||||
if [[ -z $user ]] && [[ -z $pass ]]; then echo "ES SYSTEM UNKNOWN - Authentication required but missing username and password"; exit $STATE_UNKNOWN
|
||||
elif [[ -n $user ]] && [[ -z $pass ]]; then echo "ES SYSTEM UNKNOWN - Authentication required but missing password"; exit $STATE_UNKNOWN
|
||||
elif [[ -n $pass ]] && [[ -z $user ]]; then echo "ES SYSTEM UNKNOWN - Missing username"; exit $STATE_UNKNOWN
|
||||
fi
|
||||
}
|
||||
|
||||
authlogic_cert () {
|
||||
if [[ -z $cert ]] && [[ -z $key ]]; then echo "ES SYSTEM UNKNOWN - Authentication required but missing cert and key"; exit $STATE_UNKNOWN
|
||||
elif [[ -n $cert ]] && [[ -z $key ]]; then echo "ES SYSTEM UNKNOWN - Authentication required but missing key"; exit $STATE_UNKNOWN
|
||||
elif [[ -n $key ]] && [[ -z $cert ]]; then echo "ES SYSTEM UNKNOWN - Missing cert"; exit $STATE_UNKNOWN
|
||||
fi
|
||||
}
|
||||
|
||||
unitcalc() {
|
||||
# ES presents the currently used disk space in Bytes
|
||||
if [[ -n $unit ]]; then
|
||||
case $unit in
|
||||
K) availsize=$(expr $available / 1024); outputsize=$(expr ${size} / 1024);;
|
||||
M) availsize=$(expr $available / 1024 / 1024); outputsize=$(expr ${size} / 1024 / 1024);;
|
||||
G) availsize=$(expr $available / 1024 / 1024 / 1024); outputsize=$(expr ${size} / 1024 / 1024 / 1024);;
|
||||
esac
|
||||
if [[ -n $warning ]] ; then
|
||||
warningsize=$(expr $warning \* ${available} / 100)
|
||||
fi
|
||||
if [[ -n $critical ]] ; then
|
||||
criticalsize=$(expr $critical \* ${available} / 100)
|
||||
fi
|
||||
usedpercent=$(expr $size \* 100 / $available)
|
||||
else echo "UNKNOWN - Shouldnt exit here. No units given"; exit $STATE_UNKNOWN
|
||||
fi
|
||||
}
|
||||
|
||||
thresholdlogic () {
|
||||
if [ -n $warning ] && [ -z $critical ]; then echo "UNKNOWN - Define both warning and critical thresholds"; exit $STATE_UNKNOWN; fi
|
||||
if [ -n $critical ] && [ -z $warning ]; then echo "UNKNOWN - Define both warning and critical thresholds"; exit $STATE_UNKNOWN; fi
|
||||
}
|
||||
|
||||
default_percentage_thresholds() {
|
||||
if [ -z $warning ] || [ "${warning}" = "" ]; then warning=80; fi
|
||||
if [ -z $critical ] || [ "${critical}" = "" ]; then critical=95; fi
|
||||
}
|
||||
|
||||
json_parse() {
|
||||
json_parse_usage() { echo "$0: [-r] [-q] [-c] [-a] -x arg1 -x arg2 ..." 1>&2; exit; }
|
||||
|
||||
local OPTIND opt r q c a x
|
||||
while getopts ":rqcax:" opt
|
||||
do
|
||||
case "${opt}" in
|
||||
r) raw=1;;
|
||||
q) quiet=1;; # only required for jshon
|
||||
c) continue=1;; # only required for jshon
|
||||
a) across=1;;
|
||||
x) args+=("$OPTARG");;
|
||||
*) json_parse_usage;;
|
||||
esac
|
||||
done
|
||||
|
||||
case ${parser} in
|
||||
jshon)
|
||||
cmd=()
|
||||
for arg in "${args[@]}"; do
|
||||
cmd+=(-e $arg)
|
||||
done
|
||||
jshon ${quiet:+-Q} ${continue:+-C} ${across:+-a} "${cmd[@]}" ${raw:+-u}
|
||||
;;
|
||||
jq)
|
||||
cmd=()
|
||||
for arg in "${args[@]}"; do
|
||||
cmd+=(.$arg)
|
||||
done
|
||||
jq ${raw:+-r} $(IFS=; echo ${across:+.[]}"${cmd[*]}")
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Check for people who need help - aren't we all nice ;-)
|
||||
if [ "${1}" = "--help" -o "${#}" = "0" ]; then help; exit $STATE_UNKNOWN; fi
|
||||
################################################################################
|
||||
# Get user-given variables
|
||||
while getopts "H:LP:SE:K:u:p:d:o:i:w:c:t:m:e:X:" Input
|
||||
do
|
||||
case ${Input} in
|
||||
H) host=${OPTARG};;
|
||||
L) local=true;;
|
||||
P) port=${OPTARG};;
|
||||
S) httpscheme=https;;
|
||||
E) cert=${OPTARG};;
|
||||
K) key=${OPTARG};;
|
||||
u) user=${OPTARG};;
|
||||
p) pass=${OPTARG};;
|
||||
d) oldavailable=${OPTARG};;
|
||||
o) unit=${OPTARG};;
|
||||
i) include=${OPTARG};;
|
||||
w) warning=${OPTARG};;
|
||||
c) critical=${OPTARG};;
|
||||
t) checktype=${OPTARG};;
|
||||
m) max_time=${OPTARG};;
|
||||
e) expect_master=${OPTARG};;
|
||||
X) parser=${OPTARG:=jq};;
|
||||
*) help;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Check for mandatory opts
|
||||
if [[ -z ${host} ]]; then help; exit $STATE_UNKNOWN; fi
|
||||
if [[ -z ${checktype} ]]; then help; exit $STATE_UNKNOWN; fi
|
||||
|
||||
# Check for deprecated opts
|
||||
if [[ -n ${oldavailable} ]]; then
|
||||
echo "ES SYSTEM UNKNOWN: -d parameter is now invalid. Capacities are now discovered directly from Elasticsearch."
|
||||
exit ${STATE_UNKNOWN}
|
||||
fi
|
||||
|
||||
# Local checks are only useful for certain check types
|
||||
if [[ -n ${local} ]] && ( ! [[ ${checktype} =~ ^(cpu|mem|disk|jthreads)$ ]] ); then
|
||||
echo "ES SYSTEM UNKNOWN: Node local checks (-L) only work with the following check types: cpu, mem, disk, jthreads"
|
||||
exit ${STATE_UNKNOWN}
|
||||
fi
|
||||
################################################################################
|
||||
# Check requirements
|
||||
for cmd in curl expr ${parser}; do
|
||||
if ! `which ${cmd} >/dev/null 2>&1`; then
|
||||
echo "UNKNOWN: ${cmd} does not exist, please check if command exists and PATH is correct"
|
||||
exit ${STATE_UNKNOWN}
|
||||
fi
|
||||
done
|
||||
# Find parser
|
||||
if [ -z ${parser} ]; then
|
||||
for cmd in ${parsers[@]}; do
|
||||
if `which ${cmd} >/dev/null 2>&1`; then
|
||||
parser=${cmd}
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [ -z "${parser}" ]; then
|
||||
echo "UNKNOWN: No JSON parser found. Either one of the following is required: $(IFS=,; echo "${parsers[*]}")"
|
||||
exit ${STATE_UNKNOWN}
|
||||
fi
|
||||
fi
|
||||
|
||||
################################################################################
|
||||
# Retrieve information from Elasticsearch cluster
|
||||
getstatus() {
|
||||
if [[ ${local} ]]; then
|
||||
esurl="${httpscheme}://${host}:${port}/_nodes/_local/stats"
|
||||
else
|
||||
esurl="${httpscheme}://${host}:${port}/_cluster/stats"
|
||||
fi
|
||||
eshealthurl="${httpscheme}://${host}:${port}/_cluster/health"
|
||||
|
||||
if [[ -z $user ]] && [[ -z $cert ]]; then
|
||||
# Without authentication
|
||||
esstatus=$(curl -k -s --max-time ${max_time} $esurl)
|
||||
esstatusrc=$?
|
||||
if [[ $esstatusrc -eq 7 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Failed to connect to ${host} port ${port}: Connection refused"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $esstatusrc -eq 28 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - server did not respond within ${max_time} seconds"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ "$esstatus" =~ "503 Service Unavailable" ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Elasticsearch not available: ${host}:${port} return error 503"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ "$esstatus" =~ "Unknown resource" ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Elasticsearch not available: ${esstatus}"
|
||||
exit $STATE_CRITICAL
|
||||
elif ! [[ "$esstatus" =~ "cluster_name" ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Elasticsearch not available at this address ${host}:${port}"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
# Additionally get cluster health infos
|
||||
if [ $checktype = status ]; then
|
||||
eshealth=$(curl -k -s --max-time ${max_time} $eshealthurl)
|
||||
if [[ -z $eshealth ]]; then
|
||||
echo "ES SYSTEM CRITICAL - unable to get cluster health information"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n $user ]] || [[ -n $(echo $esstatus | grep -i authentication) ]] ; then
|
||||
# Authentication required
|
||||
authlogic
|
||||
esstatus=$(curl -k -s --max-time ${max_time} --basic -u ${user}:${pass} $esurl)
|
||||
esstatusrc=$?
|
||||
if [[ $esstatusrc -eq 7 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Failed to connect to ${host} port ${port}: Connection refused"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $esstatusrc -eq 28 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - server did not respond within ${max_time} seconds"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ "$esstatus" =~ "503 Service Unavailable" ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Elasticsearch not available: ${host}:${port} return error 503"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ "$esstatus" =~ "Unknown resource" ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Elasticsearch not available: ${esstatus}"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ -n $(echo "$esstatus" | grep -i "unable to authenticate") ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Unable to authenticate user $user for REST request"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ -n $(echo "$esstatus" | grep -i "unauthorized") ]]; then
|
||||
echo "ES SYSTEM CRITICAL - User $user is unauthorized"
|
||||
exit $STATE_CRITICAL
|
||||
elif ! [[ "$esstatus" =~ "cluster_name" ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Elasticsearch not available at this address ${host}:${port}"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
# Additionally get cluster health infos
|
||||
if [[ $checktype = status ]]; then
|
||||
eshealth=$(curl -k -s --max-time ${max_time} --basic -u ${user}:${pass} $eshealthurl)
|
||||
if [[ -z $eshealth ]]; then
|
||||
echo "ES SYSTEM CRITICAL - unable to get cluster health information"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n $cert ]] || [[ -n $(echo $esstatus | grep -i authentication) ]] ; then
|
||||
# Authentication with certificate
|
||||
authlogic_cert
|
||||
esstatus=$(curl -k -s --max-time ${max_time} -E ${cert} --key ${key} $esurl)
|
||||
esstatusrc=$?
|
||||
if [[ $esstatusrc -eq 7 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Failed to connect to ${host} port ${port}: Connection refused"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $esstatusrc -eq 28 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - server did not respond within ${max_time} seconds"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ "$esstatus" =~ "503 Service Unavailable" ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Elasticsearch not available: ${host}:${port} return error 503"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ -n $(echo "$esstatus" | grep -i "unable to authenticate") ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Unable to authenticate user $user for REST request"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ -n $(echo "$esstatus" | grep -i "unauthorized") ]]; then
|
||||
echo "ES SYSTEM CRITICAL - User $user is unauthorized"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
# Additionally get cluster health infos
|
||||
if [[ $checktype = status ]]; then
|
||||
eshealth=$(curl -k -s --max-time ${max_time} -E ${cert} --key ${key} $eshealthurl)
|
||||
if [[ -z $eshealth ]]; then
|
||||
echo "ES SYSTEM CRITICAL - unable to get cluster health information"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Catch empty reply from server (typically happens when ssl port used with http connection)
|
||||
if [[ -z $esstatus ]] || [[ $esstatus = '' ]]; then
|
||||
echo "ES SYSTEM UNKNOWN - Empty reply from server (verify ssl settings)"
|
||||
exit $STATE_UNKNOWN
|
||||
fi
|
||||
}
|
||||
################################################################################
|
||||
# Do the checks
|
||||
case $checktype in
|
||||
disk) # Check disk usage
|
||||
getstatus
|
||||
default_percentage_thresholds
|
||||
if [[ ${local} ]]; then
|
||||
size=$(echo $esstatus | json_parse -x 'nodes|' -x '[]' -x indices -x store -x size_in_bytes)
|
||||
available=$(echo $esstatus | json_parse -x 'nodes|' -x '[]' -x fs -x total -x total_in_bytes)
|
||||
else
|
||||
size=$(echo $esstatus | json_parse -x indices -x store -x size_in_bytes)
|
||||
available=$(echo $esstatus | json_parse -x nodes -x fs -x total_in_bytes)
|
||||
fi
|
||||
|
||||
unitcalc
|
||||
if [ -n "${warning}" ] || [ -n "${critical}" ]; then
|
||||
# Handle tresholds
|
||||
thresholdlogic
|
||||
if [ $size -ge $criticalsize ]; then
|
||||
echo "ES SYSTEM CRITICAL - Disk usage is at ${usedpercent}% ($outputsize $unit from $availsize $unit)|es_disk=${size}B;${warningsize};${criticalsize};0;${available}"
|
||||
exit $STATE_CRITICAL
|
||||
elif [ $size -ge $warningsize ]; then
|
||||
echo "ES SYSTEM WARNING - Disk usage is at ${usedpercent}% ($outputsize $unit from $availsize $unit)|es_disk=${size}B;${warningsize};${criticalsize};0;${available}"
|
||||
exit $STATE_WARNING
|
||||
else
|
||||
echo "ES SYSTEM OK - Disk usage is at ${usedpercent}% ($outputsize $unit from $availsize $unit)|es_disk=${size}B;${warningsize};${criticalsize};0;${available}"
|
||||
exit $STATE_OK
|
||||
fi
|
||||
else
|
||||
# No thresholds
|
||||
echo "ES SYSTEM OK - Disk usage is at ${usedpercent}% ($outputsize $unit from $availsize $unit)|es_disk=${size}B;;;0;${available}"
|
||||
exit $STATE_OK
|
||||
fi
|
||||
;;
|
||||
|
||||
mem) # Check memory usage
|
||||
getstatus
|
||||
default_percentage_thresholds
|
||||
if [[ ${local} ]]; then
|
||||
size=$(echo $esstatus | json_parse -x 'nodes|' -x '[]' -x jvm -x mem -x heap_used_in_bytes)
|
||||
available=$(echo $esstatus | json_parse -x 'nodes|' -x '[]' -x jvm -x mem -x heap_max_in_bytes)
|
||||
else
|
||||
size=$(echo $esstatus | json_parse -x nodes -x jvm -x mem -x heap_used_in_bytes)
|
||||
available=$(echo $esstatus | json_parse -x nodes -x jvm -x mem -x heap_max_in_bytes)
|
||||
fi
|
||||
|
||||
unitcalc
|
||||
if [ -n "${warning}" ] || [ -n "${critical}" ]; then
|
||||
# Handle tresholds
|
||||
thresholdlogic
|
||||
if [ $size -ge $criticalsize ]; then
|
||||
echo "ES SYSTEM CRITICAL - Memory usage is at ${usedpercent}% ($outputsize $unit) from $availsize $unit|es_memory=${size}B;${warningsize};${criticalsize};0;${available}"
|
||||
exit $STATE_CRITICAL
|
||||
elif [ $size -ge $warningsize ]; then
|
||||
echo "ES SYSTEM WARNING - Memory usage is at ${usedpercent}% ($outputsize $unit from $availsize $unit)|es_memory=${size}B;${warningsize};${criticalsize};0;${available}"
|
||||
exit $STATE_WARNING
|
||||
else
|
||||
echo "ES SYSTEM OK - Memory usage is at ${usedpercent}% ($outputsize $unit from $availsize $unit)|es_memory=${size}B;${warningsize};${criticalsize};0;${available}"
|
||||
exit $STATE_OK
|
||||
fi
|
||||
else
|
||||
# No thresholds
|
||||
echo "ES SYSTEM OK - Memory usage is at ${usedpercent}% ($outputsize $unit from $availsize $unit)|es_memory=${size}B;;;0;${available}"
|
||||
exit $STATE_OK
|
||||
fi
|
||||
;;
|
||||
|
||||
cpu) # Check memory usage
|
||||
getstatus
|
||||
default_percentage_thresholds
|
||||
if [[ ${local} ]]; then
|
||||
value=$(echo $esstatus | json_parse -x 'nodes|' -x '[]' -x process -x cpu -x percent)
|
||||
else
|
||||
value=$(echo $esstatus | json_parse -x nodes -x process -x cpu -x percent)
|
||||
fi
|
||||
|
||||
if [ -n "${warning}" ] || [ -n "${critical}" ]; then
|
||||
# Handle tresholds
|
||||
thresholdlogic
|
||||
if [ $value -ge $critical ]; then
|
||||
echo "ES SYSTEM CRITICAL - CPU usage is at ${value}% |es_cpu=${value}%;${warning};${critical};0;100"
|
||||
exit $STATE_CRITICAL
|
||||
elif [ $value -ge $warning ]; then
|
||||
echo "ES SYSTEM WARNING - CPU usage is at ${value}% |es_cpu=${value}%;${warning};${critical};0;100"
|
||||
exit $STATE_WARNING
|
||||
else
|
||||
echo "ES SYSTEM OK - CPU usage is at ${value}% |es_cpu=${value}%;${warning};${critical};0;100"
|
||||
exit $STATE_OK
|
||||
fi
|
||||
else
|
||||
# No thresholds
|
||||
echo "ES SYSTEM OK - CPU usage is at ${value}% |es_cpu=${value}%;${warning};${critical};0;100"
|
||||
exit $STATE_OK
|
||||
fi
|
||||
;;
|
||||
|
||||
status) # Check Elasticsearch status
|
||||
getstatus
|
||||
status=$(echo $esstatus | json_parse -r -x status)
|
||||
clustername=$(echo $esstatus | json_parse -r -x cluster_name)
|
||||
shards=$(echo $esstatus | json_parse -r -x indices -x shards -x total)
|
||||
docs=$(echo $esstatus | json_parse -r -x indices -x docs -x count)
|
||||
nodest=$(echo $esstatus | json_parse -r -x nodes -x count -x total)
|
||||
nodesd=$(echo $esstatus | json_parse -r -x nodes -x count -x data)
|
||||
relocating=$(echo $eshealth | json_parse -r -x relocating_shards)
|
||||
init=$(echo $eshealth | json_parse -r -x initializing_shards)
|
||||
unass=$(echo $eshealth | json_parse -r -x unassigned_shards)
|
||||
if [ "$status" = "green" ]; then
|
||||
echo "ES SYSTEM OK - Elasticsearch Cluster \"$clustername\" is green (${nodest} nodes, ${nodesd} data nodes, ${shards} shards, ${docs} docs)|total_nodes=${nodest};;;; data_nodes=${nodesd};;;; total_shards=${shards};;;; relocating_shards=${relocating};;;; initializing_shards=${init};;;; unassigned_shards=${unass};;;; docs=${docs};;;;"
|
||||
exit $STATE_OK
|
||||
elif [ "$status" = "yellow" ]; then
|
||||
echo "ES SYSTEM WARNING - Elasticsearch Cluster \"$clustername\" is yellow (${nodest} nodes, ${nodesd} data nodes, ${shards} shards, ${relocating} relocating shards, ${init} initializing shards, ${unass} unassigned shards, ${docs} docs)|total_nodes=${nodest};;;; data_nodes=${nodesd};;;; total_shards=${shards};;;; relocating_shards=${relocating};;;; initializing_shards=${init};;;; unassigned_shards=${unass};;;; docs=${docs};;;;"
|
||||
exit $STATE_WARNING
|
||||
elif [ "$status" = "red" ]; then
|
||||
echo "ES SYSTEM CRITICAL - Elasticsearch Cluster \"$clustername\" is red (${nodest} nodes, ${nodesd} data nodes, ${shards} shards, ${relocating} relocating shards, ${init} initializing shards, ${unass} unassigned shards, ${docs} docs)|total_nodes=${nodest};;;; data_nodes=${nodesd};;;; total_shards=${shards};;;; relocating_shards=${relocating};;;; initializing_shards=${init};;;; unassigned_shards=${unass};;;; docs=${docs};;;;"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
;;
|
||||
|
||||
readonly) # Check Readonly status on given indexes
|
||||
getstatus
|
||||
icount=0
|
||||
for index in $include; do
|
||||
if [[ -z $user ]]; then
|
||||
# Without authentication
|
||||
settings=$(curl -k -s --max-time ${max_time} ${httpscheme}://${host}:${port}/$index/_settings)
|
||||
if [[ $? -eq 7 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Failed to connect to ${host} port ${port}: Connection refused"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $? -eq 28 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - server did not respond within ${max_time} seconds"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
rocount=$(echo $settings | json_parse -r -q -c -a -x settings -x index -x blocks -x read_only | grep -c true)
|
||||
roadcount=$(echo $settings | json_parse -r -q -c -a -x settings -x index -x blocks -x read_only_allow_delete | grep -c true)
|
||||
if [[ $rocount -gt 0 ]]; then
|
||||
output[${icount}]=" $index is read-only -"
|
||||
roerror=true
|
||||
fi
|
||||
if [[ $roadcount -gt 0 ]]; then
|
||||
output[${icount}]+=" $index is read-only (allow delete) -"
|
||||
roerror=true
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n $user ]] || [[ -n $(echo $esstatus | grep -i authentication) ]] ; then
|
||||
# Authentication required
|
||||
authlogic
|
||||
settings=$(curl -k -s --max-time ${max_time} --basic -u ${user}:${pass} ${httpscheme}://${host}:${port}/$index/_settings)
|
||||
settingsrc=$?
|
||||
if [[ $settingsrc -eq 7 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Failed to connect to ${host} port ${port}: Connection refused"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $settingsrc -eq 28 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - server did not respond within ${max_time} seconds"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ -n $(echo $esstatus | grep -i "unable to authenticate") ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Unable to authenticate user $user for REST request"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ -n $(echo $esstatus | grep -i "unauthorized") ]]; then
|
||||
echo "ES SYSTEM CRITICAL - User $user is unauthorized"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
rocount=$(echo $settings | json_parse -r -q -c -a -x settings -x index -x blocks -x read_only | grep -c true)
|
||||
roadcount=$(echo $settings | json_parse -r -q -c -a -x settings -x index -x blocks -x read_only_allow_delete | grep -c true)
|
||||
if [[ $rocount -gt 0 ]]; then
|
||||
if [[ "$index" = "_all" ]]; then
|
||||
if [[ $parser = "jq" ]]; then
|
||||
roindexes=$(echo $settings | jq -r '.[].settings.index |select(.blocks.read_only == "true").provided_name')
|
||||
fi
|
||||
output[${icount}]=" $rocount index(es) found read-only $roindexes -"
|
||||
else output[${icount}]=" $index is read-only -"
|
||||
fi
|
||||
roerror=true
|
||||
fi
|
||||
if [[ $roadcount -gt 0 ]]; then
|
||||
if [[ "$index" = "_all" ]]; then
|
||||
if [[ $parser = "jq" ]]; then
|
||||
roadindexes=$(echo $settings | jq -r '.[].settings.index |select(.blocks.read_only_allow_delete == "true").provided_name' | tr '\n' ' ')
|
||||
fi
|
||||
output[${icount}]+=" $roadcount index(es) found read-only (allow delete) $roadindexes"
|
||||
else output[${icount}]+=" $index is read-only (allow delete) -"
|
||||
fi
|
||||
roerror=true
|
||||
fi
|
||||
fi
|
||||
let icount++
|
||||
done
|
||||
|
||||
if [[ $roerror ]]; then
|
||||
echo "ES SYSTEM CRITICAL - ${output[*]}"
|
||||
exit $STATE_CRITICAL
|
||||
else
|
||||
echo "ES SYSTEM OK - Elasticsearch Indexes ($include) are writeable"
|
||||
exit $STATE_OK
|
||||
fi
|
||||
;;
|
||||
|
||||
jthreads) # Check JVM threads
|
||||
getstatus
|
||||
if [[ ${local} ]]; then
|
||||
threads=$(echo $esstatus | json_parse -x 'nodes|' -x '[]' -x jvm -x threads -x count)
|
||||
else
|
||||
threads=$(echo $esstatus | json_parse -r -x nodes -x jvm -x "threads")
|
||||
fi
|
||||
|
||||
if [ -n "${warning}" ] || [ -n "${critical}" ]; then
|
||||
# Handle tresholds
|
||||
thresholdlogic
|
||||
if [[ $threads -ge $critical ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Number of JVM threads is ${threads}|es_jvm_threads=${threads};${warning};${critical};;"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $threads -ge $warning ]]; then
|
||||
echo "ES SYSTEM WARNING - Number of JVM threads is ${threads}|es_jvm_threads=${threads};${warning};${critical};;"
|
||||
exit $STATE_WARNING
|
||||
else
|
||||
echo "ES SYSTEM OK - Number of JVM threads is ${threads}|es_jvm_threads=${threads};${warning};${critical};;"
|
||||
exit $STATE_OK
|
||||
fi
|
||||
else
|
||||
# No thresholds
|
||||
echo "ES SYSTEM OK - Number of JVM threads is ${threads}|es_jvm_threads=${threads};${warning};${critical};;"
|
||||
exit $STATE_OK
|
||||
fi
|
||||
;;
|
||||
|
||||
tps) # Check Thread Pool Statistics
|
||||
getstatus
|
||||
if [[ -z $user ]]; then
|
||||
# Without authentication
|
||||
threadpools=$(curl -k -s --max-time ${max_time} ${httpscheme}://${host}:${port}/_cat/thread_pool)
|
||||
threadpoolrc=$?
|
||||
if [[ $threadpoolrc -eq 7 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Failed to connect to ${host} port ${port}: Connection refused"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $threadpoolrc -eq 28 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - server did not respond within ${max_time} seconds"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n $user ]] || [[ -n $(echo $esstatus | grep -i authentication) ]] ; then
|
||||
# Authentication required
|
||||
authlogic
|
||||
threadpools=$(curl -k -s --max-time ${max_time} --basic -u ${user}:${pass} ${httpscheme}://${host}:${port}/_cat/thread_pool)
|
||||
threadpoolrc=$?
|
||||
if [[ $threadpoolrc -eq 7 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Failed to connect to ${host} port ${port}: Connection refused"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $threadpoolrc -eq 28 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - server did not respond within ${max_time} seconds"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ -n $(echo $esstatus | grep -i "unable to authenticate") ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Unable to authenticate user $user for REST request"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ -n $(echo $esstatus | grep -i "unauthorized") ]]; then
|
||||
echo "ES SYSTEM CRITICAL - User $user is unauthorized"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! [[ $include = "_all" ]]; then
|
||||
tpsgrep=$(echo "$include" | sed "s/ /|/g")
|
||||
threadpools=$(echo "$threadpools" | egrep -i "(${tpsgrep})")
|
||||
if [[ $(echo ${threadpools[*]}) = "" ]]; then
|
||||
echo "Thread Pool check is critical: No thread pools found with given name(s): ${include}."
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
fi
|
||||
|
||||
tpname=($(echo "$threadpools" | awk '{print $1"-"$2}' | sed "s/\n//g"))
|
||||
tpactive=($(echo "$threadpools" | awk '{print $3}' | sed "s/\n//g"))
|
||||
tpqueue=($(echo "$threadpools" | awk '{print $4}' | sed "s/\n//g"))
|
||||
tprejected=($(echo "$threadpools" | awk '{print $5}' | sed "s/\n//g"))
|
||||
|
||||
if [ -n "${warning}" ] || [ -n "${critical}" ]; then
|
||||
# Handle thresholds. They have to come in a special format: n,n,n (active, queue, rejected)
|
||||
thresholdlogic
|
||||
wactive=$(echo ${warning} | awk -F',' '{print $1}')
|
||||
wqueue=$(echo ${warning} | awk -F',' '{print $2}')
|
||||
wrejected=$(echo ${warning} | awk -F',' '{print $3}')
|
||||
cactive=$(echo ${critical} | awk -F',' '{print $1}')
|
||||
cqueue=$(echo ${critical} | awk -F',' '{print $2}')
|
||||
crejected=$(echo ${critical} | awk -F',' '{print $3}')
|
||||
|
||||
i=0; for tp in ${tpname[*]}; do
|
||||
perfdata[$i]="tp_${tp}_active=${tpactive[$i]};${wactive};${cactive};; tp_${tp}_queue=${tpqueue[$i]};${wqueue};${cqueue};; tp_${tp}_rejected=${tprejected[$i]};${wrejected};${crejected};; "
|
||||
let i++
|
||||
done
|
||||
|
||||
i=0
|
||||
for tpa in $(echo ${tpactive[*]}); do
|
||||
if [[ $tpa -ge $cactive ]]; then
|
||||
echo "Thread Pool ${tpname[$i]} is critical: Active ($tpa) is equal or higher than threshold ($cactive)|${perfdata[*]}"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $tpa -ge $wactive ]]; then
|
||||
echo "Thread Pool ${tpname[$i]} is warning: Active ($tpa) is equal or higher than threshold ($wactive)|${perfdata[*]}"
|
||||
exit $STATE_WARNING
|
||||
fi
|
||||
let i++
|
||||
done
|
||||
|
||||
i=0
|
||||
for tpq in $(echo ${tpqueue[*]}); do
|
||||
if [[ $tpq -ge $cqueue ]]; then
|
||||
echo "Thread Pool ${tpname[$i]} is critical: Queue ($tpq) is equal or higher than threshold ($cqueue)|${perfdata[*]}"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $tpq -ge $wqueue ]]; then
|
||||
echo "Thread Pool ${tpname[$i]} is warning: Queue ($tpq) is equal or higher than threshold ($wqueue)|${perfdata[*]}"
|
||||
exit $STATE_WARNING
|
||||
fi
|
||||
let i++
|
||||
done
|
||||
|
||||
i=0
|
||||
for tpr in $(echo ${tprejected[*]}); do
|
||||
if [[ $tpr -ge $crejected ]]; then
|
||||
echo "Thread Pool ${tpname[$i]} is critical: Rejected ($tpr) is equal or higher than threshold ($crejected)|${perfdata[*]}"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $tpr -ge $wrejected ]]; then
|
||||
echo "Thread Pool ${tpname[$i]} is warning: Rejected ($tpr) is equal or higher than threshold ($wrejected)|${perfdata[*]}"
|
||||
exit $STATE_WARNING
|
||||
fi
|
||||
let i++
|
||||
done
|
||||
|
||||
echo "ES SYSTEM OK - Found ${#tpname[*]} thread pools in cluster|${perfdata[*]}"
|
||||
exit $STATE_OK
|
||||
fi
|
||||
|
||||
# No Thresholds
|
||||
i=0; for tp in ${tpname[*]}; do
|
||||
perfdata[$i]="tp_${tp}_active=${tpactive[$i]};;;; tp_${tp}_queue=${tpqueue[$i]};;;; tp_${tp}_rejected=${tprejected[$i]};;;; "
|
||||
let i++
|
||||
done
|
||||
echo "ES SYSTEM OK - Found ${#tpname[*]} thread pools in cluster|${perfdata[*]}"
|
||||
exit $STATE_OK
|
||||
;;
|
||||
|
||||
master) # Check Cluster Master
|
||||
getstatus
|
||||
if [[ -z $user ]]; then
|
||||
# Without authentication
|
||||
master=$(curl -k -s --max-time ${max_time} ${httpscheme}://${host}:${port}/_cat/master)
|
||||
masterrc=$?
|
||||
if [[ $masterrc -eq 7 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Failed to connect to ${host} port ${port}: Connection refused"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $masterrc -eq 28 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - server did not respond within ${max_time} seconds"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -n $user ]] || [[ -n $(echo $esstatus | grep -i authentication) ]] ; then
|
||||
# Authentication required
|
||||
authlogic
|
||||
master=$(curl -k -s --max-time ${max_time} --basic -u ${user}:${pass} ${httpscheme}://${host}:${port}/_cat/master)
|
||||
masterrc=$?
|
||||
if [[ $threadpoolrc -eq 7 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Failed to connect to ${host} port ${port}: Connection refused"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ $threadpoolrc -eq 28 ]]; then
|
||||
echo "ES SYSTEM CRITICAL - server did not respond within ${max_time} seconds"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ -n $(echo $esstatus | grep -i "unable to authenticate") ]]; then
|
||||
echo "ES SYSTEM CRITICAL - Unable to authenticate user $user for REST request"
|
||||
exit $STATE_CRITICAL
|
||||
elif [[ -n $(echo $esstatus | grep -i "unauthorized") ]]; then
|
||||
echo "ES SYSTEM CRITICAL - User $user is unauthorized"
|
||||
exit $STATE_CRITICAL
|
||||
fi
|
||||
fi
|
||||
|
||||
masternode=$(echo "$master" | awk '{print $NF}')
|
||||
|
||||
if [[ -n ${expect_master} ]]; then
|
||||
if [[ "${expect_master}" = "${masternode}" ]]; then
|
||||
echo "ES SYSTEM OK - Master node is $masternode"
|
||||
exit $STATE_OK
|
||||
else
|
||||
echo "ES SYSTEM WARNING - Master node is $masternode but expected ${expect_master}"
|
||||
exit $STATE_WARNING
|
||||
fi
|
||||
else
|
||||
echo "ES SYSTEM OK - Master node is $masternode"
|
||||
exit $STATE_OK
|
||||
fi
|
||||
;;
|
||||
|
||||
*) help
|
||||
esac
|
27
check_es_system/check_es_system-1.12.0/test/test_readonly.sh
Executable file
27
check_es_system/check_es_system-1.12.0/test/test_readonly.sh
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/bin/bash
|
||||
echo "Test Elasticsearch status"
|
||||
./check_es_system.sh -H 127.0.0.1 -P 9200 -t readonly
|
||||
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo -e "\e[1m\e[32m✔ Test 2.1 OK: Readonly check worked and no read_only indexes were found\e[0m"
|
||||
exitcode=0
|
||||
else
|
||||
echo -e "\e[1m\e[31m✘ Test 2.1 ERROR: Readonly check has not worked or read_only indexes were found\e[0m"
|
||||
exitcode=1
|
||||
fi
|
||||
|
||||
# Create an index with read_only setting
|
||||
curl -X PUT "127.0.0.1:9200/my-index-002" -H 'Content-Type: application/json' -d'{ "settings": { "index": { "blocks.read_only": true } } }'
|
||||
sleep 5
|
||||
|
||||
./check_es_system.sh -H 127.0.0.1 -P 9200 -t readonly
|
||||
if [[ $? -eq 2 ]]; then
|
||||
echo -e "\e[1m\e[32m✔ Test 2.1 OK: Readonly check worked and detected a read only index\e[0m"
|
||||
exitcode=0
|
||||
else
|
||||
echo -e "\e[1m\e[31m✘ Test 2.1 ERROR: Readonly check has not worked as expected\e[0m"
|
||||
exitcode=1
|
||||
fi
|
||||
|
||||
|
||||
exit $exitcode
|
27
check_es_system/check_es_system-1.12.0/test/test_status.sh
Executable file
27
check_es_system/check_es_system-1.12.0/test/test_status.sh
Executable file
|
@ -0,0 +1,27 @@
|
|||
#!/bin/bash
|
||||
echo "Test Elasticsearch status"
|
||||
./check_es_system.sh -H 127.0.0.1 -P 9200 -t status
|
||||
|
||||
if [[ $? -eq 0 ]]; then
|
||||
echo -e "\e[1m\e[32m✔ Test 1.1 OK: Status check worked and shows green\e[0m"
|
||||
exitcode=0
|
||||
else
|
||||
echo -e "\e[1m\e[31m✘ Test 1.1 ERROR: Status check has not worked\e[0m"
|
||||
exitcode=1
|
||||
fi
|
||||
|
||||
# Create index with a replica, this should result in unassigned shards and yellow status
|
||||
curl -X PUT "127.0.0.1:9200/my-index-001" -H 'Content-Type: application/json' -d'{ "settings": { "index": { "number_of_shards": 2, "number_of_replicas": 1 } } }'
|
||||
sleep 5
|
||||
|
||||
./check_es_system.sh -H 127.0.0.1 -P 9200 -t status
|
||||
if [[ $? -eq 1 ]]; then
|
||||
echo -e "\e[1m\e[32m✔ Test 1.2 OK: Status check worked and shows yellow\e[0m"
|
||||
exitcode=0
|
||||
else
|
||||
echo -e "\e[1m\e[31m✘ Test 1.2 ERROR: Status check has not worked as expected\e[0m"
|
||||
exitcode=1
|
||||
fi
|
||||
|
||||
|
||||
exit $exitcode
|
6
check_es_system/control
Normal file
6
check_es_system/control
Normal file
|
@ -0,0 +1,6 @@
|
|||
Uploaders: Jan Wagner <waja@cyconet.org>
|
||||
Recommends: curl, jshon | jq
|
||||
Version: 1.12.0
|
||||
Homepage: https://github.com/Napsty/check_es_system/
|
||||
Watch: https://github.com/Napsty/check_es_system/tags .*/v?(\d\S+)\.tar\.gz
|
||||
Description: Plugin script to check the status of an ElasticSearch cluster node.
|
7
check_es_system/copyright
Normal file
7
check_es_system/copyright
Normal file
|
@ -0,0 +1,7 @@
|
|||
Copyright (c) Claudio Kuenzler <ck@claudiokuenzler.com>
|
||||
|
||||
License: GPL v2
|
||||
|
||||
On Debian systems, the complete text of the GNU General
|
||||
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
|
||||
|
1
check_es_system/src
Symbolic link
1
check_es_system/src
Symbolic link
|
@ -0,0 +1 @@
|
|||
check_es_system-1.12.0/
|
14
check_esxi_hardware/Makefile
Normal file
14
check_esxi_hardware/Makefile
Normal file
|
@ -0,0 +1,14 @@
|
|||
PLUGIN := check_esxi_hardware
|
||||
CLEANFILES := check_esxi_hardware
|
||||
DOCFILES := README.md
|
||||
|
||||
include ../common.mk
|
||||
|
||||
check_esxi_hardware:
|
||||
cp $@.py $@
|
||||
chmod 755 $@
|
||||
|
||||
install::
|
||||
install -d $(DESTDIR)$(PLUGINDIR)
|
||||
ln -s $(PLUGINDIR)/$(PLUGIN) $(DESTDIR)$(PLUGINDIR)/$(PLUGIN).py
|
||||
|
11
check_esxi_hardware/README.md
Normal file
11
check_esxi_hardware/README.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
check_esxi_hardware
|
||||
=========
|
||||
|
||||
Monitoring plugin to check the hardware on VMware ESX/ESXi servers.
|
||||
|
||||
This is the public git repository for development of the plugin.
|
||||
|
||||
|
||||
Documentation + Production Ready Plugin
|
||||
-------------
|
||||
Please refer to https://www.claudiokuenzler.com/monitoring-plugins/check_esxi_hardware.php
|
1039
check_esxi_hardware/check_esxi_hardware.py
Executable file
1039
check_esxi_hardware/check_esxi_hardware.py
Executable file
File diff suppressed because it is too large
Load diff
6
check_esxi_hardware/control
Normal file
6
check_esxi_hardware/control
Normal file
|
@ -0,0 +1,6 @@
|
|||
Uploaders: Jan Wagner <waja@cyconet.org>
|
||||
Recommends: python3-minimal, python-pywbem
|
||||
Version: 20210809
|
||||
Homepage: https://github.com/Napsty/check_esxi_hardware
|
||||
Watch: https://github.com/Napsty/check_esxi_hardware/tags .*/v?(\d\S+)\.tar\.gz
|
||||
Description: Plugin for checking global health of VMware ESX/ESXi host
|
12
check_esxi_hardware/copyright
Normal file
12
check_esxi_hardware/copyright
Normal file
|
@ -0,0 +1,12 @@
|
|||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, see <https://www.gnu.org/licenses/>
|
3
check_iftraffic64/Makefile
Normal file
3
check_iftraffic64/Makefile
Normal file
|
@ -0,0 +1,3 @@
|
|||
#/usr/bin/make -f
|
||||
|
||||
include ../common.mk
|
1113
check_iftraffic64/check_iftraffic64
Executable file
1113
check_iftraffic64/check_iftraffic64
Executable file
File diff suppressed because it is too large
Load diff
5
check_iftraffic64/control
Normal file
5
check_iftraffic64/control
Normal file
|
@ -0,0 +1,5 @@
|
|||
Homepage: https://exchange.nagios.org/directory/Plugins/Network-Connections%2C-Stats-and-Bandwidth/check_iftraffic64/details
|
||||
Uploaders: Jan Wagner <waja@cyconet.org>
|
||||
Description: plugin for checking network traffic by snmp.
|
||||
Recommends: libsnmp-perl, libnet-dns-perl
|
||||
Version: .77
|
7
check_iftraffic64/copyright
Normal file
7
check_iftraffic64/copyright
Normal file
|
@ -0,0 +1,7 @@
|
|||
Copyright (C) 2004 Gerd Mueller / Netways GmbH
|
||||
|
||||
License: GPL+
|
||||
|
||||
On Debian systems, the complete text of the GNU General
|
||||
Public License can be found in "/usr/share/common-licenses/GPL".
|
||||
|
3
check_iostat/Makefile
Normal file
3
check_iostat/Makefile
Normal file
|
@ -0,0 +1,3 @@
|
|||
#/usr/bin/make -f
|
||||
|
||||
include ../common.mk
|
352
check_iostat/check_iostat
Normal file
352
check_iostat/check_iostat
Normal file
|
@ -0,0 +1,352 @@
|
|||
#!/bin/bash
|
||||
#----------check_iostat.sh-----------
|
||||
#
|
||||
# Version 0.0.2 - Jan/2009
|
||||
# Changes: added device verification
|
||||
#
|
||||
# by Thiago Varela - thiago@iplenix.com
|
||||
#
|
||||
# Version 0.0.3 - Dec/2011
|
||||
# Changes:
|
||||
# - changed values from bytes to mbytes
|
||||
# - fixed bug to get traffic data without comma but point
|
||||
# - current values are displayed now, not average values (first run of iostat)
|
||||
#
|
||||
# by Philipp Niedziela - pn@pn-it.com
|
||||
#
|
||||
# Version 0.0.4 - April/2014
|
||||
# Changes:
|
||||
# - Allow Empty warn/crit levels
|
||||
# - Can check I/O, WAIT Time, or Queue
|
||||
#
|
||||
# by Warren Turner
|
||||
#
|
||||
# Version 0.0.5 - Jun/2014
|
||||
# Changes:
|
||||
# - removed -y flag from call since iostat doesn't know about it any more (June 2014)
|
||||
# - only needed executions of iostat are done now (save cpu time whenever you can)
|
||||
# - fixed the obvious problems of missing input values (probably because of the now unimplemented "-y") with -x values
|
||||
# - made perfomance data optional (I like to have choice in the matter)
|
||||
#
|
||||
# by Frederic Krueger / fkrueger-dev-checkiostat@holics.at
|
||||
#
|
||||
# Version 0.0.6 - Jul/2014
|
||||
# Changes:
|
||||
# - Cleaned up argument checking, removed excess iostat calls, steamlined if statements and renamed variables to fit current use
|
||||
# - Fixed all inputs to match current iostat output (Ubuntu 12.04)
|
||||
# - Changed to take last ten seconds as default (more useful for nagios usage). Will go to "since last reboot" (previous behaviour) on -g flag.
|
||||
# - added extra comments/whitespace etc to make add readability
|
||||
#
|
||||
# by Ben Field / ben.field@concreteplatform.com
|
||||
#
|
||||
# Version 0.0.7 - Sep/2014
|
||||
# Changes:
|
||||
# - Fixed performance data for Wait check
|
||||
#
|
||||
# by Christian Westergard / christian.westergard@gmail.com
|
||||
#
|
||||
# Version 0.0.8 - Jan/2019
|
||||
# Changes:
|
||||
# - Added Warn/Crit thresholds to performance output
|
||||
#
|
||||
# by Danny van Zunderd / danny_vz@live.nl
|
||||
#
|
||||
# Version 0.0.9 - Jun/2020
|
||||
# Changes:
|
||||
# - Updated to use bash 4.4 mechanisms
|
||||
#
|
||||
# by Joseph Waggy / joseph.waggy@gmail.com
|
||||
|
||||
iostat=$(which iostat 2>/dev/null)
|
||||
bc=$(which bc 2>/dev/null)
|
||||
|
||||
help()
|
||||
{
|
||||
echo -e "
|
||||
Usage:
|
||||
|
||||
-d =
|
||||
--Device to be checked. Example: \"-d sda\"
|
||||
|
||||
Run only one of i, q, W:
|
||||
|
||||
-i = IO Check Mode
|
||||
--Checks Total Transfers/sec, Read IO/Sec, Write IO/Sec, Bytes Read/Sec, Bytes Written/Sec
|
||||
--warning/critical = Total Transfers/sec,Read IO/Sec,Write IO/Sec,Bytes Read/Sec,Bytes Written/Sec
|
||||
|
||||
-q = Queue Mode
|
||||
--Checks Disk Queue Lengths
|
||||
--warning/critial = Average size of requests, Queue length of requests
|
||||
|
||||
-W = Wait Time Mode
|
||||
--Check the time for I/O requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.
|
||||
--warning/critical = Avg I/O Wait Time (ms), Avg Read Wait Time (ms), Avg Write Wait Time (ms), Avg Service Wait Time (ms), Avg CPU Utilization
|
||||
|
||||
-w,-c = pass warning and critical levels respectively. These are not required, but with out them, all queries will return as OK.
|
||||
|
||||
-p = Provide performance data for later graphing
|
||||
|
||||
-g = Since last reboot for system (more for debugging that nagios use!)
|
||||
|
||||
-h = This help
|
||||
"
|
||||
}
|
||||
|
||||
# Ensuring we have the needed tools:
|
||||
if [[ ! -f $iostat ]] || [[ ! -f $bc ]]; then
|
||||
echo -e "ERROR: You must have iostat and bc installed in order to run this plugin\n\tuse: apt-get install systat bc\n"
|
||||
exit -1
|
||||
fi
|
||||
|
||||
io=0
|
||||
queue=0
|
||||
waittime=0
|
||||
printperfdata=0
|
||||
STATE="OK"
|
||||
samples=2i
|
||||
status=0
|
||||
|
||||
MSG=""
|
||||
PERFDATA=""
|
||||
|
||||
#------------Argument Set-------------
|
||||
|
||||
while getopts "d:w:c:ipqWhg" OPT; do
|
||||
case $OPT in
|
||||
"d")
|
||||
disk=$OPTARG
|
||||
;;
|
||||
"w")
|
||||
warning=$OPTARG
|
||||
;;
|
||||
"c")
|
||||
critical=$OPTARG
|
||||
;;
|
||||
"i")
|
||||
io=1
|
||||
;;
|
||||
"p")
|
||||
printperfdata=1
|
||||
;;
|
||||
"q")
|
||||
queue=1
|
||||
;;
|
||||
"W")
|
||||
waittime=1
|
||||
;;
|
||||
"g")
|
||||
samples=1
|
||||
;;
|
||||
"h")
|
||||
echo "help:"
|
||||
help
|
||||
exit 0
|
||||
;;
|
||||
\?)
|
||||
echo "Invalid option: -$OPTARG" >&2
|
||||
help
|
||||
exit -1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Autofill if parameters are empty
|
||||
if [[ -z "$disk" ]]; then
|
||||
disk=sda
|
||||
fi
|
||||
|
||||
#Checks that only one query type is run
|
||||
if [[ $((io+queue+waittime)) -ne "1" ]]; then
|
||||
echo "ERROR: select one and only one run mode"
|
||||
help
|
||||
exit -1
|
||||
fi
|
||||
|
||||
#set warning and critical to insane value is empty, else set the individual values
|
||||
if [[ -z "$warning" ]]; then
|
||||
warning=99999
|
||||
else
|
||||
#TPS with IO, Request size with queue
|
||||
warn_1=$(echo $warning | cut -d, -f1)
|
||||
#Read/s with IO,Queue Length with queue
|
||||
warn_2=$(echo $warning | cut -d, -f2)
|
||||
#Write/s with IO
|
||||
warn_3=$(echo $warning | cut -d, -f3)
|
||||
#KB/s read with IO
|
||||
warn_4=$(echo $warning | cut -d, -f4)
|
||||
#KB/s written with IO
|
||||
warn_5=$(echo $warning | cut -d, -f5)
|
||||
#Crude hack due to integer expression later in the script
|
||||
warning=1
|
||||
fi
|
||||
|
||||
if [[ -z "$critical" ]]; then
|
||||
critical=99999
|
||||
else
|
||||
#TPS with IO, Request size with queue
|
||||
crit_1=$(echo $critical | cut -d, -f1)
|
||||
#Read/s with IO,Queue Length with queue
|
||||
crit_2=$(echo $critical | cut -d, -f2)
|
||||
#Write/s with IO
|
||||
crit_3=$(echo $critical | cut -d, -f3)
|
||||
#KB/s read with IO
|
||||
crit_4=$(echo $critical | cut -d, -f4)
|
||||
#KB/s written with IO
|
||||
crit_5=$(echo $critical | cut -d, -f5)
|
||||
#Crude hack due to integer expression later in the script
|
||||
critical=1
|
||||
fi
|
||||
|
||||
#------------Argument Set End-------------
|
||||
|
||||
#------------Parameter Check-------------
|
||||
|
||||
#Checks for sane Disk name:
|
||||
if [[ ! -b "/dev/$disk" ]]; then
|
||||
echo "ERROR: Device incorrectly specified"
|
||||
help
|
||||
exit -1
|
||||
fi
|
||||
|
||||
#Checks for sane warning/critical levels
|
||||
if [[ $warning -ne "99999" || $critical -ne "99999" ]]; then
|
||||
if [[ "$warn_1" -gt "$crit_1" || "$warn_2" -gt "$crit_2" ]]; then
|
||||
echo "ERROR: critical levels must be higher than warning levels"
|
||||
help
|
||||
exit -1
|
||||
elif [[ $io -eq "1" || $waittime -eq "1" ]]; then
|
||||
if [[ "$warn_3" -gt "$crit_3" || "$warn_4" -gt "$crit_4" || "$warn_5" -gt "$crit_5" ]]; then
|
||||
echo "ERROR: critical levels must be higher than warning levels"
|
||||
help
|
||||
exit -1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
#------------Parameter Check End-------------
|
||||
|
||||
# iostat parameters:
|
||||
# -m: megabytes
|
||||
# -k: kilobytes
|
||||
# first run of iostat shows statistics since last reboot, second one shows current vaules of hdd
|
||||
# -d is the duration for second run, -x the rest
|
||||
|
||||
TMPX=$($iostat $disk -x -k -d 10 $samples | grep $disk | tail -1)
|
||||
|
||||
#------------IO Test-------------
|
||||
|
||||
if [[ "$io" == "1" ]]; then
|
||||
|
||||
TMPD=$($iostat $disk -k -d 10 $samples | grep $disk | tail -1)
|
||||
#Requests per second:
|
||||
tps=$(echo "$TMPD" | awk '{print $2}')
|
||||
read_sec=$(echo "$TMPX" | awk '{print $4}')
|
||||
written_sec=$(echo "$TMPX" | awk '{print $5}')
|
||||
|
||||
#Kb per second:
|
||||
kbytes_read_sec=$(echo "$TMPX" | awk '{print $6}')
|
||||
kbytes_written_sec=$(echo "$TMPX" | awk '{print $7}')
|
||||
|
||||
# "Converting" values to float (string replace , with .)
|
||||
tps=${tps/,/.}
|
||||
read_sec=${read_sec/,/.}
|
||||
written_sec=${written_sec/,/.}
|
||||
kbytes_read_sec=${kbytes_read_sec/,/.}
|
||||
kbytes_written_sec=${kbytes_written_sec/,/.}
|
||||
|
||||
# Comparing the result and setting the correct level:
|
||||
if [[ "$warning" -ne "99999" ]]; then
|
||||
if [[ "$(echo "$tps >= $warn_1" | bc)" == "1" || "$(echo "$read_sec >= $warn_2" | bc)" == "1" || "$(echo "$written_sec >= $warn_3" | bc)" == "1" || "$(echo "$kbytes_read_sec >= $warn_4" | bc -q)" == "1" || "$(echo "$kbytes_written_sec >= $warn_5" | bc)" == "1" ]]; then
|
||||
STATE="WARNING"
|
||||
status=1
|
||||
fi
|
||||
fi
|
||||
if [[ "$critical" -ne "99999" ]]; then
|
||||
if [[ "$(echo "$tps >= $crit_1" | bc)" == "1" || "$(echo "$read_sec >= $crit_2" | bc -q)" == "1" || "$(echo "$written_sec >= $crit_3" | bc)" == "1" || "$(echo "$kbytes_read_sec >= $crit_4" | bc -q)" == "1" || "$(echo "$kbytes_written_sec >= $crit_5" | bc)" == "1" ]]; then
|
||||
STATE="CRITICAL"
|
||||
status=2
|
||||
fi
|
||||
fi
|
||||
# Printing the results:
|
||||
MSG="$STATE - I/O stats: Transfers/Sec=$tps Read Requests/Sec=$read_sec Write Requests/Sec=$written_sec KBytes Read/Sec=$kbytes_read_sec KBytes_Written/Sec=$kbytes_written_sec"
|
||||
PERFDATA=" | total_io_sec'=$tps;$warn_1;$crit_1; read_io_sec=$read_sec;$warn_2;$crit_2; write_io_sec=$written_sec;$warn_3;$crit_3; kbytes_read_sec=$kbytes_read_sec;$warn_4;$crit_4; kbytes_written_sec=$kbytes_written_sec;$warn_5;$crit_5;"
|
||||
fi
|
||||
|
||||
#------------IO Test End-------------
|
||||
|
||||
#------------Queue Test-------------
|
||||
if [[ "$queue" == "1" ]]; then
|
||||
qsize=$(echo "$TMPX" | awk '{print $8}')
|
||||
qlength=$(echo "$TMPX" | awk '{print $9}')
|
||||
|
||||
# "Converting" values to float (string replace , with .)
|
||||
qsize=${qsize/,/.}
|
||||
qlength=${qlength/,/.}
|
||||
|
||||
# Comparing the result and setting the correct level:
|
||||
if [[ "$warning" -ne "99999" ]]; then
|
||||
if [[ "$(echo "$qsize >= $warn_1" | bc)" == "1" || "$(echo "$qlength >= $warn_2" | bc)" == "1" ]]; then
|
||||
STATE="WARNING"
|
||||
status=1
|
||||
fi
|
||||
fi
|
||||
if [[ "$critical" -ne "99999" ]]; then
|
||||
if [[ "$(echo "$qsize >= $crit_1" | bc)" == "1" || "$(echo "$qlength >= $crit_2" | bc)" == "1" ]]; then
|
||||
STATE="CRITICAL"
|
||||
status=2
|
||||
fi
|
||||
fi
|
||||
|
||||
# Printing the results:
|
||||
MSG="$STATE - Disk Queue Stats: Average Request Size=$qsize Average Queue Length=$qlength"
|
||||
PERFDATA=" | qsize=$qsize;$warn_1;$crit_1; queue_length=$qlength;$warn_2;$crit_2;"
|
||||
fi
|
||||
|
||||
#------------Queue Test End-------------
|
||||
|
||||
#------------Wait Time Test-------------
|
||||
|
||||
#Parse values. Warning - svc time will soon be deprecated and these will need to be changed. Future parser could look at first line (labels) to suggest correct column to return
|
||||
if [[ "$waittime" == "1" ]]; then
|
||||
avgwait=$(echo "$TMPX" | awk '{print $10}')
|
||||
avgrwait=$(echo "$TMPX" | awk '{print $11}')
|
||||
avgwwait=$(echo "$TMPX" | awk '{print $12}')
|
||||
avgsvctime=$(echo "$TMPX" | awk '{print $13}')
|
||||
avgcpuutil=$(echo "$TMPX" | awk '{print $14}')
|
||||
|
||||
# "Converting" values to float (string replace , with .)
|
||||
avgwait=${avgwait/,/.}
|
||||
avgrwait=${avgrwait/,/.}
|
||||
avgwwait=${avgwwait/,/.}
|
||||
avgsvctime=${avgsvctime/,/.}
|
||||
avgcpuutil=${avgcpuutil/,/.}
|
||||
|
||||
# Comparing the result and setting the correct level:
|
||||
if [[ "$warning" -ne "99999" ]]; then
|
||||
if [[ "$(echo "$avgwait >= $warn_1" | bc)" == "1" || "$(echo "$avgrwait >= $warn_2" | bc -q)" == "1" || "$(echo "$avgwwait >= $warn_3" | bc)" == "1" || "$(echo "$avgsvctime >= $warn_4" | bc -q)" == "1" || "$(echo "$avgcpuutil >= $warn_5" | bc)" == "1" ]]; then
|
||||
STATE="WARNING"
|
||||
status=1
|
||||
fi
|
||||
fi
|
||||
if [[ "$critical" -ne "99999" ]]; then
|
||||
if [[ "$(echo "$avgwait >= $crit_1" | bc)" == "1" || "$(echo "$avgrwait >= $crit_2" | bc -q)" == "1" || "$(echo "$avgwwait >= $crit_3" | bc)" == "1" || "$(echo "$avgsvctime >= $crit_4" | bc -q)" == "1" || "$(echo "$avgcpuutil >= $crit_5" | bc)" == "1" ]]; then
|
||||
STATE="CRITICAL"
|
||||
status=2
|
||||
fi
|
||||
fi
|
||||
|
||||
# Printing the results:
|
||||
MSG="$STATE - Wait Time Stats: Avg I/O Wait Time (ms)=$avgwait Avg Read Wait Time (ms)=$avgrwait Avg Write Wait Time (ms)=$avgwwait Avg Service Wait Time (ms)=$avgsvctime Avg CPU Utilization=$avgcpuutil"
|
||||
PERFDATA=" | avg_io_waittime_ms=$avgwait;$warn_1;$crit_1; avg_r_waittime_ms=$avgrwait;$warn_2;$crit_2; avg_w_waittime_ms=$avgwwait;$warn_3;$crit_3; avg_service_waittime_ms=$avgsvctime;$warn_4;$crit_4; avg_cpu_utilization=$avgcpuutil;$warn_5;$crit_5;"
|
||||
fi
|
||||
|
||||
#------------Wait Time End-------------
|
||||
|
||||
# now output the official result
|
||||
echo -n "$MSG"
|
||||
if [[ "x$printperfdata" == "x1" ]]; then
|
||||
echo -n "$PERFDATA"
|
||||
fi
|
||||
echo ""
|
||||
exit $status
|
||||
#----------/check_iostat.sh-----------
|
5
check_iostat/control
Normal file
5
check_iostat/control
Normal file
|
@ -0,0 +1,5 @@
|
|||
Homepage: https://exchange.nagios.org/directory/Plugins/Operating-Systems/Linux/check_iostat--2D-I-2FO-statistics/details
|
||||
Uploaders: Jan Wagner <waja@cyconet.org>
|
||||
Description: plugin shows the I/O usage of the specified disk.
|
||||
Recommends: sysstat, bc
|
||||
Version: 0.0.9
|
1
check_iostat/copyright
Normal file
1
check_iostat/copyright
Normal file
|
@ -0,0 +1 @@
|
|||
|
3
check_iostats/Makefile
Normal file
3
check_iostats/Makefile
Normal file
|
@ -0,0 +1,3 @@
|
|||
#/usr/bin/make -f
|
||||
|
||||
include ../common.mk
|
150
check_iostats/check_iostats
Normal file
150
check_iostats/check_iostats
Normal file
|
@ -0,0 +1,150 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
#
|
||||
# Version 0.0.2 - Jan/2009
|
||||
# Changes: added device verification
|
||||
#
|
||||
# by Thiago Varela - thiago@iplenix.com
|
||||
|
||||
# Version 0.1 - Nov/2011
|
||||
# by Ruediger Oertel ro@suse.de
|
||||
# Changes:
|
||||
# - rewrite in perl, no need for external grep, awk, bc
|
||||
# - add output for iowait
|
||||
# - implement using device mapper names, e.g. $vg-$lv
|
||||
|
||||
use strict;
|
||||
use Getopt::Std;
|
||||
|
||||
$Getopt::Std::STANDARD_HELP_VERSION = "true";
|
||||
|
||||
my $iostat = `which iostat 2>/dev/null`;
|
||||
chomp($iostat);
|
||||
|
||||
my $progname = $0;
|
||||
|
||||
|
||||
# call it VERSION_MESSAGE so that getopts uses it automatically
|
||||
sub VERSION_MESSAGE {
|
||||
print "$progname: version 0.1, Nov/2011\n";
|
||||
}
|
||||
|
||||
# call it HELP_MESSAGE so that getopts uses it automatically
|
||||
sub HELP_MESSAGE {
|
||||
print "\n\tThis plugin shows the I/O usage of the specified disk, using the iostat external program.\n";
|
||||
print "\tIt prints three statistics: Transactions per second (tps), Kilobytes per second\n";
|
||||
print "tread from the disk (KB_read/s) and and written to the disk (KB_written/s)\n\n";
|
||||
print "$progname:\n\t-d <disk>\t\tDevice to be checked (without the full path, eg. sda)\n";
|
||||
print "\t\t\t\t(also accepted are device mapper names)\n";
|
||||
print "\t-c <tps>,<read>,<wrtn>\tSets the CRITICAL level for tps, KB_read/s and KB_written/s, respectively\n";
|
||||
print "\t-w <tps>,<read>,<wrtn>\tSets the WARNING level for tps, KB_read/s and KB_written/s, respectively\n";
|
||||
print "\t-C <percent>\t Sets the CRITICAL level for iowait\n";
|
||||
print "\t-W <percent>\t Sets the WARNING level for iowait\n";
|
||||
print "\t\t\t(if no level is set for iowait, no warning is set for this value)\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
unless ($iostat && -f $iostat) {
|
||||
warn "ERROR: You must have iostat installed in order to run this plugin\n";
|
||||
exit 1;
|
||||
}
|
||||
|
||||
# Getting parameters:
|
||||
my %opts;
|
||||
getopts('d:w:c:W:C:hv', \%opts);
|
||||
|
||||
my $disk = $opts{'d'};
|
||||
my $warning = $opts{'w'};
|
||||
my $critical = $opts{'c'};
|
||||
my $warning_iowait = $opts{'W'};
|
||||
my $critical_iowait = $opts{'C'};
|
||||
|
||||
VERSION_MESSAGE() if $opts{'v'};
|
||||
HELP_MESSAGE() if $opts{'h'};
|
||||
|
||||
# Adjusting the three warn and crit levels:
|
||||
my ($crit_tps,$crit_read,$crit_written) = split(',',$critical);
|
||||
my ($warn_tps,$warn_read,$warn_written) = split(',',$warning);
|
||||
|
||||
# Checking parameters:
|
||||
if (! -b "/dev/$disk") {
|
||||
if (-b "/dev/mapper/$disk") {
|
||||
my @f = stat("/dev/mapper/$disk");
|
||||
$f[6] %= 256;
|
||||
$disk = "dm-$f[6]";
|
||||
} else {
|
||||
warn "ERROR: Device incorrectly specified\n";
|
||||
HELP_MESSAGE();
|
||||
}
|
||||
}
|
||||
|
||||
unless ($warn_tps && $warn_read && $warn_written && $crit_tps && $crit_read && $crit_written) {
|
||||
warn "ERROR: You must specify all warning and critical levels\n";
|
||||
HELP_MESSAGE();
|
||||
}
|
||||
|
||||
if ($warn_tps > $crit_tps || $warn_read > $crit_read || $warn_written > $crit_written) {
|
||||
warn "ERROR: critical levels must be highter than warning levels\n";
|
||||
HELP_MESSAGE();
|
||||
}
|
||||
|
||||
if ($warning_iowait && $critical_iowait && $warning_iowait > $critical_iowait) {
|
||||
warn "ERROR: critical iowait level must be higher that warning level\n";
|
||||
HELP_MESSAGE();
|
||||
}
|
||||
|
||||
my ($tps,$kbread,$kbwritten,$iowait);
|
||||
my $seen_usage = 0;
|
||||
my $seen_disk = 0;
|
||||
|
||||
# Doing the actual check:
|
||||
open (IOSTAT,"-|","$iostat -k $disk 2 2");
|
||||
while (<IOSTAT>) {
|
||||
chomp();
|
||||
if (/^[0-9\.\ \t]+$/) {
|
||||
$seen_usage++;
|
||||
next if $seen_usage < 2;
|
||||
my (@stats) = split ('\s+', $_);
|
||||
$iowait = $stats[4];
|
||||
next;
|
||||
}
|
||||
if (/^$disk /) {
|
||||
$seen_disk++;
|
||||
next if $seen_disk < 2;
|
||||
my (@stats) = split ('\s+', $_);
|
||||
($tps,$kbread,$kbwritten) = @stats[1,2,3];
|
||||
last;
|
||||
}
|
||||
}
|
||||
close (IOSTAT);
|
||||
|
||||
my $msg = "OK";
|
||||
my $status = 0;
|
||||
|
||||
# Comparing the result and setting the correct level:
|
||||
if ($tps >= $warn_tps || $kbread >= $warn_read || $kbwritten >= $warn_written) {
|
||||
$msg = "WARNING";
|
||||
$status = 1;
|
||||
}
|
||||
|
||||
if ($warning_iowait && $iowait >= $warning_iowait) {
|
||||
$msg = "WARNING";
|
||||
$status = 1;
|
||||
}
|
||||
|
||||
if ($tps >= $crit_tps || $kbread >= $crit_read || $kbwritten >= $crit_written) {
|
||||
$msg = "CRITICAL";
|
||||
$status = 2;
|
||||
}
|
||||
|
||||
if ($critical_iowait && $iowait >= $critical_iowait) {
|
||||
$msg = "CRITICAL";
|
||||
$status = 2;
|
||||
}
|
||||
|
||||
|
||||
# Printing the results:
|
||||
print "$msg - I/O stats tps=$tps KB_read/s=$kbread KB_written/s=$kbwritten iowait=$iowait | 'tps'=$tps; 'KB_read/s'=$kbread; 'KB_written/s'=$kbwritten; 'iowait'=$iowait\n";
|
||||
|
||||
# Bye!
|
||||
exit $status;
|
6
check_iostats/control
Normal file
6
check_iostats/control
Normal file
|
@ -0,0 +1,6 @@
|
|||
Homepage: https://github.com/dnsmichi/icinga-plugins/blob/master/scripts/check_iostats
|
||||
Watch: https://gitlab.icare.ch/open-source/monitoring-plugins/-/raw/master/check_iostats # Version ([0-9.]+)
|
||||
Uploaders: Jan Wagner <waja@cyconet.org>
|
||||
Description: plugin shows the I/O usage of the specified disk, perl implementation.
|
||||
Recommends: sysstat
|
||||
Version: 0.1
|
1
check_iostats/copyright
Normal file
1
check_iostats/copyright
Normal file
|
@ -0,0 +1 @@
|
|||
|
3
check_keepalived/Makefile
Normal file
3
check_keepalived/Makefile
Normal file
|
@ -0,0 +1,3 @@
|
|||
#/usr/bin/make -f
|
||||
|
||||
include ../common.mk
|
254
check_keepalived/check_keepalived
Normal file
254
check_keepalived/check_keepalived
Normal file
|
@ -0,0 +1,254 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Monitoring plugin to check the keepalived status
|
||||
usage(){
|
||||
echo "Check: Is the keepalived service operate as it should.
|
||||
--status | -s <state> ) Target state of the system (MASTER, BACKUP)
|
||||
--interface | -i <interface> ) Interface for vrrp instance
|
||||
--ha-ip | -ip <ip> ) Vrrp-ip
|
||||
--interface2 | -i2 <interface> ) Interface for 2nd vrrp instance
|
||||
--ha-ip2 | -ip2 <ip> ) 2nd vrrp-ip
|
||||
--help | -h ) Usage
|
||||
"
|
||||
}
|
||||
|
||||
# Exit Codes
|
||||
OK=0
|
||||
WARNING=1
|
||||
CRITICAL=2
|
||||
UNKNOWN=3
|
||||
|
||||
# Command definitions
|
||||
if [ -x "$(which cat)" ];
|
||||
then
|
||||
CAT="$(which cat)"
|
||||
fi
|
||||
|
||||
if [ -x "$(which grep)" ];
|
||||
then
|
||||
GREP="$(which grep)"
|
||||
fi
|
||||
|
||||
if [ -x "$(which ip)" ];
|
||||
then
|
||||
IP="$(which ip)"
|
||||
fi
|
||||
|
||||
if [ -x "$(which pgrep)" ];
|
||||
then
|
||||
PG="$(which pgrep)"
|
||||
fi
|
||||
|
||||
if [ -x "$(which wc)" ];
|
||||
then
|
||||
WC="$(which wc)"
|
||||
fi
|
||||
|
||||
if [ "$1" = "" ]
|
||||
then
|
||||
echo "CRITICAL: No arguments given. Take a look at the usage:"
|
||||
usage
|
||||
exit "${CRITICAL}"
|
||||
fi
|
||||
|
||||
# shifting through our command line arguments and setting our values
|
||||
while [ "$1" != "" ]; do
|
||||
case $1 in
|
||||
--status | -s ) shift
|
||||
TARGET_STATE="$1"
|
||||
;;
|
||||
--interface | -i ) shift
|
||||
IFACE="$1"
|
||||
;;
|
||||
--ha-ip | -ip ) shift
|
||||
HAIP="$1"
|
||||
;;
|
||||
--interface2 | -i2 ) shift
|
||||
IFACE2="$1"
|
||||
SEC_IP=true
|
||||
;;
|
||||
--ha-ip2 | -ip2 ) shift
|
||||
HAIP2="$1"
|
||||
;;
|
||||
--help | -h ) usage
|
||||
exit
|
||||
;;
|
||||
* ) usage
|
||||
echo "CRITICAL: No valid arguments given. Take a look at the usage."
|
||||
exit "${CRITICAL}"
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
# Config and commands
|
||||
STAT_FILE='/tmp/keepalived.status'
|
||||
PID_FILE='/run/keepalived.pid'
|
||||
PID=$("${CAT}" "${PID_FILE}" 2>/dev/null)
|
||||
SERVICE=$("${PG}" keepalived)
|
||||
STATUS=(MASTER BACKUP FAULT)
|
||||
CHECK_HAIP=$("${IP}" 2>/dev/null addr sh "${IFACE}" | "${GREP}" "${HAIP}" | "${WC}" -l)
|
||||
CHECK_HAIP2=$("${IP}" 2>/dev/null addr sh "${IFACE2}" | "${GREP}" "${HAIP2}" | "${WC}" -l)
|
||||
|
||||
# Check files are valid
|
||||
if [ ! -e "${STAT_FILE}" ]
|
||||
then
|
||||
echo "CRITICAL: Generated status file is missing. State could not be determined."
|
||||
exit "${CRITICAL}"
|
||||
fi
|
||||
|
||||
FILE_CONT=$("${CAT}" "${STAT_FILE}" 2>/dev/null)
|
||||
|
||||
if [ ! -e "${PID_FILE}" ]
|
||||
then
|
||||
echo "CRITICAL: PID file is missing, keepalived is not running."
|
||||
exit "${CRITICAL}"
|
||||
fi
|
||||
|
||||
# Check variables exists
|
||||
if [ -z "${TARGET_STATE}" ]
|
||||
then
|
||||
echo "CRITICAL: Parameter 'status' not given. Check usage:"
|
||||
usage
|
||||
exit "${CRITICAL}"
|
||||
fi
|
||||
|
||||
if [ -z "${IFACE}" ]
|
||||
then
|
||||
echo "CRITICAL: Parameter 'interface' not given. Check usage:"
|
||||
usage
|
||||
exit "${CRITICAL}"
|
||||
fi
|
||||
|
||||
if [ -z "${HAIP}" ]
|
||||
then
|
||||
echo "CRITICAL: Parameter 'ha-ip' not given. Check usage:"
|
||||
usage
|
||||
exit "${CRITICAL}"
|
||||
fi
|
||||
|
||||
# Check service is running
|
||||
if [[ ! "${SERVICE}" =~ ${PID} ]]
|
||||
then
|
||||
echo "CRITICAL: keepalived is not running."
|
||||
exit "${CRITICAL}"
|
||||
fi
|
||||
|
||||
# Confirm valid STATUS
|
||||
if [[ ! "${STATUS[*]}" =~ ${FILE_CONT} ]]
|
||||
then
|
||||
echo "CRITICAL: Status file contains unknown status or is empty. Take a look at ${STAT_FILE}."
|
||||
exit "${CRITICAL}"
|
||||
fi
|
||||
|
||||
# Check ha ip and status
|
||||
if [ "${TARGET_STATE}" = "${STATUS[0]}" ] # Machine is defined as MASTER
|
||||
then
|
||||
case "${FILE_CONT}" in
|
||||
MASTER ) STAT=ok
|
||||
;;
|
||||
BACKUP ) STAT=fail
|
||||
;;
|
||||
FAULT ) echo "CRITICAL: Machine status is FAULT."
|
||||
exit "${CRITICAL}"
|
||||
;;
|
||||
* ) echo "CRITICAL: Status file contains unknown status or is empty. Take a look at ${STAT_FILE}."
|
||||
exit "${CRITICAL}"
|
||||
esac
|
||||
|
||||
if [ "${SEC_IP}" == "true" ] # 2nd ha instance
|
||||
then
|
||||
if [ "${CHECK_HAIP2}" == 0 ] && [ "${STAT}" == ok ]
|
||||
then
|
||||
echo "CRITICAL: 2nd HA IP ${HAIP2} is not up but machine is MASTER according to ${STAT_FILE}."
|
||||
STAT_SEC_IP=CRIT
|
||||
elif [ "${CHECK_HAIP2}" == 0 ] && [ "${STAT}" == fail ]
|
||||
then
|
||||
echo "CRITICAL: 2nd HA IP ${HAIP2} is not up, machine is BACKUP. Should be MASTER."
|
||||
elif [ "${CHECK_HAIP2}" == 1 ] && [ "${STAT}" == fail ]
|
||||
then
|
||||
echo "CRITICAL: 2nd HA IP ${HAIP2} is up, but machine is BACKUP according to ${STAT_FILE}. Should be MASTER."
|
||||
else
|
||||
echo "OK: 2nd HA IP ${HAIP2} is up and machine is MASTER."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${CHECK_HAIP}" == 0 ] && [ "${STAT}" == ok ] # Target-actual comparison machine state; IP should be up
|
||||
then
|
||||
echo "CRITICAL: HA IP ${HAIP} is not up but machine is MASTER according to ${STAT_FILE}."
|
||||
exit "${CRITICAL}"
|
||||
elif [ "${CHECK_HAIP}" == 0 ] && [ "${STAT}" == fail ]
|
||||
then
|
||||
echo "CRITICAL: HA IP ${HAIP} is not up, machine is BACKUP. Should be MASTER."
|
||||
exit "${CRITICAL}"
|
||||
elif [ "${CHECK_HAIP}" == 1 ] && [ "${STAT}" == fail ]
|
||||
then
|
||||
echo "CRITICAL: HA IP ${HAIP} is up, but machine is BACKUP according to ${STAT_FILE}. Should be MASTER."
|
||||
exit "${CRITICAL}"
|
||||
else
|
||||
echo "OK: HA IP ${HAIP} is up and machine is MASTER."
|
||||
if [ "${STAT_SEC_IP}" == CRIT ]
|
||||
then
|
||||
exit "${CRITICAL}"
|
||||
else
|
||||
exit "${OK}"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
elif [ "${TARGET_STATE}" = "${STATUS[1]}" ] # Machine is defined as BACKUP
|
||||
then
|
||||
case "${FILE_CONT}" in
|
||||
MASTER ) STAT=fail
|
||||
;;
|
||||
BACKUP ) STAT=ok
|
||||
;;
|
||||
FAULT ) echo "CRITICAL: Machine status is FAULT."
|
||||
exit "${CRITICAL}"
|
||||
;;
|
||||
* ) echo "CRITICAL: Status file contains unknown status or is empty."
|
||||
exit "${CRITICAL}"
|
||||
esac
|
||||
|
||||
if [ "${SEC_IP}" == "true" ] # 2nd ha instance
|
||||
then
|
||||
if [ "${CHECK_HAIP2}" == 1 ] && [ "${STAT}" == ok ]
|
||||
then
|
||||
echo "CRITICAL: 2nd HA IP ${HAIP2} is up but machine is BACKUP according to ${STAT_FILE}."
|
||||
STAT_SEC_IP=CRIT
|
||||
elif [ "${CHECK_HAIP2}" == 1 ] && [ "${STAT}" == fail ]
|
||||
then
|
||||
echo "WARNING: 2nd HA IP ${HAIP2} is up, machine is MASTER. Should be BACKUP."
|
||||
elif [ "${CHECK_HAIP2}" == 0 ] && [ "${STAT}" == fail ]
|
||||
then
|
||||
echo "CRITICAL: 2nd HA IP ${HAIP2} is not up but machine is MASTER according to ${STAT_FILE}. Should be BACKUP."
|
||||
else
|
||||
echo "OK: 2nd HA IP ${HAIP2} is not up and machine is BACKUP."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${CHECK_HAIP}" == 1 ] && [ "${STAT}" == ok ] # Target-actual comparison machine state; IP should be down
|
||||
then
|
||||
echo "CRITICAL: HA IP ${HAIP} is up but machine is BACKUP according to ${STAT_FILE}."
|
||||
exit "${CRITICAL}"
|
||||
elif [ "${CHECK_HAIP}" == 1 ] && [ "${STAT}" == fail ]
|
||||
then
|
||||
echo "WARNING: HA IP ${HAIP} is up, machine is MASTER. Should be BACKUP."
|
||||
exit "${WARNING}"
|
||||
elif [ "${CHECK_HAIP}" == 0 ] && [ "${STAT}" == fail ]
|
||||
then
|
||||
echo "CRITICAL: HA IP ${HAIP} is not up but machine is MASTER according to ${STAT_FILE}. Should be BACKUP."
|
||||
exit "${CRITICAL}"
|
||||
else
|
||||
echo "OK: HA IP ${HAIP} is not up and machine is BACKUP."
|
||||
if [ "${STAT_SEC_IP}" == CRIT ]
|
||||
then
|
||||
exit "${CRITICAL}"
|
||||
else
|
||||
exit "${OK}"
|
||||
fi
|
||||
fi
|
||||
|
||||
else
|
||||
echo "Unknown: Unknown status given. Check ${STAT_FILE} and script usage."
|
||||
exit "${UNKNOWN}"
|
||||
fi
|
4
check_keepalived/control
Normal file
4
check_keepalived/control
Normal file
|
@ -0,0 +1,4 @@
|
|||
Uploaders: Jan Wagner <waja@cyconet.org>
|
||||
Description: plugin checking keepalived status
|
||||
Recommends: procps
|
||||
Version: 0.0.1
|
7
check_keepalived/copyright
Normal file
7
check_keepalived/copyright
Normal file
|
@ -0,0 +1,7 @@
|
|||
Copyright (C) 2021 Stella Sieber / TMT GmbH & Co. KG
|
||||
|
||||
License: GPL+
|
||||
|
||||
On Debian systems, the complete text of the GNU General
|
||||
Public License can be found in "/usr/share/common-licenses/GPL".
|
||||
|
3
check_mysql_slave/Makefile
Normal file
3
check_mysql_slave/Makefile
Normal file
|
@ -0,0 +1,3 @@
|
|||
#/usr/bin/make -f
|
||||
|
||||
include ../common.mk
|
402
check_mysql_slave/check_mysql_slave
Normal file
402
check_mysql_slave/check_mysql_slave
Normal file
|
@ -0,0 +1,402 @@
|
|||
#!/usr/bin/perl
|
||||
use strict;
|
||||
my $VERSION = '0.1.1';
|
||||
my $COPYRIGHT = 'Copyright (C) 2008 Jonathan Buhacoff <jonathan@buhacoff.net>';
|
||||
my $LICENSE = 'http://www.gnu.org/licenses/gpl.txt';
|
||||
my %status = ( 'OK' => 0, 'WARNING' => 1, 'CRITICAL' => 2, 'UNKNOWN' => 3 );
|
||||
my $SERVICE = "MYSQL SLAVE";
|
||||
|
||||
# look for required modules
|
||||
exit $status{UNKNOWN} unless load_modules(qw/Getopt::Long DBI DBD::mysql/);
|
||||
|
||||
Getopt::Long::Configure("bundling");
|
||||
my $verbose = 0;
|
||||
my $help = "";
|
||||
my $help_usage = "";
|
||||
my $show_version = "";
|
||||
my $mysql_server = "";
|
||||
my $default_mysql_port = "3306";
|
||||
my $mysql_port = "";
|
||||
my $warntime = 15;
|
||||
my $criticaltime = 30;
|
||||
my $timeout = 60;
|
||||
my $username = "";
|
||||
my $password = "";
|
||||
my $ok;
|
||||
$ok = Getopt::Long::GetOptions(
|
||||
"V|version"=>\$show_version,
|
||||
"v|verbose+"=>\$verbose,"h|help"=>\$help,"usage"=>\$help_usage,
|
||||
"w|warning=i"=>\$warntime,"c|critical=i"=>\$criticaltime,"t|timeout=i"=>\$timeout,
|
||||
# mysql settings
|
||||
"H|hostname=s"=>\$mysql_server,"p|port=i"=>\$mysql_port,
|
||||
"U|username=s"=>\$username,"P|password=s"=>\$password,
|
||||
);
|
||||
|
||||
if( $show_version ) {
|
||||
print "$VERSION\n";
|
||||
if( $verbose ) {
|
||||
print "Default warning threshold: $warntime seconds\n";
|
||||
print "Default critical threshold: $criticaltime seconds\n";
|
||||
print "Default timeout: $timeout seconds\n";
|
||||
}
|
||||
exit $status{UNKNOWN};
|
||||
}
|
||||
|
||||
if( $help ) {
|
||||
exec "perldoc", $0 or print "Try `perldoc $0`\n";
|
||||
exit $status{UNKNOWN};
|
||||
}
|
||||
|
||||
$help_usage = 1 unless $mysql_server and $username;
|
||||
if( $help_usage ) {
|
||||
print "Usage: $0 -H host [-p port] [-U username] [-P password] [-w <seconds>] [-c <seconds>]\n";
|
||||
exit $status{UNKNOWN};
|
||||
}
|
||||
|
||||
# initialize
|
||||
my $report = new PluginReport;
|
||||
my $time_start = time;
|
||||
my $actual_response = undef;
|
||||
|
||||
# connect to MySQL server
|
||||
$mysql_port = $default_mysql_port unless $mysql_port;
|
||||
|
||||
eval {
|
||||
local $SIG{ALRM} = sub { die "exceeded timeout $timeout seconds\n" }; # NB: \n required, see `perldoc -f alarm`
|
||||
alarm $timeout;
|
||||
|
||||
my $dbh = DBI->connect("DBI:mysql:host=$mysql_server;port=$mysql_port",$username,$password);
|
||||
# get mysql version
|
||||
my $version = undef;
|
||||
my $sth_version = $dbh->prepare("SHOW VARIABLES LIKE 'version'");
|
||||
$sth_version->execute;
|
||||
while( my ($name,$value) = $sth_version->fetchrow_array) {
|
||||
$version = $value if $name eq "version";
|
||||
}
|
||||
$report->{version} = $version || "";
|
||||
$sth_version->finish;
|
||||
# get slave status (should only be 1 result row)
|
||||
my $sth_status = $dbh->prepare("SHOW SLAVE STATUS");
|
||||
$sth_status->execute;
|
||||
while( my $status = $sth_status->fetchrow_hashref) {
|
||||
if( $verbose > 1 ) {
|
||||
foreach( keys %$status ) {
|
||||
print "$_ = $status->{$_} \n";
|
||||
}
|
||||
}
|
||||
# mysql 3.23 has "Slave_Running" while 4.1 and above have "Slave_IO_Running" and "Slave_SQL_Running"
|
||||
$report->{Running} = "No";
|
||||
if( $version lt "4" ) {
|
||||
$report->{Running} = "Yes" if $status->{Slave_Running};
|
||||
$report->{file} = $status->{Log_File};
|
||||
$report->{position} = $status->{Pos};
|
||||
}
|
||||
else {
|
||||
$report->{Running} = "Yes" if $status->{Slave_IO_Running} eq "Yes" and $status->{Slave_SQL_Running} eq "Yes";
|
||||
$report->{file} = $status->{Master_Log_File};
|
||||
$report->{position} = $status->{Exec_Master_Log_Pos} . '/' . $status->{Read_Master_Log_Pos};
|
||||
}
|
||||
$report->{behind} = $status->{Seconds_Behind_Master};
|
||||
# put the master host and its bin log file and position in the report
|
||||
foreach( keys %$status ) {
|
||||
$report->{$_} = $status->{$_};
|
||||
}
|
||||
}
|
||||
$sth_status->finish;
|
||||
# threshold for seconds behind master etc.
|
||||
# $report->{behind} = ...
|
||||
$report->{behind} ||= 0;
|
||||
# $report->{saomethaisdf} ...
|
||||
$dbh->disconnect;
|
||||
};
|
||||
if( $@ ) {
|
||||
$@ = $DBI::errstr if $DBI::errstr; # these can be more helpful than "Can't call method prepare on an undefined value"
|
||||
$@ =~ s/\n/ /g; # the error message can be multiline but we want our output to be just one line
|
||||
print "$SERVICE CRITICAL - $@\n";
|
||||
exit $status{CRITICAL};
|
||||
}
|
||||
|
||||
my @warning = ();
|
||||
my @critical = ();
|
||||
|
||||
# overall warnings/critical cerrors
|
||||
push @critical, "not running $report->{Last_Error}" if $report->{Running} ne "Yes";
|
||||
push @critical, "$report->{behind} secs behind master" if $report->{behind} > 30;
|
||||
push @warning, "$report->{behind} secs behind master" if $report->{behind} > 0;
|
||||
#push @warning, "connection time more than $warntime" if( $time_connected - $time_start > $warntime );
|
||||
#push @critical, "connection time more than $criticaltime" if( $time_connected - $time_start > $criticaltime );
|
||||
#push @critical, "response was $actual_response but expected $expect_response" if ( $actual_response ne $expect_response );
|
||||
# on the number line, we need to test 6 cases:
|
||||
# 0-----w-----c----->
|
||||
# 0, 0<lag<w, w, w<lag<c, c, c<lag
|
||||
# which we simplify to
|
||||
# lag>=c, w<=lag<c, 0<=lag<warn
|
||||
|
||||
|
||||
# print report and exit with known status
|
||||
my $short_report = $report->text(qw/file position/);
|
||||
my $long_report = join("", map { "$_: $report->{$_}\n" } qw/version Master_Host Log_File Pos/ );
|
||||
if( scalar @critical ) {
|
||||
my $crit_alerts = join(", ", @critical);
|
||||
print "$SERVICE CRITICAL - $crit_alerts; $short_report\n";
|
||||
print $long_report if $verbose;
|
||||
exit $status{CRITICAL};
|
||||
}
|
||||
if( scalar @warning ) {
|
||||
my $warn_alerts = join(", ", @warning);
|
||||
print "$SERVICE WARNING - $warn_alerts; $short_report\n";
|
||||
print $long_report if $verbose;
|
||||
exit $status{WARNING};
|
||||
}
|
||||
print "$SERVICE OK - $short_report\n";
|
||||
print $long_report if $verbose;
|
||||
exit $status{OK};
|
||||
|
||||
|
||||
# utility to load required modules. exits if unable to load one or more of the modules.
|
||||
sub load_modules {
|
||||
my @missing_modules = ();
|
||||
foreach( @_ ) {
|
||||
eval "require $_";
|
||||
push @missing_modules, $_ if $@;
|
||||
}
|
||||
if( @missing_modules ) {
|
||||
print "Missing perl modules: @missing_modules\n";
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
# NAME
|
||||
# PluginReport
|
||||
# SYNOPSIS
|
||||
# $report = new PluginReport;
|
||||
# $report->{label1} = "value1";
|
||||
# $report->{label2} = "value2";
|
||||
# print $report->text(qw/label1 label2/);
|
||||
package PluginReport;
|
||||
|
||||
sub new {
|
||||
my ($proto,%p) = @_;
|
||||
my $class = ref($proto) || $proto;
|
||||
my $self = bless {}, $class;
|
||||
$self->{$_} = $p{$_} foreach keys %p;
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub text {
|
||||
my ($self,@labels) = @_;
|
||||
my @report = map { "$_ $self->{$_}" } grep { defined $self->{$_} } @labels;
|
||||
my $text = join(", ", @report);
|
||||
return $text;
|
||||
}
|
||||
|
||||
package main;
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
check_mysql_slave - connects to a mysql replication slave and checks its status
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
check_mysql_slave -H slave.server.net -U nagios -P passwd
|
||||
check_mysql_slave -H slave.server.net -U nagios -P passwd -p 3306
|
||||
check_mysql_slave --help
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over
|
||||
|
||||
=item --warning <seconds>
|
||||
|
||||
Currently not used. There are other nagios plugins that will check if a server is responding to connections.
|
||||
May be used in the future to specify how many bytes or seconds behind the master a slave may be.
|
||||
Also known as: -w <seconds>
|
||||
|
||||
=item --critical <seconds>
|
||||
|
||||
Currently not used. There are other nagios plugins that will check if a server is responding to connections.
|
||||
May be used in the future to specify how many bytes or seconds behind the master a slave may be.
|
||||
Also known as: -c <seconds>
|
||||
|
||||
=item --timeout <seconds>
|
||||
|
||||
Abort with critical status if it takes longer than <seconds> to connect to the mysql server. Default is 60 seconds.
|
||||
Also known as: -t <seconds>
|
||||
|
||||
=item --hostname <server>
|
||||
|
||||
Address or name of the MySQL slave server. Examples: mysql5.server.net, localhost, 192.168.1.100
|
||||
Also known as: -H <server>
|
||||
|
||||
=item --port <number>
|
||||
|
||||
Service port on the MySQL server. Default is 3306.
|
||||
Also known as: -p <number>
|
||||
|
||||
=item --username <username>
|
||||
|
||||
=item --password <password>
|
||||
|
||||
Username and password to use when connecting to the MySQL server.
|
||||
Also known as: -U <username> -P <password>
|
||||
|
||||
=item --verbose
|
||||
|
||||
Display additional information. Useful for troubleshooting. Use together with --version to see the default
|
||||
warning and critical timeout values.
|
||||
Also known as: -v
|
||||
|
||||
=item --version
|
||||
|
||||
Display plugin version and exit.
|
||||
Also known as: -V
|
||||
|
||||
=item --help
|
||||
|
||||
Display this documentation and exit. Does not work in the ePN version.
|
||||
Also known as: -h
|
||||
|
||||
=item --usage
|
||||
|
||||
Display a short usage instruction and exit.
|
||||
|
||||
=back
|
||||
|
||||
=head1 EXAMPLES
|
||||
|
||||
=head2 Command line example
|
||||
|
||||
Check a slave listening on the standard MySQL port from the command line:
|
||||
|
||||
$ check_mysql_slave -H slave.server.net -U nagios -P 'password'
|
||||
|
||||
MYSQL SLAVE OK - file bin.000003, position 41267/41267
|
||||
|
||||
=head2 Nagios configuration example
|
||||
|
||||
I prefer to define this service on each slave:
|
||||
|
||||
define command {
|
||||
command_name check_mysql_slave
|
||||
command_line $USER1$/check_mysql_slave -H $HOSTADDRESS$ -p 3306 -U $ARG1$ -P $ARG2$
|
||||
}
|
||||
|
||||
define service {
|
||||
use your-service-template
|
||||
host_name slave.server.net
|
||||
service_description MySQL Replication Slave
|
||||
check_command check_mysql_slave!nagios!password
|
||||
}
|
||||
|
||||
But of course you could make the port number an argument and even define all your
|
||||
slave replication services on the master mysql host and use the slave server's
|
||||
hostname as an argument instead of HOSTADDRESS, like this:
|
||||
|
||||
command_line $USER1$/check_mysql_slave -H $ARG1$ -p $ARG2$ -U $ARG3$ -P $ARG4$
|
||||
|
||||
check_command check_mysql_slave!slave.server.net!3306!nagios!password
|
||||
|
||||
=head2 Nagios Embedded-Perl (ePN) example
|
||||
|
||||
The usage is the same, but use the embedded-perl version of the plugin:
|
||||
|
||||
command_line $USER1$/check_mysql_slave_epn -H $ARG1$ -p $ARG2$ -U $ARG3$ -P $ARG4$
|
||||
|
||||
=head1 EXIT CODES
|
||||
|
||||
This plugin complies with the Nagios plug-in specification:
|
||||
|
||||
0 OK The plugin was able to check the service and it appeared to be functioning properly
|
||||
1 Warning The plugin was able to check the service, but it appeared to be above some "warning" threshold or did not appear to be working properly
|
||||
2 Critical The plugin detected that either the service was not running or it was above some "critical" threshold
|
||||
3 Unknown Invalid command line arguments were supplied to the plugin or the plugin was unable to check the status of the given hosts/service
|
||||
|
||||
=head1 NAGIOS PLUGIN NOTES
|
||||
|
||||
Nagios plugin reference: http://nagiosplug.sourceforge.net/developer-guidelines.html
|
||||
|
||||
This plugin does NOT use Nagios DEFAULT_SOCKET_TIMEOUT (provided by utils.pm as $TIMEOUT) because
|
||||
the path to utils.pm must be specified completely in this program and forces users to edit the source
|
||||
code if their install location is different (if they realize this is the problem). You can view
|
||||
the default timeout for this module by using the --verbose and --version options together. The
|
||||
short form is -vV.
|
||||
|
||||
Other than that, it attempts to follow published guidelines for Nagios plugins.
|
||||
|
||||
=head1 SECURITY AND MYSQL PRIVILEGES
|
||||
|
||||
This section concerns mysql administrators who want to grant only minimal privileges to
|
||||
the nagios plugin (since its username and password are stored in the nagios config!).
|
||||
|
||||
The plugin executes the following commands on slave servers:
|
||||
|
||||
SHOW VARIABLES LIKE 'version';
|
||||
SHOW SLAVE STATUS;
|
||||
|
||||
I recommend using the following minimal grants for the nagios plugin:
|
||||
|
||||
=head2 MySQL version 3.23
|
||||
|
||||
GRANT PROCESS ON *.* TO 'nagios'@'nagios.server.net' identified by 'password';
|
||||
|
||||
=head2 MySQL version 4.1
|
||||
|
||||
GRANT SUPER,REPLICATION CLIENT ON *.* TO 'nagios'@'nagios.server.net' identified by 'password';
|
||||
|
||||
=head2 MySQL version 5.0
|
||||
|
||||
GRANT SUPER,REPLICATION CLIENT ON *.* TO 'nagios'@'nagios.server.net' identified by 'password';
|
||||
|
||||
=head1 PERL MODULE NOTES
|
||||
|
||||
This plugin requires the following perl modules:
|
||||
|
||||
Getopt::Long
|
||||
DBI
|
||||
DBD::mysql
|
||||
|
||||
The manual for DBD::mysql states that a database is required in the connection string.
|
||||
This is not true if you are only using global privileges such as usage, process, super,
|
||||
or replication client without trying to open a specific database.
|
||||
|
||||
=head1 CHANGES
|
||||
|
||||
Tue Aug 19 17:46:02 PDT 2008
|
||||
+ version 0.1
|
||||
Wed Aug 20 07:58:16 PDT 2008
|
||||
+ added helpful DBI error messages (access denied, incompatible versions, etc)
|
||||
+ version 0.1.1
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Jonathan Buhacoff <jonathan@buhacoff.net>
|
||||
|
||||
=head1 COPYRIGHT AND LICENSE
|
||||
|
||||
Copyright (C) 2008 Jonathan Buhacoff
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
http://www.gnu.org/licenses/gpl.txt
|
||||
|
||||
=cut
|
||||
|
5
check_mysql_slave/check_mysql_slave.cfg
Normal file
5
check_mysql_slave/check_mysql_slave.cfg
Normal file
|
@ -0,0 +1,5 @@
|
|||
# 'check_mysql_slave' command definition
|
||||
define command{
|
||||
command_name check_slave_mysql
|
||||
command_line /usr/lib/monitoring-plugins/check_mysql_slave -H '$HOSTADDRESS$' -p '$ARG3$' -U '$ARG1$' -P '$ARG2$'
|
||||
}
|
6
check_mysql_slave/control
Normal file
6
check_mysql_slave/control
Normal file
|
@ -0,0 +1,6 @@
|
|||
Homepage: https://gist.github.com/natedaiger/48457
|
||||
Watch: https://gist.github.com/natedaiger/48457/raw/check_mysql_slave.pl \$VERSION\ =\ '([0-9.]+)'
|
||||
Uploaders: Jan Wagner <waja@cyconet.org>
|
||||
Description: plugin that connects to a mysql replication slave and checks its status
|
||||
Recommends: libdbd-mysql-perl
|
||||
Version: 0.1.1
|
7
check_mysql_slave/copyright
Normal file
7
check_mysql_slave/copyright
Normal file
|
@ -0,0 +1,7 @@
|
|||
Copyright (c) 2008 Jonathan Buhacoff <jonathan@buhacoff.net>
|
||||
|
||||
License: GPL v2
|
||||
|
||||
On Debian systems, the complete text of the GNU General
|
||||
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
|
||||
|
14
check_nextcloud/Makefile
Normal file
14
check_nextcloud/Makefile
Normal file
|
@ -0,0 +1,14 @@
|
|||
PLUGIN := check_nextcloud
|
||||
CLEANFILES := check_nextcloud
|
||||
DOCFILES := README.md
|
||||
|
||||
include ../common.mk
|
||||
|
||||
check_nextcloud:
|
||||
cp check/$@.py $@
|
||||
chmod 755 $@
|
||||
|
||||
install::
|
||||
install -d $(DESTDIR)$(PLUGINDIR)
|
||||
ln -s $(PLUGINDIR)/$(PLUGIN) $(DESTDIR)$(PLUGINDIR)/$(PLUGIN).py
|
||||
|
78
check_nextcloud/README.md
Normal file
78
check_nextcloud/README.md
Normal file
|
@ -0,0 +1,78 @@
|
|||
# check_nextcloud
|
||||
|
||||
Nagios/Centreon plugin for nextcloud serverinfo API (https://github.com/nextcloud/serverinfo)
|
||||
|
||||
## Syntax / Help
|
||||
|
||||
```
|
||||
./check_nextcloud.py -u username -p password -H cloud.example.com -c [system|storage|shares|webserver|php|database|users]
|
||||
|
||||
|
||||
Options:
|
||||
-h, --help show this help message and exit
|
||||
-v, --version Print the version of this script
|
||||
-u USERNAME, --username=USERNAME
|
||||
Username of the user with administrative permissions
|
||||
on the nextcloud server
|
||||
-p PASSWORD, --password=PASSWORD
|
||||
Password of the user
|
||||
-H HOSTNAME, --hostname=HOSTNAME
|
||||
Nextcloud server address (make sure that the address
|
||||
is a trusted domain in the config.php)
|
||||
-c CHECK, --check=CHECK
|
||||
The thing you want to check
|
||||
[system|storage|shares|webserver|php|database|activeUsers|uploadFilesize]
|
||||
--upload-filesize Filesize in MiB, GiB without spaces (default="512.0GiB")
|
||||
--protocol=PROTOCOL Protocol you want to use [http|https]
|
||||
(default="https")
|
||||
--ignore-proxy Ignore any configured proxy server on this system for
|
||||
this request
|
||||
--api-url=API_URL Url of the api
|
||||
(default="/ocs/v2.php/apps/serverinfo/api/v1/info")
|
||||
|
||||
```
|
||||
|
||||
## Install
|
||||
|
||||
* Copy the check (python script) in your nagios/centreon plugins folder
|
||||
* Create a check with the following command line:
|
||||
```
|
||||
$USER1$/plugins_custom/check_nextcloud.py -u $_HOSTCLOUDUSER$ -p $_HOSTCLOUDPWD$ -H $HOSTNAME$ -c $ARG1$ --ignore-proxy
|
||||
```
|
||||
or for the check: `uploadFilesize`
|
||||
```
|
||||
$USER1$/plugins_custom/check_nextcloud.py -u $_HOSTCLOUDUSER$ -p $_HOSTCLOUDPWD$ -H $HOSTNAME$ -c $ARG1$ --upload-filesize=$ARG2$ --ignore-proxy
|
||||
```
|
||||
* Create a service for each thing you want to check (system, storage, etc.) and link it to your host(s)
|
||||
* Add the credentials of your nextcloud admin user as custom macro (CLOUDUSER, COUDPWD) to your host.
|
||||
|
||||
## Example 1
|
||||
|
||||
```
|
||||
./check_nextcloud.py -u adminUser -p secretPassword -H cloud.example.com -c system --ignore-proxy
|
||||
|
||||
OK - Nextcloud version: 12.0.3.3
|
||||
```
|
||||
|
||||
## Example 2
|
||||
|
||||
```
|
||||
./check_nextcloud.py -u adminUser -p secretPassword -H cloud.example.com -c activeUsers --ignore-proxy
|
||||
|
||||
OK - Last 5 minutes: 3 user(s), last 1 hour: 10 user(s), last 24 hour: 44 user(s) | users_last_5_minutes=3, users_last_1_hour=10, users_last_24_hours=44
|
||||
```
|
||||
|
||||
This will return a status message and create a graph based on the performance data.
|
||||
|
||||
## Example 3
|
||||
|
||||
```
|
||||
./check_nextcloud.py -u adminUser -p secretPassword -H cloud.example.com -c uploadFilesize --upload-filesize=2.0GiB --ignore-proxy
|
||||
|
||||
OK - Upload max filesize: 2.0GiB
|
||||
|
||||
# Or, when changed after an update...
|
||||
|
||||
CRITICAL - Upload max filesize is set to 512.0MiB, but should be 2.0GiB
|
||||
|
||||
```
|
297
check_nextcloud/check/check_nextcloud.py
Normal file
297
check_nextcloud/check/check_nextcloud.py
Normal file
|
@ -0,0 +1,297 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
###############################################################################################################
|
||||
# Language : Python 3
|
||||
# Filename : check_nextcloud.py
|
||||
# Autor : https://github.com/BornToBeRoot
|
||||
# Description : Nagios/Centreon plugin for nextcloud serverinfo API (https://github.com/nextcloud/serverinfo)
|
||||
# Repository : https://github.com/BornToBeRoot/check_nextcloud
|
||||
###############################################################################################################
|
||||
|
||||
### Changelog ###
|
||||
#
|
||||
# ~~ Version 1.2 ~~
|
||||
# - Parameter "--ignore-sslcert" added. (Note: If you use an ip address as hostname... you need to add the ip
|
||||
# address as trusted domain in the config.php)
|
||||
# - Parameter "--perfdata-format" added [centreon|nagios] (default="centreon")
|
||||
# ~~ Version 1.3 ~~
|
||||
# - Check for app updates added (Thanks @thinkl33t)
|
||||
# ~~ Version 1.4 ~~
|
||||
# - Parameter "--nc-token" added (Thanks @sblatt)
|
||||
# ~~ Version 2.0 ~~
|
||||
# - Migrated from Python 2.7 to 3 (Thanks @waja)
|
||||
#
|
||||
#################
|
||||
|
||||
import urllib.request, urllib.error, urllib.parse, base64, xml.etree.ElementTree, sys, traceback, ssl, re
|
||||
|
||||
# Some helper functions
|
||||
def calc_size_suffix(num, suffix='B'):
|
||||
for unit in ['','Ki','Mi','Gi','Ti','Pi','Ei','Zi']:
|
||||
if abs(num) < 1024.0:
|
||||
return "%3.1f%s%s" % (num, unit, suffix)
|
||||
|
||||
num /= 1024.0
|
||||
|
||||
return "%.1f%s%s" % (num, 'Yi', suffix)
|
||||
|
||||
def calc_size_nagios(num, suffix='B'):
|
||||
for unit in ['','K','M','G','T','P','E','Z']:
|
||||
if abs(num) < 1000.0:
|
||||
return "%3.1f%s%s" % (num, unit, suffix)
|
||||
|
||||
num /= 1000.0
|
||||
|
||||
return "%.1f%s%s" % (num, 'Y', suffix)
|
||||
|
||||
# Command line parser
|
||||
from optparse import OptionParser
|
||||
|
||||
parser = OptionParser(usage='%prog -u username -p password -H cloud.example.com -c [system|storage|shares|webserver|php|database|activeUsers|uploadFilesize|apps]')
|
||||
parser.add_option('-v', '--version', dest='version', default=False, action='store_true', help='Print the version of this script')
|
||||
parser.add_option('-u', '--username', dest='username', type='string', help='Username of the user with administrative permissions on the nextcloud server')
|
||||
parser.add_option('-p', '--password', dest='password', type='string', help='Password of the user')
|
||||
parser.add_option('-t', '--nc-token', dest='nc_token', type='string', help='Token to access the nextcloud serverinfo api. You can generate the token with "occ config:app:set serverinfo token --value yourtoken"; replaces username/password')
|
||||
parser.add_option('-H', '--hostname', dest='hostname', type='string', help='Nextcloud server address (make sure that the address is a trusted domain in the config.php)')
|
||||
parser.add_option('-c', '--check', dest='check', choices=['system','storage','shares','webserver','php','database','activeUsers','uploadFilesize','apps'], help='The thing you want to check [system|storage|shares|webserver|php|database|activeUsers|uploadFilesize|apps]')
|
||||
parser.add_option('--perfdata-format', dest='perfdata_format', default='centreon', choices=['centreon','nagios'], help='Format for the performance data [centreon|nagios] (default="centreon")')
|
||||
parser.add_option('--upload-filesize', dest='upload_filesize', default='512.0MiB', help='Filesize in MiB, GiB without spaces (default="512.0MiB")')
|
||||
parser.add_option('--protocol', dest='protocol', choices=['https', 'http'], default='https', help='Protocol you want to use [http|https] (default="https")')
|
||||
parser.add_option('--ignore-proxy', dest='ignore_proxy', default=False, action='store_true', help='Ignore any configured proxy server on this system for this request (default="false")')
|
||||
parser.add_option('--ignore-sslcert', dest='ignore_sslcert', default=False, action='store_true', help='Ignore ssl certificate (default="false")')
|
||||
parser.add_option('--api-url', dest='api_url', type='string', default='/ocs/v2.php/apps/serverinfo/api/v1/info', help='Url of the api (default="/ocs/v2.php/apps/serverinfo/api/v1/info")')
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
# Print the version of this script
|
||||
if options.version:
|
||||
print('Version 2.0')
|
||||
sys.exit(0)
|
||||
|
||||
# Validate the user input...
|
||||
if not options.username and not options.password and not options.hostname and not options.check:
|
||||
parser.print_help()
|
||||
sys.exit(3)
|
||||
|
||||
if not options.username and not options.nc_token:
|
||||
parser.error('Username or nc-token is required, use parameter [-u|--username] or [--nc-token].')
|
||||
sys.exit(3)
|
||||
|
||||
if not options.password and not options.nc_token:
|
||||
parser.error('Password or nc-token is required, use parameter [-p|--password] or [--nc-token].')
|
||||
sys.exit(3)
|
||||
|
||||
if not options.hostname:
|
||||
parser.error('Hostname is required, use parameter [-H|--hostname]')
|
||||
sys.exit(3)
|
||||
|
||||
if not options.check:
|
||||
parser.error('Check is required, use parameter [-c|--check]')
|
||||
sys.exit(3)
|
||||
|
||||
# Re-validate the hostname given by the user (make sure they dont entered a "https://", "http://" or "/")
|
||||
url_strip = re.compile(r"https?://")
|
||||
hostname = url_strip.sub('', options.hostname).split('/')[0]
|
||||
|
||||
# Re-validate the api_url
|
||||
if options.api_url.startswith('/'):
|
||||
api_url = options.api_url
|
||||
else:
|
||||
api_url = '/{0}'.format(options.api_url)
|
||||
|
||||
# Create the url to access the api
|
||||
url = '{0}://{1}{2}'.format(options.protocol, hostname, api_url)
|
||||
|
||||
# Encode credentials as base64
|
||||
credential = base64.b64encode(bytes('%s:%s' % (options.username, options.password), 'ascii'))
|
||||
|
||||
try:
|
||||
# Create the request
|
||||
request = urllib.request.Request(url)
|
||||
|
||||
# Add the token header
|
||||
if options.nc_token:
|
||||
request.add_header('NC-Token',"%s" % options.nc_token)
|
||||
else:
|
||||
# Add the authentication and api request header
|
||||
request.add_header("Authorization", "Basic %s" % credential.decode('utf-8'))
|
||||
request.add_header('OCS-APIRequest','true')
|
||||
|
||||
# SSL/TLS certificate validation (see: https://stackoverflow.com/questions/19268548/python-ignore-certificate-validation-urllib2)
|
||||
ctx = ssl.create_default_context()
|
||||
|
||||
if(options.ignore_sslcert):
|
||||
ctx.check_hostname = False
|
||||
ctx.verify_mode = ssl.CERT_NONE
|
||||
|
||||
# Proxy handler
|
||||
if(options.ignore_proxy):
|
||||
proxy_handler = urllib.request.ProxyHandler({})
|
||||
ctx_handler = urllib.request.HTTPSHandler(context=ctx)
|
||||
opener = urllib.request.build_opener(proxy_handler, ctx_handler)
|
||||
|
||||
response = opener.open(request)
|
||||
else:
|
||||
response = urllib.request.urlopen(request, context=ctx)
|
||||
|
||||
# Read the content
|
||||
content = response.read()
|
||||
|
||||
except urllib.error.HTTPError as error: # User is not authorized (401)
|
||||
print('UNKOWN - [WEBREQUEST] {0} {1}'.format(error.code, error.reason))
|
||||
sys.exit(3)
|
||||
|
||||
except urllib.error.URLError as error: # Connection has timed out (wrong url / server down)
|
||||
print('UNKOWN - [WEBREQUEST] {0}'.format(str(error.reason).split(']')[0].strip()))
|
||||
sys.exit(3)
|
||||
|
||||
try:
|
||||
# Convert the webrequest response to xml
|
||||
xml_root = xml.etree.ElementTree.fromstring(content)
|
||||
except xml.etree.ElementTree.ParseError:
|
||||
print('UNKOWN - [XML] Content contains no or wrong xml data... check the url and if the api is reachable!')
|
||||
sys.exit(3)
|
||||
|
||||
# Check if the xml is valid and the api gives usefull informations
|
||||
try:
|
||||
# Get the meta informations
|
||||
xml_meta = xml_root.find('meta')
|
||||
|
||||
xml_meta_status = str(xml_meta.find('status').text)
|
||||
xml_meta_statuscode = int(xml_meta.find('statuscode').text)
|
||||
xml_meta_message = str(xml_meta.find('message').text)
|
||||
|
||||
# Check the meta informations
|
||||
if not (xml_meta_status == 'ok' and xml_meta_statuscode == 200 and xml_meta_message == 'OK'):
|
||||
print('UNKOWN - [API] invalid meta data... status: {0}, statuscode: {1}, message: {2}'.format(xml_meta_status, xml_meta_statuscode, xml_meta_message))
|
||||
sys.exit(3)
|
||||
|
||||
except AttributeError:
|
||||
print('UNKOWN - [XML] Content contains no or wrong xml data... check the url and if the api is reachable!')
|
||||
sys.exit(3)
|
||||
|
||||
# Performance data format
|
||||
perfdata_format = "" # nagios
|
||||
|
||||
if(options.perfdata_format == 'centreon'): # centreon
|
||||
perfdata_format = ","
|
||||
|
||||
# Get the nextcloud version...
|
||||
# [output]
|
||||
if options.check == 'system':
|
||||
xml_system = xml_root.find('data').find('nextcloud').find('system')
|
||||
|
||||
xml_system_version = str(xml_system.find('version').text)
|
||||
|
||||
print('OK - Nextcloud version: {0}'.format(xml_system_version))
|
||||
sys.exit(0)
|
||||
|
||||
# Get informations about the storage
|
||||
# [output + performance data]
|
||||
if options.check == 'storage':
|
||||
xml_storage = xml_root.find('data').find('nextcloud').find('storage')
|
||||
|
||||
xml_storage_users = int(xml_storage.find('num_users').text)
|
||||
xml_storage_files = int(xml_storage.find('num_files').text)
|
||||
xml_storage_storages = int(xml_storage.find('num_storages').text)
|
||||
xml_storage_storages_local = int(xml_storage.find('num_storages_local').text)
|
||||
xml_storage_storages_home = int(xml_storage.find('num_storages_home').text)
|
||||
xml_storage_storages_other = int(xml_storage.find('num_storages_other').text)
|
||||
|
||||
print('OK - Users: {1}, files: {2}, storages: {3}, storages local: {4}, storages home: {5}, storages other: {6} | users={1}{0} files={2}{0} storages={3}{0} storages_local={4}{0} storages_home={5}{0} storage_other={6}'.format(perfdata_format, xml_storage_users, xml_storage_files, xml_storage_storages, xml_storage_storages_local, xml_storage_storages_home, xml_storage_storages_other))
|
||||
sys.exit(0)
|
||||
|
||||
# Get informations about the shares
|
||||
# [output + performance data]
|
||||
if options.check == 'shares':
|
||||
xml_shares = xml_root.find('data').find('nextcloud').find('shares')
|
||||
|
||||
xml_shares_shares = int(xml_shares.find('num_shares').text)
|
||||
xml_shares_shares_user = int(xml_shares.find('num_shares_user').text)
|
||||
xml_shares_shares_groups = int(xml_shares.find('num_shares_groups').text)
|
||||
xml_shares_shares_link = int(xml_shares.find('num_shares_link').text)
|
||||
xml_shares_shares_link_no_password = int(xml_shares.find('num_shares_link_no_password').text)
|
||||
xml_shares_fed_shares_sent = int(xml_shares.find('num_fed_shares_sent').text)
|
||||
xml_shares_fed_shares_received = int(xml_shares.find('num_fed_shares_received').text)
|
||||
|
||||
print('OK - Shares: {1}, shares user: {2}, shares groups: {3}, shares link: {4}, shares link no password: {5}, shares federation sent: {6}, shares federation received: {7} | shares={1}{0} shares_user={2}{0} shares_groups={3}{0} shares_link={4}{0} shares_link_no_password={5}{0} federation_shares_sent={6}{0} federation_shares_received={7}'.format(perfdata_format, xml_shares_shares, xml_shares_shares_user, xml_shares_shares_groups, xml_shares_shares_link, xml_shares_shares_link_no_password, xml_shares_fed_shares_sent, xml_shares_fed_shares_received))
|
||||
sys.exit(0)
|
||||
|
||||
# Get informations about the webserver
|
||||
# [output]
|
||||
if options.check == 'webserver':
|
||||
xml_webserver = str(xml_root.find('data').find('server').find('webserver').text)
|
||||
|
||||
print('OK - Webserver: {0}'.format(xml_webserver))
|
||||
sys.exit(0)
|
||||
|
||||
# Get informations about php
|
||||
# [output]
|
||||
if options.check == 'php':
|
||||
xml_php = xml_root.find('data').find('server').find('php')
|
||||
|
||||
xml_php_version = str(xml_php.find('version').text)
|
||||
xml_php_memory_limit = int(xml_php.find('memory_limit').text)
|
||||
xml_php_max_execution_time = str(xml_php.find('max_execution_time').text)
|
||||
xml_php_upload_max_filesize = int(xml_php.find('upload_max_filesize').text)
|
||||
|
||||
print('OK - PHP version: {0}, memory limit {1}, max execution time: {2}s, upload max filesize: {3}'.format(xml_php_version, calc_size_suffix(xml_php_memory_limit), xml_php_max_execution_time, calc_size_suffix(xml_php_upload_max_filesize)))
|
||||
sys.exit(0)
|
||||
|
||||
# Get informations about the database
|
||||
# [output + performance data]
|
||||
if options.check == 'database':
|
||||
xml_database = xml_root.find('data').find('server').find('database')
|
||||
|
||||
xml_database_type = str(xml_database.find('type').text)
|
||||
xml_database_version = str(xml_database.find('version').text)
|
||||
xml_database_size = float(xml_database.find('size').text)
|
||||
|
||||
print('OK - Database: {0}, version {1}, size: {2} | database_size={3}'.format(xml_database_type, xml_database_version, calc_size_suffix(xml_database_size), calc_size_nagios(xml_database_size)))
|
||||
sys.exit(0)
|
||||
|
||||
# Check the active users
|
||||
# [output + performance data]
|
||||
if options.check == 'activeUsers':
|
||||
xml_activeUsers = xml_root.find('data').find('activeUsers')
|
||||
|
||||
xml_activeUsers_last5minutes = int(xml_activeUsers.find('last5minutes').text)
|
||||
xml_activeUsers_last1hour = int(xml_activeUsers.find('last1hour').text)
|
||||
xml_activeUsers_last24hours = int(xml_activeUsers.find('last24hours').text)
|
||||
|
||||
print('OK - Last 5 minutes: {1} user(s), last 1 hour: {2} user(s), last 24 hour: {3} user(s) | users_last_5_minutes={1}{0} users_last_1_hour={2}{0} users_last_24_hours={3}'.format(perfdata_format, xml_activeUsers_last5minutes, xml_activeUsers_last1hour, xml_activeUsers_last24hours))
|
||||
sys.exit(0)
|
||||
|
||||
if options.check == 'uploadFilesize':
|
||||
xml_php = xml_root.find('data').find('server').find('php')
|
||||
|
||||
# Get upload max filesize
|
||||
xml_php_upload_max_filesize = int(xml_php.find('upload_max_filesize').text)
|
||||
|
||||
# Convert
|
||||
upload_max_filesize = calc_size_suffix(xml_php_upload_max_filesize)
|
||||
|
||||
if options.upload_filesize == upload_max_filesize:
|
||||
print('OK - Upload max filesize: {0}'.format(upload_max_filesize))
|
||||
sys.exit(0)
|
||||
else:
|
||||
print('CRITICAL - Upload max filesize is set to {0}, but should be {1}'.format(upload_max_filesize, options.upload_filesize))
|
||||
sys.exit(2)
|
||||
|
||||
# Get informations about any app updates
|
||||
# [output]
|
||||
if options.check == 'apps':
|
||||
xml_apps = xml_root.find('data').find('nextcloud').find('system').find('apps')
|
||||
|
||||
xml_apps_num_updates_available = int(xml_apps.find('num_updates_available').text)
|
||||
|
||||
if xml_apps_num_updates_available == 0:
|
||||
print('OK - No apps requiring update')
|
||||
sys.exit(0)
|
||||
else:
|
||||
xml_apps_updates = xml_apps.find('app_updates')
|
||||
xml_apps_list = []
|
||||
for app in xml_apps_updates:
|
||||
xml_apps_list.append('{0}->{1}'.format(app.tag, app.text))
|
||||
print('WARNING - {0} apps require update: {1}'.format(xml_apps_num_updates_available, ' ,'.join(xml_apps_list)))
|
||||
sys.exit(1)
|
5
check_nextcloud/check_nextcloud.cfg
Normal file
5
check_nextcloud/check_nextcloud.cfg
Normal file
|
@ -0,0 +1,5 @@
|
|||
# 'check_nextcloud' command definition
|
||||
define command{
|
||||
command_name check_nextcloud
|
||||
command_line /usr/lib/monitoring-plugins/check_nextcloud -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
6
check_nextcloud/control
Normal file
6
check_nextcloud/control
Normal file
|
@ -0,0 +1,6 @@
|
|||
Uploaders: Jan Wagner <waja@cyconet.org>
|
||||
Recommends: python3-minimal
|
||||
Version: 2.0
|
||||
Homepage: https://github.com/BornToBeRoot/check_nextcloud
|
||||
Watch: https://raw.githubusercontent.com/BornToBeRoot/check_nextcloud/master/check/check_nextcloud.py # ~~ Version ([0-9.]+) ~~
|
||||
Description: Plugin script to monitor your nextcloud serverinfo API
|
13
check_nextcloud/copyright
Normal file
13
check_nextcloud/copyright
Normal file
|
@ -0,0 +1,13 @@
|
|||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
3
check_nginx_status/Makefile
Normal file
3
check_nginx_status/Makefile
Normal file
|
@ -0,0 +1,3 @@
|
|||
#/usr/bin/make -f
|
||||
|
||||
include ../common.mk
|
471
check_nginx_status/check_nginx_status
Normal file
471
check_nginx_status/check_nginx_status
Normal file
|
@ -0,0 +1,471 @@
|
|||
#!/usr/bin/env perl -w
|
||||
# check_nginx_status.pl
|
||||
# Author : regis.leroy at makina-corpus.com
|
||||
# Licence : GPL - http://www.fsf.org/licenses/gpl.txt
|
||||
#
|
||||
# help : ./check_nginx_status.pl -h
|
||||
#
|
||||
# issues & updates: http://github.com/regilero/check_nginx_status
|
||||
use strict;
|
||||
use Getopt::Long;
|
||||
use LWP::UserAgent;
|
||||
use Time::HiRes qw(gettimeofday tv_interval);
|
||||
use Digest::MD5 qw(md5 md5_hex);
|
||||
use FindBin;
|
||||
|
||||
|
||||
# Nagios specific
|
||||
use lib $FindBin::Bin;
|
||||
use utils qw($TIMEOUT);
|
||||
|
||||
# Globals
|
||||
my $Version='0.20';
|
||||
my $Name=$0;
|
||||
|
||||
my $o_host = undef; # hostname
|
||||
my $o_help= undef; # want some help ?
|
||||
my $o_port= undef; # port
|
||||
my $o_url = undef; # url to use, if not the default
|
||||
my $o_user= undef; # user for auth
|
||||
my $o_pass= ''; # password for auth
|
||||
my $o_realm= ''; # password for auth
|
||||
my $o_version= undef; # print version
|
||||
my $o_warn_a_level= -1; # Number of active connections that will cause a warning
|
||||
my $o_crit_a_level= -1; # Number of active connections that will cause an error
|
||||
my $o_warn_rps_level= -1; # Number of Request per second that will cause a warning
|
||||
my $o_crit_rps_level= -1; # Number of request Per second that will cause an error
|
||||
my $o_warn_cps_level= -1; # Number of Connections per second that will cause a warning
|
||||
my $o_crit_cps_level= -1; # Number of Connections per second that will cause an error
|
||||
my $o_timeout= 15; # Default 15s Timeout
|
||||
my $o_warn_thresold= undef; # warning thresolds entry
|
||||
my $o_crit_thresold= undef; # critical thresolds entry
|
||||
my $o_debug= undef; # debug mode
|
||||
my $o_servername= undef; # ServerName (host header in http request)
|
||||
my $o_https= undef; # SSL (HTTPS) mode
|
||||
my $o_disable_sslverifyhostname = 0;
|
||||
|
||||
my $TempPath = '/tmp/'; # temp path
|
||||
my $MaxTimeDif = 60*30; # Maximum uptime difference (seconds), default 30 minutes
|
||||
|
||||
my $nginx = 'NGINX'; # Could be used to store version also
|
||||
|
||||
# functions
|
||||
sub show_versioninfo { print "$Name version : $Version\n"; }
|
||||
|
||||
sub print_usage {
|
||||
print "Usage: $Name -H <host ip> [-p <port>] [-s servername] [-t <timeout>] [-w <WARN_THRESOLD> -c <CRIT_THRESOLD>] [-V] [-d] [-u <url>] [-U user -P pass -r realm]\n";
|
||||
}
|
||||
sub nagios_exit {
|
||||
my ( $nickname, $status, $message, $perfdata , $silent) = @_;
|
||||
my %STATUSCODE = (
|
||||
'OK' => 0
|
||||
, 'WARNING' => 1
|
||||
, 'CRITICAL' => 2
|
||||
, 'UNKNOWN' => 3
|
||||
, 'PENDING' => 4
|
||||
);
|
||||
if(!defined($silent)) {
|
||||
my $output = undef;
|
||||
$output .= sprintf('%1$s %2$s - %3$s', $nickname, $status, $message);
|
||||
if ($perfdata) {
|
||||
$output .= sprintf('|%1$s', $perfdata);
|
||||
}
|
||||
$output .= chr(10);
|
||||
print $output;
|
||||
}
|
||||
exit $STATUSCODE{$status};
|
||||
}
|
||||
|
||||
# Get the alarm signal
|
||||
$SIG{'ALRM'} = sub {
|
||||
nagios_exit($nginx,"CRITICAL","ERROR: Alarm signal (Nagios timeout)");
|
||||
};
|
||||
|
||||
sub help {
|
||||
print "Nginx Monitor for Nagios version ",$Version,"\n";
|
||||
print "GPL licence, (c)2012 Leroy Regis\n\n";
|
||||
print_usage();
|
||||
print <<EOT;
|
||||
-h, --help
|
||||
print this help message
|
||||
-H, --hostname=HOST
|
||||
name or IP address of host to check
|
||||
-p, --port=PORT
|
||||
Http port
|
||||
-u, --url=URL
|
||||
Specific URL to use, instead of the default "http://<hostname or IP>/nginx_status"
|
||||
-s, --servername=SERVERNAME
|
||||
ServerName, (host header of HTTP request) use it if you specified an IP in -H to match the good Virtualhost in your target
|
||||
-S, --ssl
|
||||
Wether we should use HTTPS instead of HTTP
|
||||
--disable-sslverifyhostname
|
||||
Disable SSL hostname verification
|
||||
-U, --user=user
|
||||
Username for basic auth
|
||||
-P, --pass=PASS
|
||||
Password for basic auth
|
||||
-r, --realm=REALM
|
||||
Realm for basic auth
|
||||
-d, --debug
|
||||
Debug mode (show http request response)
|
||||
-m, --maxreach=MAX
|
||||
Number of max processes reached (since last check) that should trigger an alert
|
||||
-t, --timeout=INTEGER
|
||||
timeout in seconds (Default: $o_timeout)
|
||||
-w, --warn=ACTIVE_CONN,REQ_PER_SEC,CONN_PER_SEC
|
||||
number of active connections, ReqPerSec or ConnPerSec that will cause a WARNING
|
||||
-1 for no warning
|
||||
-c, --critical=ACTIVE_CONN,REQ_PER_SEC,CONN_PER_SEC
|
||||
number of active connections, ReqPerSec or ConnPerSec that will cause a CRITICAL
|
||||
-1 for no CRITICAL
|
||||
-V, --version
|
||||
prints version number
|
||||
|
||||
Note :
|
||||
3 items can be managed on this check, this is why -w and -c parameters are using 3 values thresolds
|
||||
- ACTIVE_CONN: Number of all opened connections, including connections to backends
|
||||
- REQ_PER_SEC: Average number of request per second between this check and the previous one
|
||||
- CONN_PER_SEC: Average number of connections per second between this check and the previous one
|
||||
|
||||
Examples:
|
||||
|
||||
This one will generate WARNING and CRITICIAL alerts if you reach 10 000 or 20 000 active connection; or
|
||||
100 or 200 request per second; or 200 or 300 connections per second
|
||||
check_nginx_status.pl -H 10.0.0.10 -u /foo/nginx_status -s mydomain.example.com -t 8 -w 10000,100,200 -c 20000,200,300
|
||||
|
||||
this will generate WARNING and CRITICAL alerts only on the number of active connections (with low numbers for nginx)
|
||||
check_nginx_status.pl -H 10.0.0.10 -s mydomain.example.com -t 8 -w 10,-1,-1 -c 20,-1,-1
|
||||
|
||||
theses two equivalents will not generate any alert (if the nginx_status page is reachable) but could be used for graphics
|
||||
check_nginx_status.pl -H 10.0.0.10 -s mydomain.example.com -w -1,-1,-1 -c -1,-1,-1
|
||||
check_nginx_status.pl -H 10.0.0.10 -s mydomain.example.com
|
||||
|
||||
EOT
|
||||
}
|
||||
|
||||
sub check_options {
|
||||
Getopt::Long::Configure ("bundling");
|
||||
GetOptions(
|
||||
'h' => \$o_help, 'help' => \$o_help,
|
||||
'd' => \$o_debug, 'debug' => \$o_debug,
|
||||
'H:s' => \$o_host, 'hostname:s' => \$o_host,
|
||||
's:s' => \$o_servername, 'servername:s' => \$o_servername,
|
||||
'S:s' => \$o_https, 'ssl:s' => \$o_https,
|
||||
'u:s' => \$o_url, 'url:s' => \$o_url,
|
||||
'U:s' => \$o_user, 'user:s' => \$o_user,
|
||||
'P:s' => \$o_pass, 'pass:s' => \$o_pass,
|
||||
'r:s' => \$o_realm, 'realm:s' => \$o_realm,
|
||||
'p:i' => \$o_port, 'port:i' => \$o_port,
|
||||
'V' => \$o_version, 'version' => \$o_version,
|
||||
'w:s' => \$o_warn_thresold,'warn:s' => \$o_warn_thresold,
|
||||
'c:s' => \$o_crit_thresold,'critical:s' => \$o_crit_thresold,
|
||||
't:i' => \$o_timeout, 'timeout:i' => \$o_timeout,
|
||||
'disable-sslverifyhostname' => \$o_disable_sslverifyhostname,
|
||||
);
|
||||
|
||||
if (defined ($o_help)) {
|
||||
help();
|
||||
nagios_exit($nginx,"UNKNOWN","leaving","",1);
|
||||
}
|
||||
if (defined($o_version)) {
|
||||
show_versioninfo();
|
||||
nagios_exit($nginx,"UNKNOWN","leaving","",1);
|
||||
};
|
||||
|
||||
if (defined($o_warn_thresold)) {
|
||||
($o_warn_a_level,$o_warn_rps_level,$o_warn_cps_level) = split(',', $o_warn_thresold);
|
||||
}
|
||||
if (defined($o_crit_thresold)) {
|
||||
($o_crit_a_level,$o_crit_rps_level,$o_crit_cps_level) = split(',', $o_crit_thresold);
|
||||
}
|
||||
if (defined($o_debug)) {
|
||||
print("\nDebug thresolds: \nWarning: ($o_warn_thresold) => Active: $o_warn_a_level ReqPerSec :$o_warn_rps_level ConnPerSec: $o_warn_cps_level");
|
||||
print("\nCritical ($o_crit_thresold) => : Active: $o_crit_a_level ReqPerSec: $o_crit_rps_level ConnPerSec : $o_crit_cps_level\n");
|
||||
}
|
||||
if ((defined($o_warn_a_level) && defined($o_crit_a_level)) &&
|
||||
(($o_warn_a_level != -1) && ($o_crit_a_level != -1) && ($o_warn_a_level >= $o_crit_a_level)) ) {
|
||||
nagios_exit($nginx,"UNKNOWN","Check warning and critical values for Active Process (1st part of thresold), warning level must be < crit level!");
|
||||
}
|
||||
if ((defined($o_warn_rps_level) && defined($o_crit_rps_level)) &&
|
||||
(($o_warn_rps_level != -1) && ($o_crit_rps_level != -1) && ($o_warn_rps_level >= $o_crit_rps_level)) ) {
|
||||
nagios_exit($nginx,"UNKNOWN","Check warning and critical values for ReqPerSec (2nd part of thresold), warning level must be < crit level!");
|
||||
}
|
||||
if ((defined($o_warn_cps_level) && defined($o_crit_cps_level)) &&
|
||||
(($o_warn_cps_level != -1) && ($o_crit_cps_level != -1) && ($o_warn_cps_level >= $o_crit_cps_level)) ) {
|
||||
nagios_exit($nginx,"UNKNOWN","Check warning and critical values for ConnPerSec (3rd part of thresold), warning level must be < crit level!");
|
||||
}
|
||||
# Check compulsory attributes
|
||||
if (!defined($o_host)) {
|
||||
print_usage();
|
||||
nagios_exit($nginx,"UNKNOWN","-H host argument required");
|
||||
}
|
||||
}
|
||||
|
||||
########## MAIN ##########
|
||||
|
||||
check_options();
|
||||
|
||||
my $override_ip = $o_host;
|
||||
my $ua = LWP::UserAgent->new(
|
||||
protocols_allowed => ['http', 'https'],
|
||||
timeout => $o_timeout
|
||||
);
|
||||
|
||||
if ( $o_disable_sslverifyhostname ) {
|
||||
$ua->ssl_opts( 'verify_hostname' => 0 );
|
||||
}
|
||||
|
||||
# we need to enforce the HTTP request is made on the Nagios Host IP and
|
||||
# not on the DNS related IP for that domain
|
||||
@LWP::Protocol::http::EXTRA_SOCK_OPTS = ( PeerAddr => $override_ip );
|
||||
# this prevent used only once warning in -w mode
|
||||
my $ua_settings = @LWP::Protocol::http::EXTRA_SOCK_OPTS;
|
||||
|
||||
my $timing0 = [gettimeofday];
|
||||
my $response = undef;
|
||||
my $url = undef;
|
||||
|
||||
if (!defined($o_url)) {
|
||||
$o_url='/nginx_status';
|
||||
} else {
|
||||
# ensure we have a '/' as first char
|
||||
$o_url = '/'.$o_url unless $o_url =~ m(^/)
|
||||
}
|
||||
my $proto='http://';
|
||||
if(defined($o_https)) {
|
||||
$proto='https://';
|
||||
if (defined($o_port) && $o_port!=443) {
|
||||
if (defined ($o_debug)) {
|
||||
print "\nDEBUG: Notice: port is defined at $o_port and not 443, check you really want that in SSL mode! \n";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (defined($o_servername)) {
|
||||
if (!defined($o_port)) {
|
||||
$url = $proto . $o_servername . $o_url;
|
||||
} else {
|
||||
$url = $proto . $o_servername . ':' . $o_port . $o_url;
|
||||
}
|
||||
} else {
|
||||
if (!defined($o_port)) {
|
||||
$url = $proto . $o_host . $o_url;
|
||||
} else {
|
||||
$url = $proto . $o_host . ':' . $o_port . $o_url;
|
||||
}
|
||||
}
|
||||
if (defined ($o_debug)) {
|
||||
print "\nDEBUG: HTTP url: \n";
|
||||
print $url;
|
||||
}
|
||||
|
||||
my $req = HTTP::Request->new( GET => $url );
|
||||
|
||||
if (defined($o_servername)) {
|
||||
$req->header('Host' => $o_servername);
|
||||
}
|
||||
if (defined($o_user)) {
|
||||
$req->authorization_basic($o_user, $o_pass);
|
||||
}
|
||||
|
||||
if (defined ($o_debug)) {
|
||||
print "\nDEBUG: HTTP request: \n";
|
||||
print "IP used (better if it's an IP):" . $override_ip . "\n";
|
||||
print $req->as_string;
|
||||
}
|
||||
$response = $ua->request($req);
|
||||
my $timeelapsed = tv_interval ($timing0, [gettimeofday]);
|
||||
|
||||
my $InfoData = '';
|
||||
my $PerfData = '';
|
||||
#my @Time = (localtime); # list context and not scalar as we want the brutal timestamp
|
||||
my $Time = time;
|
||||
|
||||
my $webcontent = undef;
|
||||
if ($response->is_success) {
|
||||
$webcontent=$response->decoded_content;
|
||||
if (defined ($o_debug)) {
|
||||
print "\nDEBUG: HTTP response:";
|
||||
print $response->status_line;
|
||||
print "\n".$response->header('Content-Type');
|
||||
print "\n";
|
||||
print $webcontent;
|
||||
}
|
||||
if ($response->header('Content-Type') =~ m/text\/html/) {
|
||||
nagios_exit($nginx,"CRITICAL", "We have a response page for our request, but it's an HTML page, quite certainly not the status report of nginx");
|
||||
}
|
||||
# example of response content expected:
|
||||
#Active connections: 10
|
||||
#server accepts handled requests
|
||||
#38500 38500 50690
|
||||
#Reading: 5 Writing: 5 Waiting: 0
|
||||
|
||||
# number of all open connections including connections to backends
|
||||
my $ActiveConn = 0;
|
||||
if($webcontent =~ m/Active connections: (.*?)\n/) {
|
||||
$ActiveConn = $1;
|
||||
# triming
|
||||
$ActiveConn =~ s/^\s+|\s+$//g;
|
||||
}
|
||||
|
||||
|
||||
# 3 counters with a space: accepted conn, handled conn and number of requests
|
||||
my $counters = '';
|
||||
my $AcceptedConn = 0;
|
||||
my $HandledConn = 0;
|
||||
my $NbRequests = 0;
|
||||
if($webcontent =~ m/\nserver accepts handled requests\n(.*?)\n/) {
|
||||
$counters = $1;
|
||||
# triming
|
||||
$counters =~ s/^\s+|\s+$//g;
|
||||
#splitting
|
||||
($AcceptedConn,$HandledConn,$NbRequests) = split(' ', $counters);
|
||||
# triming
|
||||
$AcceptedConn =~ s/^\s+|\s+$//g;
|
||||
$HandledConn =~ s/^\s+|\s+$//g;
|
||||
$NbRequests =~ s/^\s+|\s+$//g;
|
||||
}
|
||||
|
||||
# nginx reads request header
|
||||
my $Reading = 0;
|
||||
# nginx reads request body, processes request, or writes response to a client
|
||||
my $Writing = 0;
|
||||
# keep-alive connections, actually it is active - (reading + writing)
|
||||
my $Waiting = 0;
|
||||
if($webcontent =~ m/Reading: (.*?)Writing: (.*?)Waiting: (.*?)$/) {
|
||||
$Reading = $1;
|
||||
$Writing = $2;
|
||||
$Waiting = $3;
|
||||
# triming
|
||||
$Reading =~ s/^\s+|\s+$//g;
|
||||
$Writing =~ s/^\s+|\s+$//g;
|
||||
$Waiting =~ s/^\s+|\s+$//g;
|
||||
}
|
||||
|
||||
# Debug
|
||||
if (defined ($o_debug)) {
|
||||
print ("\nDEBUG Parse results => Active :" . $ActiveConn . "\nAcceptedConn :" . $AcceptedConn . "\nHandledConn :" . $HandledConn . "\nNbRequests :".$NbRequests . "\nReading :" .$Reading . "\nWriting :" . $Writing . "\nWaiting :" . $Waiting . "\n");
|
||||
}
|
||||
|
||||
my $TempFile = $TempPath.$o_host.'_check_nginx_status'.md5_hex($url);
|
||||
my $FH;
|
||||
|
||||
my $LastTime = 0;
|
||||
my $LastAcceptedConn = 0;
|
||||
my $LastHandledConn = 0;
|
||||
my $LastNbRequests = 0;
|
||||
if ((-e $TempFile) && (-r $TempFile) && (-w $TempFile)) {
|
||||
open ($FH, '<',$TempFile) or nagios_exit($nginx,"UNKNOWN","unable to read temporary data from :".$TempFile);
|
||||
$LastTime = <$FH>;
|
||||
$LastAcceptedConn = <$FH>;
|
||||
$LastHandledConn = <$FH>;
|
||||
$LastNbRequests = <$FH>;
|
||||
close ($FH);
|
||||
if (defined ($o_debug)) {
|
||||
print ("\nDebug: data from temporary file: $TempFile\n");
|
||||
print (" LastTime: $LastTime LastAcceptedConn: $LastAcceptedConn LastHandledConn: $LastHandledConn LastNbRequests: $LastNbRequests \n");
|
||||
}
|
||||
}
|
||||
|
||||
open ($FH, '>'.$TempFile) or nagios_exit($nginx,"UNKNOWN","unable to write temporary data in :".$TempFile);
|
||||
#print $FH (@Time),"\n";
|
||||
print $FH "$Time\n";
|
||||
print $FH "$AcceptedConn\n";
|
||||
print $FH "$HandledConn\n";
|
||||
print $FH "$NbRequests\n";
|
||||
close ($FH);
|
||||
|
||||
my $ConnPerSec = 0;
|
||||
my $ReqPerSec = 0;
|
||||
my $RequestsNew = 0;
|
||||
# by default the average
|
||||
my $ReqPerConn = 0;
|
||||
if ($AcceptedConn > 0) {
|
||||
$ReqPerConn = $NbRequests/$AcceptedConn;
|
||||
}
|
||||
my $elapsed = $Time - $LastTime ;
|
||||
if (defined ($o_debug)) {
|
||||
print ("\nDebug: pre-computation\n");
|
||||
print ("Average ReqPerconn: $ReqPerConn, Seconds elapsed Since last check: $elapsed\n");
|
||||
}
|
||||
# check only if the counters may have been incremented
|
||||
# but not if it may have been too much incremented
|
||||
# if nginx was restarted ($NbRequests is now lower than previous value), just skip
|
||||
if ( ($elapsed < $MaxTimeDif) && ($elapsed != 0) && ($NbRequests >= $LastNbRequests) ) {
|
||||
$ConnPerSec = ($AcceptedConn-$LastAcceptedConn)/$elapsed;
|
||||
$RequestsNew = $NbRequests-$LastNbRequests;
|
||||
$ReqPerSec = $RequestsNew/$elapsed;
|
||||
# get finer value
|
||||
if ( $ConnPerSec!=0 ) {
|
||||
my $ReqPerConn = $ReqPerSec/$ConnPerSec;
|
||||
} else {
|
||||
my $ReqPerConn = 0;
|
||||
}
|
||||
}
|
||||
if (defined ($o_debug)) {
|
||||
print ("\nDebug: data computed\n");
|
||||
print ("ConnPerSec: $ConnPerSec ReqPerSec: $ReqPerSec ReqPerConn: $ReqPerConn\n");
|
||||
}
|
||||
$InfoData = sprintf (" %.3f sec. response time, Active: %d (Writing: %d Reading: %d Waiting: %d)"
|
||||
. " ReqPerSec: %.3f ConnPerSec: %.3f ReqPerConn: %.3f"
|
||||
,$timeelapsed,$ActiveConn,$Writing,$Reading,$Waiting,$ReqPerSec,$ConnPerSec,$ReqPerConn);
|
||||
|
||||
# Manage warn and crit values for the perfdata
|
||||
my $p_warn_a_level = "$o_warn_a_level";
|
||||
my $p_crit_a_level = "$o_crit_a_level";
|
||||
my $p_warn_rps_level = "$o_warn_rps_level";
|
||||
my $p_crit_rps_level = "$o_crit_rps_level";
|
||||
my $p_warn_cps_level = "$o_warn_cps_level";
|
||||
my $p_crit_cps_level = "$o_crit_cps_level";
|
||||
|
||||
if ($p_warn_a_level == "-1") {
|
||||
$p_warn_a_level = "";
|
||||
}
|
||||
if ($p_crit_a_level == "-1") {
|
||||
$p_crit_a_level = "";
|
||||
}
|
||||
if ($p_warn_rps_level == "-1") {
|
||||
$p_warn_rps_level = "";
|
||||
}
|
||||
if ($p_crit_rps_level == "-1") {
|
||||
$p_crit_rps_level = "";
|
||||
}
|
||||
if ($p_warn_cps_level == "-1") {
|
||||
$p_warn_cps_level = "";
|
||||
}
|
||||
if ($p_crit_cps_level == "-1") {
|
||||
$p_crit_cps_level = "";
|
||||
}
|
||||
|
||||
$PerfData = sprintf ("Writing=%d;;;; Reading=%d;;;; Waiting=%d;;;; Active=%d;%s;%s;; "
|
||||
. "ReqPerSec=%f;%s;%s;; ConnPerSec=%f;%s;%s;; ReqPerConn=%f;;;;"
|
||||
,($Writing),($Reading),($Waiting),($ActiveConn)
|
||||
,($p_warn_a_level),($p_crit_a_level)
|
||||
,($ReqPerSec),($p_warn_rps_level),($p_crit_rps_level)
|
||||
,($ConnPerSec),($p_warn_cps_level),($p_crit_cps_level)
|
||||
,($ReqPerConn));
|
||||
# first all critical exists by priority
|
||||
if (defined($o_crit_a_level) && (-1!=$o_crit_a_level) && ($ActiveConn >= $o_crit_a_level)) {
|
||||
nagios_exit($nginx,"CRITICAL", "Active Connections are critically high " . $InfoData,$PerfData);
|
||||
}
|
||||
if (defined($o_crit_rps_level) && (-1!=$o_crit_rps_level) && ($ReqPerSec >= $o_crit_rps_level)) {
|
||||
nagios_exit($nginx,"CRITICAL", "Request per second ratios is critically high " . $InfoData,$PerfData);
|
||||
}
|
||||
if (defined($o_crit_cps_level) && (-1!=$o_crit_cps_level) && ($ConnPerSec >= $o_crit_cps_level)) {
|
||||
nagios_exit($nginx,"CRITICAL", "Connection per second ratio is critically high " . $InfoData,$PerfData);
|
||||
}
|
||||
# Then WARNING exits by priority
|
||||
if (defined($o_warn_a_level) && (-1!=$o_warn_a_level) && ($ActiveConn >= $o_warn_a_level)) {
|
||||
nagios_exit($nginx,"WARNING", "Active Connections are high " . $InfoData,$PerfData);
|
||||
}
|
||||
if (defined($o_warn_rps_level) && (-1!=$o_warn_rps_level) && ($ReqPerSec >= $o_warn_rps_level)) {
|
||||
nagios_exit($nginx,"WARNING", "Requests per second ratio is high " . $InfoData,$PerfData);
|
||||
}
|
||||
if (defined($o_warn_cps_level) && (-1!=$o_warn_cps_level) && ($ConnPerSec >= $o_warn_cps_level)) {
|
||||
nagios_exit($nginx,"WARNING", "Connection per second ratio is high " . $InfoData,$PerfData);
|
||||
}
|
||||
|
||||
nagios_exit($nginx,"OK",$InfoData,$PerfData);
|
||||
|
||||
} else {
|
||||
nagios_exit($nginx,"CRITICAL", $response->status_line);
|
||||
}
|
5
check_nginx_status/check_nginx_status.cfg
Normal file
5
check_nginx_status/check_nginx_status.cfg
Normal file
|
@ -0,0 +1,5 @@
|
|||
# 'check_nginx_status' command definition
|
||||
define command{
|
||||
command_name check_nginx_status
|
||||
command_line /usr/lib/monitoring-plugins/check_nginx_status -H $HOSTADDRESS$ $ARG1$
|
||||
}
|
8
check_nginx_status/control
Normal file
8
check_nginx_status/control
Normal file
|
@ -0,0 +1,8 @@
|
|||
Homepage: https://raw.github.com/regilero/check_nginx_status/master/check_nginx_status.pl
|
||||
Watch: https://raw.github.com/regilero/check_nginx_status/master/check_nginx_status.pl \$Version\=\'([0-9.]+)'
|
||||
Recommends: libwww-perl, monitoring-plugins-common | nagios-plugins-common
|
||||
Version: 0.20
|
||||
Uploaders: Jan Wagner <waja@cyconet.org>
|
||||
Description: plugin checking the nginx_status page report from nginx
|
||||
Tracking Active connections processes, request per second, connections per
|
||||
seconds, Connections status.
|
7
check_nginx_status/copyright
Normal file
7
check_nginx_status/copyright
Normal file
|
@ -0,0 +1,7 @@
|
|||
Copyright (c) regis.leroy at makina-corpus.com
|
||||
|
||||
License: GPL v3
|
||||
|
||||
On Debian systems, the complete text of the GNU General
|
||||
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".
|
||||
|
16
check_nwc_health/Makefile
Normal file
16
check_nwc_health/Makefile
Normal file
|
@ -0,0 +1,16 @@
|
|||
PLUGIN := check_nwc_health
|
||||
CLEANFILES := check_nwc_health
|
||||
|
||||
include ../common.mk
|
||||
|
||||
check_nwc_health:
|
||||
set -e; for i in guess sub; do if [ ! -e src/config.$$i.bak ]; then cp src/config.$$i src/config.$$i.bak; fi; done
|
||||
cp /usr/share/misc/config.* src
|
||||
cd src && ./configure --disable-maintainer-mode --prefix=/usr --with-nagios-user=nagios --with-nagios-group=nagios
|
||||
make -C src
|
||||
sed 's,^# nagios: +epn,# nagios: -epn\n,' src/plugins-scripts/check_nwc_health > $@
|
||||
#cp src/plugins-scripts/check_nwc_health $@
|
||||
|
||||
clean::
|
||||
[ ! -f src/Makefile ] || make -C src distclean
|
||||
set -e; for i in guess sub; do if [ -e src/config.$$i.bak ]; then mv src/config.$$i.bak src/config.$$i; fi; done
|
1
check_nwc_health/check_nwc_health-10.3/AUTHORS
Normal file
1
check_nwc_health/check_nwc_health-10.3/AUTHORS
Normal file
|
@ -0,0 +1 @@
|
|||
Gerhard Lausser <gerhard.lausser@consol.de>
|
340
check_nwc_health/check_nwc_health-10.3/COPYING
Normal file
340
check_nwc_health/check_nwc_health-10.3/COPYING
Normal file
|
@ -0,0 +1,340 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 19yy <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) 19yy name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
852
check_nwc_health/check_nwc_health-10.3/ChangeLog
Normal file
852
check_nwc_health/check_nwc_health-10.3/ChangeLog
Normal file
|
@ -0,0 +1,852 @@
|
|||
* 2022-07-29 10.3
|
||||
add mode check-rtt (cisco-rttmon-mib slas)
|
||||
* 2022-07-21 10.2.1
|
||||
increase cpu thresholds for linux, separate user/system/etc from iowait
|
||||
* 2022-07-20 10.2
|
||||
update glplugin, better get_table fallback handling
|
||||
* 2022-05-05 10.1.0.3
|
||||
fix a pull-request. Und das war damit auch der letzte Pull-Request, den ich in meinem Leben angenommen habe.
|
||||
* 2022-05-04 10.1.0.2
|
||||
use JSON::XS in Interface.pm to avoid misleading UNKNOWN error message
|
||||
* 2022-02-23 10.1.0.1
|
||||
suppress unknown arista sensors which are not marked as faulty
|
||||
* 2022-02-18 10.1
|
||||
check filesystems in Arista (full Log/Core stops syslog and accounting)
|
||||
accept disabled sensors
|
||||
* 2022-01-13 10.0.0.3
|
||||
bugfix in arista power supply
|
||||
* 2022-01-07 10.0.0.2
|
||||
bugfix in f5 ltm detail output
|
||||
* 2021-11-22 10.0.0.1
|
||||
tweak barracuda hardware-health snmp parameters
|
||||
* 2021-11-16 10.0
|
||||
use json for temporary files
|
||||
* 2021-10-13 9.1
|
||||
add Pulse Secure
|
||||
* 2021-10-08 9.0.1.2
|
||||
update git with latest cisco license gedoens
|
||||
* 2021-09-21 9.0.1.1
|
||||
remove broken line from Makefile.am
|
||||
* 2021-09-08 9.0.1
|
||||
improve cisco license checks
|
||||
* 2021-09-01 9.0
|
||||
add Versa Appliance, add HP Aruba
|
||||
* 2021-08-24 8.5.0.1
|
||||
tweak barracuda snmp params for interface/route checks
|
||||
* 2021-07-27 8.5
|
||||
improve Barracuda cluster-check
|
||||
* 2021-06-30 8.4
|
||||
add bgp for huawei
|
||||
* 2021-06-16 8.3.3.3
|
||||
bugfix in UCD-MIB memory
|
||||
* 2021-05-31 8.3.3.2
|
||||
bugfix in IOS cpu-load for very old models without CISCO-PROCESS-MIB
|
||||
* 2021-05-31 8.3.3.1
|
||||
bugfix in f5 memory-usage, correct negative values
|
||||
* 2021-05-20 8.3.3
|
||||
Add vpn sessions for Fortigate PR #279
|
||||
* 2021-05-18 8.3.2.4
|
||||
optimize etherlike and rmon walks
|
||||
* 2021-05-12 8.3.2.3
|
||||
save bgp peer local addresses and show them in the error case
|
||||
* 2021-04-29 8.3.2.2
|
||||
Blacklist storage device "junosprocfs" on JunOS (Juniper) devices PR #278
|
||||
* 2021-04-15 8.3.2.1
|
||||
bugfix in f5 cpu-load, correct negative values
|
||||
* 2021-03-23 8.3.2
|
||||
query LM-SENSORS-MIB only if it exists on Linux (it may hang even if not existing)
|
||||
* 2021-03-19 8.3.1.2
|
||||
bugfix in CISCO-ENTITY-SENSOR-MIB. Scale values correctly.
|
||||
* 2021-03-02 8.3.1.1
|
||||
bugfix in interface-stack-status (triggered when --name did not match)
|
||||
* 2021-02-12 8.3.1
|
||||
add mode license-status for cisco
|
||||
* 2021-02-08 8.3
|
||||
split Bluecat in AddressManager and DnsDhcpServer
|
||||
* 2021-01-28 8.2.0.2
|
||||
do not use cpmCPUMemoryHCCommitted, except if you want mem usage > 100%
|
||||
* 2021-01-27 8.2.0.1
|
||||
check the memory of all members in a cisco stack only if there are > 1 members
|
||||
* 2021-01-22 8.2
|
||||
check the memory of all members in a cisco stack
|
||||
* 2021-01-18 8.1.0.1
|
||||
bugfix in Bluecat jvm
|
||||
* 2021-01-18 8.1
|
||||
add Bluecat Address Manager
|
||||
* 2021-01-13 8.0.0.2
|
||||
bugfix in HOST-RESOURCE-MIB memory (Arista triggered)
|
||||
bugfix in CISCO-ENVMON-MIB, temperatures > 200
|
||||
* 2021-01-13 8.0.0.1
|
||||
bugfix in arista bgp, mitigate admin down
|
||||
* 2020-10-22 8.0
|
||||
broadcast traffic is now shown as percentage of the overall traffic (...broadcast_in) and percentage of the available bandwitdth (..._broadcast_usage_in).
|
||||
errors and discards are now calculated as percentage of all received/sent packets.
|
||||
TenGig-VRF-MPLS-Dingsbums without errors and discard metrics are no longer treated as StackSubs.
|
||||
* 2020-10-12 7.13
|
||||
add Vormetric Appliance
|
||||
* 2020-09-18 7.12.2
|
||||
add some exceptions to hrDeviceDiskStorage and hrDeviceNetwork
|
||||
* 2020-09-08 7.12.1.3
|
||||
fix a bug in mode count-routes, update glplugin
|
||||
* 2020-07-13 7.12.1.2
|
||||
improve output for connect-vips
|
||||
* 2020-07-13 7.12.1.1
|
||||
bugfix in UCD-MIB swap
|
||||
* 2020-07-10 7.12.1
|
||||
try to fallback to ucd if neither sysUptime nor sysDescr exist
|
||||
* 2020-06-04 7.12
|
||||
add mode watch-vips and connect-vips for F5
|
||||
* 2020-06-02 7.11.1
|
||||
check the number of nodes in a Fortigate cluster
|
||||
* 2020-05-21 7.11
|
||||
add bgp4 modes for arista, use 2nd context for cisco bgp4
|
||||
* 2020-05-19 7.10.4.1
|
||||
fix a typo
|
||||
* 2020-05-05 7.10.4
|
||||
check increase of sessions for Cisco
|
||||
(detect freeze with --mode vpn-sessions --criticalx sessions_per_sec=0.001:)
|
||||
add AVM 7580
|
||||
* 2020-03-20 7.10.3
|
||||
add mode vpn-sessions (IOS and ASA)
|
||||
* 2020-03-16 7.10.2.1
|
||||
blacklist nfs-mounts in hrDeviceDiskStorage
|
||||
* 2020-03-10 7.10.2
|
||||
fix HP Aruba checks, add nore from ENTITY-SENSOR-MIB
|
||||
* 2020-02-20 7.10.1.9
|
||||
fix a bug in interface-etherstats for OLD-CISCO-INTERFACES-MIB
|
||||
* 2020-01-21 7.10.1.8
|
||||
fix a bug in Cisco memory, for Cisco emulation mode of Bel VPN Gate
|
||||
* 2020-01-18 7.10.1.7
|
||||
issue #229 fix redundant argument in sprintf
|
||||
issue #228 fix operstatus in linuxlocal
|
||||
* 2020-01-16 7.10.1.6
|
||||
fix a bug in verbose mode if --nosensors is used
|
||||
* 2019-12-06 7.10.1.5
|
||||
update GLPlugin, reduce default maxrepetitions to 20
|
||||
* 2019-12-05 7.10.1.4
|
||||
reduce maxrepetitions for f5 sysCpuTable and ifTables
|
||||
* 2019-12-04 7.10.1.3
|
||||
add --nosensors which skips endless entSensor[Threshold]Table for Nexuses
|
||||
* 2019-11-25 7.10.1.2
|
||||
fix a division by 0 for cisco reserved memory
|
||||
* 2019-10-07 7.10.1.1
|
||||
fix a bug in cisco wlan accesspoint-modes (InetAddrType)
|
||||
* 2019-10-04 7.10.1
|
||||
add session-usage for palo alto
|
||||
* 2019-08-30 7.10.0.7
|
||||
update glplugin, more nexus hardware-health improvements
|
||||
* 2019-08-29 7.10.0.6
|
||||
reduce runtime for nexus hardware-health
|
||||
* 2019-08-20 7.10.0.5
|
||||
fix EIGRP filtering
|
||||
* 2019-07-29 7.10.0.4.1
|
||||
fix a bug in fortigate ha-role
|
||||
* 2019-07-22 7.10.0.4
|
||||
fix a bug in interface-uptime
|
||||
* 2019-07-19 7.10.0.3
|
||||
fix a bug in interface-uptime
|
||||
* 2019-07-07 7.10.0.2
|
||||
fix a bug in mode ha-role for Fortigate
|
||||
* 2019-06-25 7.10.0.1
|
||||
fix a bug in bgp/route modes for the non-standalone version (InetAddressMaker)
|
||||
* 2019-06-21 7.10
|
||||
remove duplicate routes (ip-table + inet-table)
|
||||
--report long+address shows ip addresses for interfaces
|
||||
* 2019-06-14 7.9.0.4
|
||||
finish barracuda ha-role mode
|
||||
* 2019-06-14 7.9.0.3
|
||||
detect f5 firmware versions 14+
|
||||
* 2019-06-12 7.9.0.2
|
||||
fix routes. inetCidrRouteTable does not really replace ipCidrRouteTable
|
||||
* 2019-06-12 7.9.0.1
|
||||
fallback to BGP4-MIB if CISCO-BGP4-MIB is incomplete
|
||||
* 2019-06-11 7.9
|
||||
add EIGRP
|
||||
fix ASA user/connection/session-count
|
||||
* 2019-06-05 7.8
|
||||
GLPLugin with better ip4/ip6 handling
|
||||
fix huawei subclasses
|
||||
interfaces --name filter expression can contain _adminup_ as a secondary
|
||||
filter
|
||||
route modes can handle v6
|
||||
use OSPFV3-MIB, support v6
|
||||
add CISCO-BGP4-MIB, support v6
|
||||
* 2019-04-12 7.7
|
||||
add Barracuda
|
||||
* 2019-04-12 7.6.1
|
||||
add mode count-connections for F5
|
||||
* 2019-03-20 7.6
|
||||
add mode watch-ospf-neighbors
|
||||
* 2019-02-19 7.5.0.1
|
||||
remove adsl-line-mib
|
||||
* 2019-02-18 7.5
|
||||
add Draytek Vigor
|
||||
* 2019-01-09 7.4.3
|
||||
add mode interface-security (cisco)
|
||||
* 2018-12-17 7.4.2.1
|
||||
finish ha-status for cisco wlc
|
||||
* 2018-12-12 7.4.2
|
||||
start ha for cisco wlc
|
||||
improve paloalto uptime model string
|
||||
improve ucd memory
|
||||
* 2018-12-04 7.4.1.2
|
||||
fix cisco bgp for routers which do not export the proptietary mib, but bgp4
|
||||
* 2018-12-04 7.4.1.1
|
||||
fix undefs for Huawei with older Mibs
|
||||
fix fortigate sensors
|
||||
* 2018-12-04 7.4.1
|
||||
detect more Huawei devices
|
||||
* 2018-12-03 7.4
|
||||
use proprietary bgp mib for cisco (and add ipv6)
|
||||
make ospd v6-ready
|
||||
add servertpe generic_ucd
|
||||
fix ciscoipsecflow fail timestamps
|
||||
* 2018-10-22 7.3.1
|
||||
add modes ha-status/role for fortigate
|
||||
* 2018-10-22 7.3.0.5
|
||||
update glplugin (CISCO-STACKWISE-MIB)
|
||||
* 2018-10-21 7.3.0.4
|
||||
update glplugin (for go-worker)
|
||||
* 2018-10-17 7.3.0.3
|
||||
update glplugin
|
||||
better fortigate detection
|
||||
* 2018-09-28 7.3.0.2
|
||||
update glplugin
|
||||
* 2018-09-25 7.3.0.1
|
||||
re-enable Huawei CloudEngine support
|
||||
* 2018-09-10 7.3
|
||||
update stack-status
|
||||
add servertype hostresource
|
||||
update cisco vpn-status
|
||||
* 2018-08-13 7.2.0.2
|
||||
bugfix in interface-modes where --name3 found no match
|
||||
* 2018-08-10 7.2.0.1
|
||||
bugfix in ios ha-status, ignore cable "failover" description
|
||||
* 2018-08-01 7.2
|
||||
add packet forwarding engine metrics for juniper standby nodes
|
||||
* 2018-07-26 7.1
|
||||
add custom thresholds for cisco ccm
|
||||
detect fritzbox 7490
|
||||
* 2018-07-13 7.0.2
|
||||
add interface-uptime
|
||||
2018-07-05 7.0.1.6
|
||||
fix a bug in non-map FabOS memory
|
||||
set thresholds to 100% for cisco asa heapcache memory-usage
|
||||
* 2018-06-18 7.0.1.5
|
||||
update glplugin (get_snmp_table_objects waja fix)
|
||||
* 2018-05-05 7.0.1.4
|
||||
simplify the cisco memory exceptions
|
||||
* 2018-04-29 7.0.1.3
|
||||
bugfix in cisco global shared memory > 9.3.2
|
||||
* 2018-03-31 7.0.1.2
|
||||
fix a bug in link-aggregation-availability
|
||||
* 2018-03-13 7.0.1.1
|
||||
fix a bug in cisco enhanced mempool mib and posixmem (thx sabedevops)
|
||||
* 2018-03-07 7.0.1
|
||||
improve f5, add ha-role, check-config, count-connections
|
||||
* 2018-03-01 7.0.0.7
|
||||
update GLPlugin
|
||||
* 2018-02-26 7.0.0.6
|
||||
ignore free space of iso mounts in hostresource mib
|
||||
* 2018-02-06 7.0.0.5
|
||||
fix a bug in hostresourcesmib memory calc. (arista eos)
|
||||
* 2018-02-08 7.0.0.5
|
||||
update glplugn, add modes encode/decode, rfc3986
|
||||
* 2018-01-23 7.0.0.4
|
||||
merge pull request #164 (simonmeggle)
|
||||
add bluecoat asg fix from Stefan Kublik
|
||||
* 2018-01-12 7.0.0.3
|
||||
check the clock of checkpoint fw
|
||||
* 2018-01-11 7.0.0.2
|
||||
fix a bug in checkpoint vpn-status
|
||||
* 2018-01-08 7.0.0.1
|
||||
update glplugin
|
||||
* 2018-01-05 7.0
|
||||
code improvements, fix hh3c entities
|
||||
* 2017-12-27 6.4.4.1
|
||||
fix f5 versions
|
||||
* 2017-12-21 6.4.4
|
||||
add interface-duplex
|
||||
* 2017-12-15 6.4.3.3
|
||||
fix a bug in vsx-firewall1-fork
|
||||
* 2017-12-14 6.4.3.2
|
||||
update glplugin
|
||||
* 2017-12-14 6.4.3.1
|
||||
update glplugin
|
||||
* 2017-12-12 6.4.3
|
||||
add checkpoint ha-status, fix checkpoint vpn-status
|
||||
* 2017-11-27 6.4.2.3
|
||||
rewrite pretty_sysdesc
|
||||
* 2017-11-23 6.4.2.2
|
||||
updateGLPlugin (remove session timeout)
|
||||
* 2017-11-20 6.4.2.1
|
||||
updateGLPlugin
|
||||
* 2017-11-03 6.4.2
|
||||
implement pool-completeness for f5-gtm-pools (--role gtm)
|
||||
* 2017-09-29 6.4.1.7
|
||||
ignore dummy filesystems in HOSTRESOURCEMIBS
|
||||
* 2017-09-23 6.4.1.6
|
||||
get ospf table twice if a 2nd contect exists
|
||||
* 2017-09-22 6.4.1.5
|
||||
update GLPlugin (use 2nd context for OSPF)
|
||||
* 2017-09-21 6.4.1.4
|
||||
fix interface-stack-status, arista's ifStackTable was buggy
|
||||
* 2017-09-18 6.4.1.3
|
||||
blacklist l3 routing card (and power supply) if a nexus is used as l2 switch
|
||||
* 2017-09-16 6.4.1.2
|
||||
workaround for CSCuv18572
|
||||
* 2017-09-13 6.4.1.1
|
||||
fix hostresourcemib, interface sit0 can be down by default
|
||||
(is disabled in Cisco UC)
|
||||
* 2017-08-25 6.4.1
|
||||
add vpn-status for checkpoint
|
||||
* 2017-08-25 6.4.0.4
|
||||
fix brocade aliasing in interface-status
|
||||
* 2017-08-24 6.4.0.3
|
||||
fix brocade alias aliasing
|
||||
* 2017-08-24 6.4.0.2
|
||||
update glplugin, sw-mib fix
|
||||
* 2017-08-24 6.4.0.1
|
||||
replace empty ifAlias with swFCPortName for FabOS (Brocade) devices
|
||||
merge pr #147, thanks arigaud. skip undef temperatured of foundry devices
|
||||
implement eltex gear (pull request #144)
|
||||
fix a perl-undef in Juniper BGP (pull request #143)
|
||||
nsPowerDesc can be null (pullrequest #134)
|
||||
* 2017-08-07 6.3.0.8
|
||||
fix C3750 redundant power supplies
|
||||
* 2017-08-04 6.3.0.7
|
||||
fix undefined thresholds in arista sensors
|
||||
* 2017-07-17 6.3.0.6
|
||||
fix false positives in cisco ethernet service modules SM-ES3G-24-P
|
||||
allow mitigation of cisco disabled catalyst power supplies
|
||||
* 2017-06-28 6.3.0.5
|
||||
allow mitigation of a subLayerDown stack
|
||||
* 2017-06-20 6.3.0.4
|
||||
update GLPlugin (lcos-mib)
|
||||
* 2017-06-19 6.3.0.3
|
||||
ring redundancy is ok if the stack has only one member
|
||||
* 2017-06-09 6.3.0.2
|
||||
fix a bug in f5 member connections (Thanks Yannick Charton)
|
||||
skip ifIndex in interface-stack-status (makes nexus crash)
|
||||
* 2017-06-07 6.3.0.1
|
||||
update glplugin
|
||||
* 2017-06-01 6.3
|
||||
update glplugin
|
||||
add Lancom
|
||||
* 2017-05-19 6.2.2.3
|
||||
workaround for ios 12.x and buggy ifstacktable
|
||||
* 2017-05-17 6.2.2.2
|
||||
and fix list-interfaces...
|
||||
* 2017-05-17 6.2.2.1
|
||||
fix --name for non-uinique indices
|
||||
* 2017-05-17 6.2.2
|
||||
add an index to ifDescr which have no unique names
|
||||
* 2017-05-15 6.2.1.5
|
||||
GLPlugin update
|
||||
* 2017-05-12 6.2.1.4
|
||||
GLPlugin update
|
||||
* 2017-05-12 6.2.1.3
|
||||
fix a bug in interface-health
|
||||
* 2017-05-12 6.2.1.2
|
||||
fix a bug in interface-availability
|
||||
* 2017-05-09 6.2.1.1
|
||||
fix interface etherstats, stacks
|
||||
add fortigate disks
|
||||
* 2017-05-03 6.2.0.2
|
||||
fix a bug in interface-health and 10GE ports.
|
||||
* 2017-04-26 6.2.0.1
|
||||
use carrier if operstatus is unknown for linuxlocal interfaces
|
||||
add dummy speed to linux virtio interfaces
|
||||
* 2017-04-18 6.2.0
|
||||
add support for junox bgp with ipv6, thanks dupondje
|
||||
fix a bug in bluecoat, allow warningx now
|
||||
* 2017-04-15 6.1.1
|
||||
support Brocade Ironport and enhance FOUNDRY-SN-AGENT-MIB
|
||||
* 2017-04-13 6.1.0.3
|
||||
reverse hrStorage mem thresholds
|
||||
* 2017-03-30 6.1.0.2
|
||||
fix a bug in 64bit interface-usage (Thanks Julian)
|
||||
* 2017-03-27 6.1.0.1
|
||||
pdate GLPlugin
|
||||
* 2017-03-25 6.1
|
||||
update entity-sensor-mib
|
||||
* 2017-03-24 6.0.2.3
|
||||
bugfixes in interface etherstats
|
||||
* 2017-03-22 6.0.2.2
|
||||
bugfix in etherstats for 32bit
|
||||
better error message for no access points found
|
||||
replace continue by next. failed on older distributions
|
||||
* 2017-03-20 6.0.2.1
|
||||
fix brocade fabos cpu/memory with MAPS installed
|
||||
* 2017-03-19 6.0.2
|
||||
improve interface-etherstats
|
||||
* 2017-03-10 6.0.1.4
|
||||
update GLPlugin
|
||||
* 2017-03-03 6.0.1.3
|
||||
fix uninitialized-bug
|
||||
* 2017-03-03 6.0.1.2
|
||||
special treatment for counterless StackSub interfaces
|
||||
* 2017-03-03 6.0.1.1
|
||||
Merge pull request #126 from ciscoqid/patch-1
|
||||
* 2017-03-02 6.0.1
|
||||
remove steelhead prettyprint
|
||||
* 2017-02-24 6.0
|
||||
cisco chassis check snmp tuning
|
||||
fix cisco-envmon-mib
|
||||
nxos hardware check snmp tuning
|
||||
fix cisco wlan no-ap clustercheck
|
||||
detect more f5 models
|
||||
add f5 wide ip check
|
||||
improve host-resource-mib
|
||||
speedup interface checks
|
||||
add interface-etherstats
|
||||
add ha-status for juniper vsd members
|
||||
customer release #12.2a
|
||||
add mode interface-stack-status
|
||||
add riverbed steelhead
|
||||
* 2017-02-10 5.13
|
||||
bugfix in f5 output message
|
||||
make f5 perfdata labels more consistent
|
||||
checkpoint multicore. Thanks Peter Hanraets
|
||||
* 2017-01-28 5.12.0.5
|
||||
fix pool checks for big-ip 12.x (thanks abzeidler)
|
||||
* 2017-01-27 5.12.0.4
|
||||
fallback to ios if cisco wlc has no cpu/mem oids
|
||||
bugfix in chassis-hardware-health delta of ports
|
||||
bugfix in chassis-hardware-health duplicate fan output
|
||||
* 2017-01-27 5.12.0.3
|
||||
fix cisco wlc ap admin status
|
||||
* 2017-01-26 5.12.0.2
|
||||
detect more cisco wireless controllers
|
||||
* 2017-01-18 5.12.0.1
|
||||
update GLPlugin (uptime)
|
||||
* 2017-01-11 5.12
|
||||
detect checkpoint gaia
|
||||
* 2016-12-28 5.11.3
|
||||
detect more hp procurve switches (J9624A etc. may need new firmware revision RA.16.02.0012, ROM RA.15.13)
|
||||
* 2016-12-19 5.11.2.5
|
||||
/dev/md on Juniper srx is considered as procfs
|
||||
* 2016-12-19 5.11.2.4
|
||||
fix performance labels for HOSTRESOURCESMIB dev filesystems
|
||||
* 2016-12-14 5.11.2.3
|
||||
optimize uptime, no bulk for brocade sensors
|
||||
* 2016-12-12 5.11.2.2
|
||||
bluecoat disk usage can be overridden with own thresholds
|
||||
* 2016-12-12 5.11.2.1
|
||||
add JUNIPER-MIB
|
||||
* 2016-12-12 5.11.2
|
||||
fix in cisco asr lsmpi memory
|
||||
skip thresholds for dev filesystem in HOSTRESOURCESMIB
|
||||
* 2016-12-06 5.11.1
|
||||
detect juniper pulse secure
|
||||
juniper srx temperatures and leds
|
||||
* 2016-11-29 5.11
|
||||
reverse usage/free in hostresourcemib memory-usage, so the same thresholds can be use for every kind of device
|
||||
mv juniper-mib to glplugin
|
||||
add etherstats
|
||||
* 2016-11-09 5.10.0.1
|
||||
fix nexus sensor perfdata, metrics without thresh. were not shown (Thanks Dennis Knecht)
|
||||
* 2016-10-29 5.10
|
||||
add smart-home-device-temperature, add Comet DECT
|
||||
* 2016-10-19 5.9.0.1
|
||||
fix memory-usage for Catalyst L3 (which have empty CISCO-ENHANCED-MEMPOOL-MIB)
|
||||
* 2016-10-10 5.9
|
||||
add arista
|
||||
add cisco small business
|
||||
* 2016-09-30 5.8.1
|
||||
add mode count-accesspoint-clients for cisco wlc
|
||||
* 2016-09-20 5.8.0.2
|
||||
don't use | in interface-availability ascii output for notifications
|
||||
* 2016-09-19 5.8.0.1
|
||||
fix pull request #107 (this was the last pull request i will accept for this plugin. sorry, if you are not able to test your contributions, go away)
|
||||
* 2016-09-19 5.8
|
||||
update ucd-diskio, cumulus
|
||||
* 2016-08-12 5.7.1.4
|
||||
update GLPlugin/Extraopts
|
||||
* 2016-07-07 5.7.1.3
|
||||
remove trailing Nul from Bintec memories
|
||||
* 2016-07-07 5.7.1.2
|
||||
Bintec doesn't like bulk requests
|
||||
* 2016-06-16 5.7.1.1
|
||||
repair a pull request.
|
||||
* 2016-05-30 5.7.1
|
||||
update GLPlugin
|
||||
* 2016-05-28 5.7.0.3
|
||||
bugfix in nortel hardware-checks. (Thanks trentasis)
|
||||
* 2016-05-17 5.7.0.2
|
||||
Do not check UCDMIB swap when there is no swap
|
||||
* 2016-05-14 5.7.0.1
|
||||
fix a typo in a filename (Thanks vifino)
|
||||
* 2016-05-10 5.7
|
||||
add Bintec Bibo (1202)
|
||||
add Cisco ASA mode ha-role (including cluster-health check)
|
||||
* 2016-05-10 5.6.1
|
||||
fix detection of Pulse Secure Gateways
|
||||
* 2016-05-06 5.6
|
||||
more dhoffend pull requests (linux ucdmib memory, lmsensors)
|
||||
* 2016-05-02 5.5
|
||||
add vrrp-modes
|
||||
dhoffend pull requests (linux ucdmib, lsmpio bugfix, hsrp multiple roles)
|
||||
* 2016-03-29 5.4
|
||||
add CISCO-STACKWISE-MIB
|
||||
add processor index in cisco enhanced memory
|
||||
* 2016-03-11 5.3.3
|
||||
Use 64bit-counters from cisco-enhanced-mempool-mib if available (cisco bug CSCuu46705)
|
||||
Merge pull request #61 from Napsty/checkpoint-mgmt
|
||||
Merge pull request #67 from Napsty/list-detail-alias
|
||||
Simplify interface code
|
||||
* 2016-02-29 5.3.2
|
||||
Merge pull request #64 Claudio Kuenzler
|
||||
* 2016-02-25 5.3.1
|
||||
bugfix in --ifspeed
|
||||
* 2016-02-16 5.3
|
||||
add mode chassis-hardware-health (for cisco)
|
||||
* 2016-02-16 5.2.2
|
||||
update checkpoint, use new mib
|
||||
fallback if no cisco cpu index can be found
|
||||
* 2016-02-15 5.2.1
|
||||
refactor interface-usage, bugfix in list-interfaces
|
||||
bugfix in link-aggregation-availability thresholds
|
||||
* 2016-02-09 5.2
|
||||
fix cisco bgp prefix count if no peers were found
|
||||
small fix in interfaces, add flat_indices
|
||||
bugfix in entity-sensor-mib
|
||||
add glplugin submodule (Thanks k0ste)
|
||||
pr #52 cisco-alarm-mib parse octets (Thanks dhoffend)
|
||||
* 2015-12-20 5.1
|
||||
Fix IOS-XE which no longer support the ENVMON MIB. Use FRU MIB instead. (Zhanks Daniel Hoffend, pull request #49)
|
||||
* 2015-11-24 5.0
|
||||
introduce new units (based on 1000 instead of 1024), will have an impact on interface perfdata thresholds
|
||||
* 2015-11-24 4.8
|
||||
add Huawei CloudEngine
|
||||
pull request #45 chomp Checkpoint HA state (Thanks Claudio Kuenzler)
|
||||
pull request #46 Add CheckPoint Power Supply Check (Thanks Claudio Kuenzler)
|
||||
* 2015-11-18 4.7.1
|
||||
detect CheckPoint IPSO (Thanks Claudio Kuenzler)
|
||||
* 2015-11-05 4.7
|
||||
fix standalone version
|
||||
* 2015-10-22 4.6.1
|
||||
add --mode interface-health to linux, solaris, windows
|
||||
find more bluecoat models
|
||||
* 2015-10-02 4.6
|
||||
add --mode interface-health
|
||||
* 2015-09-29 4.5
|
||||
merge huawei h3c from lazyfrosch-hh3c-switches
|
||||
output ifAlias in interface-modes (if it exists and != ifDescr)
|
||||
* 2015-09-06 4.4
|
||||
add rapid-city-mib
|
||||
add entity-mib for cisco asa
|
||||
* 2015-08-18 4.3.1
|
||||
add ha-role for Aruba
|
||||
* 2015-08-17 4.3
|
||||
add Alcatel OmniAccess (Aruba)
|
||||
* 2015-08-17 4.2.1
|
||||
GLPlugin update
|
||||
* 2015-07-31 4.2
|
||||
pull request #36. bugfix in cisco asyncos keys (Thanks Frank Meischner)
|
||||
pull request #25. cisco check-config more useful. (Thanks mhoogveld)
|
||||
add Nortel S5-CHASSIS-MIB, works for 4526GTX
|
||||
add OneAccess OneOS
|
||||
add Solaris local interfaces
|
||||
GLPlugin update
|
||||
* 2015-07-03 4.1
|
||||
add --count-bgp-prefixes for cisco
|
||||
* 2015-06-28 4.0
|
||||
--disable-standalone
|
||||
add --watch-bgp-peers
|
||||
add --reset for watch-bgp-peers
|
||||
bugfix in f5-pool-checks, where oids are not available during a transition"
|
||||
* 2015-06-25 3.5.4
|
||||
allow --name dest/cidr for mode count-routes
|
||||
* 2015-06-22 3.5.3
|
||||
fix a bug in f5 member connection limit noSuchInstance
|
||||
add mode count-routes (find mpls problems)
|
||||
add mode count-bgp-peers
|
||||
* 2015-05-06 3.5.2
|
||||
add --community2 (necessary if there are different ospf contexts)
|
||||
raise max-repetitions for table-bulk-requests (large number of interfaces)
|
||||
* 2015-04-19 3.5.1
|
||||
add LM-SENSOR-MIB
|
||||
bugfix in thresholds of morphed performancedata
|
||||
* 2015-04-09 3.5
|
||||
implement ospf and modes ospf-neighbor-status and list-ospf-neighbors
|
||||
* 2015-03-29 3.4.4.3
|
||||
separate discards from errors in linuxlocal
|
||||
* 2015-03-03 3.4.4.2
|
||||
combine pool-connections and pool-completion for f5
|
||||
finish pool-complections
|
||||
* 2015-02-28 3.4.4.1
|
||||
detect (not implement!) netgear
|
||||
* 2015-02-26 3.4.4
|
||||
add mode pool-connections for f5
|
||||
* 2015-02-19 3.4.3
|
||||
allow mitigation of admin down bgp peer
|
||||
add morphperfdata
|
||||
* 2015-01-30 3.4.2.8
|
||||
bugfix in GLPlugin (multiple --negate)
|
||||
* 2015-01-28 3.4.2.7
|
||||
more trailing null cleanup. (Thanks Jörg Linge)
|
||||
* 2015-01-27 3.4.2.6
|
||||
bugfix in interface-usage windows+snmp+trailing null in ifDescr. (Thanks Jörg Linge)
|
||||
* 2015-01-14 3.4.2.5
|
||||
bugfix in interface-status and snmp-table-get (no more false 64bit interfaces)
|
||||
* 2015-01-08 3.4.2.4
|
||||
shorten interface-output with report=short
|
||||
* 2015-01-05 3.4.2.3
|
||||
fix a perl-bug in F5 (was introduced in 3.4.2)
|
||||
* 2015-01-02 3.4.2.2
|
||||
fix lsmpi_io for cisco asr1000 (Thanks Andreas Schulz)
|
||||
fix Fritz!Box upnp control url (Thanks Bernd)
|
||||
* 2014-12-23 3.4.2.1
|
||||
use fallbacks to find fexes (cefexConfigTable may not be populated)
|
||||
* 2014-12-16 3.4.2
|
||||
use cefexConfigTable for mode watch-fexes
|
||||
bugfix in cisco nexus sensors (had undef perl warnings)
|
||||
* 2014-12-12 3.4.1
|
||||
bugfix in bluecoat hardware (skip perfdata of missing psus)
|
||||
* 2014-12-11 3.4
|
||||
add vpn-status for cisco asa
|
||||
* 2014-12-08 3.3
|
||||
add windowslocal
|
||||
* 2014-12-06 3.2.2
|
||||
unique names for cisco cpus pointing to the same physical entity
|
||||
* 2014-11-29 3.2.1
|
||||
remove unnecessary use statement
|
||||
finalize paloalto ha
|
||||
make list-interfaces and update-cache faster
|
||||
* 2014-11-18 3.2.0.1
|
||||
hide some debug printfs
|
||||
* 2014-11-10 3.2
|
||||
add palo alto hardware, sensors, ha
|
||||
make nexus cpu names unique
|
||||
* 2014-11-02 3.1.1
|
||||
bugfix my-modes
|
||||
add paloaltomib
|
||||
* 2014-09-26 3.1
|
||||
add Clavister Firewall (Thanks Dirk Goetz)
|
||||
fix GLPluginSNMP, all timeout-like errors are UNKNOWN
|
||||
allow warningx/criticalx to override cisco sensor thresholds
|
||||
* 2014-09-55 3.0.4
|
||||
bugfix in glplugin (tmp-file-paths wrong under epn) (Thanks Sven Nierlein)
|
||||
* 2014-09-15 3.0.3.9
|
||||
bugfix in bgp error states (Thanks Matthias Gallinger)
|
||||
bugfix in f5 pools (Thanks Sven Nierlein)
|
||||
* 2014-08-28 3.0.3.8
|
||||
bugfix in interface-usage/ifspeed (Thanks Matthias Gallinger)
|
||||
* 2014-08-26 3.0.3.7
|
||||
bugfix in glpluginsnmp (undef errors with loadbalacer index)
|
||||
* 2014-08-25 3.0.3.6
|
||||
bugfix in glpluginsnmp / (fritzbox cpu undef-error)
|
||||
* 2014-08-22 3.0.3.5
|
||||
bugfix in glplugin/uptime because of buggy snmpengineuptime
|
||||
* 2014-08-21 3.0.3.4
|
||||
bugfix in glplugin/uptime thresholds
|
||||
* 2014-08-21 3.0.3.3
|
||||
add a hack with --name2 which allows shortening of stupid interface names (make dmz1 from Adaptive Security Appliance 'dmz1' interface)
|
||||
* 2014-08-20 3.0.3.2
|
||||
update GLPluginSNMP (timeout handling)
|
||||
* 2014-08-20 3.0.3.1
|
||||
fix interfaces which seem to be 64bit but have no counters
|
||||
* 2014-08-19 3.0.3
|
||||
bugfix in offline mode
|
||||
update GLPlugin
|
||||
update GLPluginSNMP
|
||||
* 2014-08-15 3.0.2.2
|
||||
bugfix in ios memory criticalx/warningx thresholds
|
||||
* 2014-08-14 3.0.2.1
|
||||
update GLPluginSNMP
|
||||
* 2014-08-14 3.0.2
|
||||
improve interface-usage performance data
|
||||
detect more brocade models
|
||||
* 2014-08-13 3.0.1
|
||||
bugfix in interface-usage temp-files
|
||||
* 2014-08.01 3.0
|
||||
jetzt langts mit der ridiseignerei
|
||||
* 2014-03-17 3.0x
|
||||
massive rewriting of the plugins structure and modules
|
||||
repair malformed data returned by Net::SNMP
|
||||
add interface-nat-rejects and interface-nat-session-count for IOS
|
||||
add hardware-health for cisco asa
|
||||
bugfix for old brocade devices and missing cpu/memory oids
|
||||
bugfix in Cisco Call Manager
|
||||
bugfix in IOS Memory for ASR 9000 image and reserved pool
|
||||
bugfix in cisco wlc status
|
||||
add hardware-health for cisco pix
|
||||
add mode supportedmibs
|
||||
last fallback alarm-mib for ios without envmon-mib
|
||||
bugfix in timeticks for hp
|
||||
bugfix in Nexus sensor thresholds (Thanks Marcel Fischer)
|
||||
bugfix in snmp-bulk-gets, more secure fallbacks to get-next
|
||||
bugfix in 64bit-interfaces
|
||||
GLPlugin update & cleanup
|
||||
get uptime from the FRAMEWORK-MIB to prevent rollovers
|
||||
* 2014-02-07 2.6.5.2
|
||||
add another cisco unified communication model
|
||||
* 2014-01-31 2.6.5.1
|
||||
handle a missing brocade fabric watch license in cpu-load & memory-usage
|
||||
add CISCO-ENHANCED-MEMPOOL-MIB
|
||||
* 2014-01-24 2.6.5
|
||||
add mode --check-config, which finds unsaved (cisco only) configs (Thanks Simon Meggle)
|
||||
* 2014-01-18 2.6.4.3
|
||||
bugfix in uptime (Thanks Finn Christiansen)
|
||||
* 2014-01-15 2.6.4.2
|
||||
add http connection checks for bluecoat sg
|
||||
* 2014-01-14 2.6.4
|
||||
add cisco ccm
|
||||
* 2014-01-11 2.6.3.1
|
||||
support more SecureOS devices (i bought Juniper SSG5)
|
||||
bugfix in upnp-detection
|
||||
* 2013-12-21 2.6.3
|
||||
output number of sessions for f5 bigip load balancer pools
|
||||
deal with obviously wrong values from devices (20000% cpu usage)
|
||||
foundry server load balancing
|
||||
bugfix in interface-* for Juniper IVE
|
||||
filter hsrp groups by name
|
||||
* 2013-11-08
|
||||
added support for role based login for Fritz Boxes (available since
|
||||
FRITZ!OS 5.50). Use --community for password, --username for username if
|
||||
role based security is switched on.
|
||||
* 2013-11-09
|
||||
bugfix for fritzbox
|
||||
* 2013-11-08 2.6.1
|
||||
hardware-health for Checkpoint Firewall-1
|
||||
* 2013-11-07 2.6
|
||||
finished bgp-peer-status (focus on as numbers with --name2)
|
||||
admin down with --interface-status can have any level with --mitigation
|
||||
* 2013-10-31 2.5.4.1
|
||||
add Fujitsu Intelligent Blade Panel 30/12
|
||||
* 2013-10-30 2.5.4
|
||||
add bgp
|
||||
* 2013-10-01 2.5.3
|
||||
detect more brocade devices
|
||||
* 2013-09-26 2.5.2.1
|
||||
supress double output for html f5 pool members
|
||||
* 2013-09-25 2.5.2
|
||||
add html output for f5 pool members
|
||||
* 2013-09-18 2.5.1.2
|
||||
removed a leftover Data::Dumper (Thanks Frank Belau)
|
||||
* 2013-09-17 2.5.1.1
|
||||
bugfix in lsmpi_io memory pools of Cisco ASR (100% even with --warning/--critical)
|
||||
* 2013-09-11 2.5.1
|
||||
set a 100% threshold for lsmpi_io memory pools of Cisco ASR (Thanks James Clark & Perun)
|
||||
* 2013-09-10 2.5
|
||||
implemented offline mode with --snmpwalk & --offline
|
||||
* 2013-09-03 2.4
|
||||
add Cisco IronPort AsyncOS
|
||||
* 2013-08-27 2.3
|
||||
add Juniper IVE (ex. Pulse-Gateway MAG4610)
|
||||
add count-connections for cisco asa
|
||||
* 2013-07-11 2.2
|
||||
add memory-usage for checkpoint
|
||||
add detection for cpx
|
||||
* 2013-07-09 2.1.1
|
||||
skip non-interface files in /sys/class/net for servertype linuxlocal (Thanks Sven Nierlein)
|
||||
better error handling on unwritable statefiles/dirs
|
||||
* 2013-06-12 2.1
|
||||
added "--servertype ifmib" so you can use "--mode interface*" with every kind of ifmib-capable device
|
||||
* 2013-06-01 2.0
|
||||
added support for AVM FRITZ!DECT 200 smart plug
|
||||
* 2013-05-27 1.9.8.1
|
||||
bugfix for the bugfix in commandline options (Thanks webspace Mario)
|
||||
* 2013-05-23 1.9.8
|
||||
add Brocade Communications Systems, Inc. ICX6610-24-HPOE, IronWare
|
||||
bugfix in commandline options (Thanks TheCry)
|
||||
* 2013-05-17 1.9.7.4
|
||||
added another fallback for snmp-get_entries
|
||||
fixed a bug in uptime (only first minute after reboot)
|
||||
* 2013-04-20 1.9.7.3
|
||||
fixed a bug in snmpwalk simulation and savestate
|
||||
* 2013-04-08 1.9.7.2
|
||||
bugfix, interfaces were shown twice in list-interfaces
|
||||
* 2013-03-26 1.9.7.1
|
||||
set automatic thresholds for link-aggregation-availability
|
||||
* 2013-03-25 1.9.7
|
||||
added link-aggregation-availability
|
||||
* 2013-03-19 1.9.6
|
||||
fixed a bug in interface-*
|
||||
speedup in interface-* (with --name and 64bit)
|
||||
added a hostname/community hash to statefiles
|
||||
* 2013-02-13 1.9.5.1
|
||||
fixed a bug deep inside snmp bulkwalks and lots of interfaces (Thanks Uestuen Oender)
|
||||
* 2013-02-24 1.9.5
|
||||
add interface-availability
|
||||
* 2013-02-11 1.9.4
|
||||
add Cisco Wireless LAN Controller 5500
|
||||
* 2013-02-11 1.9.3.1
|
||||
fixed a bug in statefiles with uppercase directory names. (Thanks Matthias Gallinger)
|
||||
* 2013-02-10 1.9.3
|
||||
add blue coat sg600
|
||||
* 2013-02-02 1.9.2
|
||||
removed my static ip from FRITZ!BOX interface-usage (Thanks Stef)
|
||||
* 2013-01- 1.9.1
|
||||
fixed a bug in FFritz!BOX uptime (Thanks Lars Urban)
|
||||
3013-01 1.9
|
||||
add uptime and interface-usage for AVM FRITZ!Box 7390
|
||||
add cpu-load and memory-usage for AVM FRITZ!Box 7390
|
||||
* 2013-01-13 1.8
|
||||
-add cpu&memory check for juniper netscreen
|
||||
* 2013-01-12 1.7.1
|
||||
add a name caching mechanism for f5 bigip pools
|
||||
* 2013-01-08 1.7
|
||||
add f5 bigip pool completeness
|
||||
add member info for failed f5 pools
|
||||
* 2012-12-10 1.6
|
||||
add checkpoint firewall-1
|
||||
* 2012-11-23 1.5
|
||||
add 64bit interfaces
|
||||
* 2012-09-26 1.4.9.1
|
||||
fix a bug in uptime calculation
|
||||
* 2012-09-24 1.4.9
|
||||
add hp procurve cpu-load and memory-usage
|
||||
fix a bug in cisco memory perfdata
|
||||
* 2012-08-28 1.4.8
|
||||
add hp procurve hardware
|
||||
* 2012-08-21 1.4.7.1
|
||||
fix a bug in servertype locallinux, interfaces and --name (Thanks Simon Meggle)
|
||||
* 2012-08-21 1.4.7
|
||||
add f5 bigip
|
||||
bugfix in mode uptime
|
||||
* 2012-08-10 1.4.6
|
||||
add mode uptime
|
||||
* 2012-08-10 1.4.5.2
|
||||
fix a bug in statefilesdir creation under omd
|
||||
* 2012-08-02 1.4.5.1
|
||||
add more hardware info for EMC-DS24M2 (McData Sphereon 4500)
|
||||
* 2012-07-31 1.4.5
|
||||
add UCD-MIB for SecureOS (McAfee Sidewinder)
|
||||
* 2012-07-31 1.4.4
|
||||
add fibre alliance mib sensor table for MeOS/DS-4700M
|
||||
* 2012-07-20 1.4.3.1
|
||||
add the index to interface names, if interfaces all have the same name
|
||||
first experiments with MeOS
|
||||
* 2012-07-12 1.4.3
|
||||
fix a bug in the role parameter for hsrp
|
||||
fix a temperature index where ios doesn't set the counter itself
|
||||
add mib2-interface-modes to brocade fabos
|
||||
* 2012-07-05 1.4.2
|
||||
add mode encode for interface names with ' or "
|
||||
* 2012-07-05 1.4.1
|
||||
add --ifspeedin, --ifspeedout, --ifspeed (used for asymmetric mpls)
|
||||
* 2012-06-22 1.4
|
||||
add linux local interfaces (interface-usage/errors only) with --servertype linuxlocal
|
||||
add mode walk
|
||||
rename brocade300 -> fabos
|
||||
* 2012-04-23 1.3
|
||||
add mode list-interfaces-detail (Cisco only)
|
||||
add brocade300 (hardware-health,memory-usage,cpu-load only)
|
||||
* 2012-03-29 1.2
|
||||
add support for Cisco Nexus (cpu, mem, )
|
||||
add Nexus sensors
|
||||
add Allied Telesyn (only interfaces so far)
|
||||
* 2012-03-19 1.1.1.1
|
||||
bugfix in list-hsrp-groups
|
||||
--units KBi/MBi/GBi for interface-usage
|
||||
* 2012-02-22 1.1.1
|
||||
add mode hsrp-failover (Thanks Munich)
|
||||
* 2012-02-22 1.1
|
||||
add mode hsrp-state (Thanks Munich)
|
||||
* 2012-01-05
|
||||
some more debug messages
|
||||
* 2012-01-04 1.0
|
||||
Nortel devices are recognized. (only interfaces can be queried by now)
|
||||
no official changes yet
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,613 @@
|
|||
package Monitoring::GLPlugin::Commandline;
|
||||
use strict;
|
||||
use IO::File;
|
||||
use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3, DEPENDENT => 4 };
|
||||
our %ERRORS = (
|
||||
'OK' => OK,
|
||||
'WARNING' => WARNING,
|
||||
'CRITICAL' => CRITICAL,
|
||||
'UNKNOWN' => UNKNOWN,
|
||||
'DEPENDENT' => DEPENDENT,
|
||||
);
|
||||
|
||||
our %STATUS_TEXT = reverse %ERRORS;
|
||||
our $AUTOLOAD;
|
||||
|
||||
|
||||
sub new {
|
||||
my ($class, %params) = @_;
|
||||
require Monitoring::GLPlugin::Commandline::Getopt
|
||||
if ! grep /BEGIN/, keys %Monitoring::GLPlugin::Commandline::Getopt::;
|
||||
my $self = {
|
||||
perfdata => [],
|
||||
messages => {
|
||||
ok => [],
|
||||
warning => [],
|
||||
critical => [],
|
||||
unknown => [],
|
||||
},
|
||||
args => [],
|
||||
opts => Monitoring::GLPlugin::Commandline::Getopt->new(%params),
|
||||
modes => [],
|
||||
statefilesdir => undef,
|
||||
};
|
||||
foreach (qw(shortname usage version url plugin blurb extra
|
||||
license timeout)) {
|
||||
$self->{$_} = $params{$_};
|
||||
}
|
||||
bless $self, $class;
|
||||
$self->{plugin} ||= $Monitoring::GLPlugin::pluginname;
|
||||
$self->{name} = $self->{plugin};
|
||||
$Monitoring::GLPlugin::plugin = $self;
|
||||
}
|
||||
|
||||
sub AUTOLOAD {
|
||||
my ($self, @params) = @_;
|
||||
return if ($AUTOLOAD =~ /DESTROY/);
|
||||
$self->debug("AUTOLOAD %s\n", $AUTOLOAD)
|
||||
if $self->{opts}->verbose >= 2;
|
||||
if ($AUTOLOAD =~ /^.*::(add_arg|override_opt|create_opt)$/) {
|
||||
$self->{opts}->$1(@params);
|
||||
}
|
||||
}
|
||||
|
||||
sub DESTROY {
|
||||
my ($self) = @_;
|
||||
# ohne dieses DESTROY rennt nagios_exit in obiges AUTOLOAD rein
|
||||
# und fliegt aufs Maul, weil {opts} bereits nicht mehr existiert.
|
||||
# Unerklaerliches Verhalten.
|
||||
}
|
||||
|
||||
sub debug {
|
||||
my ($self, $format, @message) = @_;
|
||||
if ($self->opts->verbose && $self->opts->verbose > 10) {
|
||||
printf("%s: ", scalar localtime);
|
||||
printf($format, @message);
|
||||
printf "\n";
|
||||
}
|
||||
if ($Monitoring::GLPlugin::tracefile) {
|
||||
my $logfh = IO::File->new();
|
||||
$logfh->autoflush(1);
|
||||
if ($logfh->open($Monitoring::GLPlugin::tracefile, "a")) {
|
||||
$logfh->printf("%s: ", scalar localtime);
|
||||
$logfh->printf($format, @message);
|
||||
$logfh->printf("\n");
|
||||
$logfh->close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub opts {
|
||||
my ($self) = @_;
|
||||
return $self->{opts};
|
||||
}
|
||||
|
||||
sub getopts {
|
||||
my ($self) = @_;
|
||||
$self->opts->getopts();
|
||||
}
|
||||
|
||||
sub add_message {
|
||||
my ($self, $code, @messages) = @_;
|
||||
$code = (qw(ok warning critical unknown))[$code] if $code =~ /^\d+$/;
|
||||
$code = lc $code;
|
||||
push @{$self->{messages}->{$code}}, @messages;
|
||||
}
|
||||
|
||||
sub selected_perfdata {
|
||||
my ($self, $label) = @_;
|
||||
if ($self->opts->can("selectedperfdata") && $self->opts->selectedperfdata) {
|
||||
my $pattern = $self->opts->selectedperfdata;
|
||||
return ($label =~ /$pattern/i) ? 1 : 0;
|
||||
} else {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
sub add_perfdata {
|
||||
my ($self, %args) = @_;
|
||||
#printf "add_perfdata %s\n", Data::Dumper::Dumper(\%args);
|
||||
#printf "add_perfdata %s\n", Data::Dumper::Dumper($self->{thresholds});
|
||||
#
|
||||
# wenn warning, critical, dann wird von oben ein expliziter wert mitgegeben
|
||||
# wenn thresholds
|
||||
# wenn label in
|
||||
# warningx $self->{thresholds}->{$label}->{warning} existiert
|
||||
# dann nimm $self->{thresholds}->{$label}->{warning}
|
||||
# ansonsten thresholds->default->warning
|
||||
#
|
||||
|
||||
my $label = $args{label};
|
||||
my $value = $args{value};
|
||||
my $uom = $args{uom} || "";
|
||||
my $format = '%d';
|
||||
|
||||
if ($self->opts->can("morphperfdata") && $self->opts->morphperfdata) {
|
||||
# 'Intel [R] Interface (\d+) usage'='nic$1'
|
||||
foreach my $key (keys %{$self->opts->morphperfdata}) {
|
||||
if ($label =~ /$key/) {
|
||||
my $replacement = '"'.$self->opts->morphperfdata->{$key}.'"';
|
||||
my $oldlabel = $label;
|
||||
$label =~ s/$key/$replacement/ee;
|
||||
if (exists $self->{thresholds}->{$oldlabel}) {
|
||||
%{$self->{thresholds}->{$label}} = %{$self->{thresholds}->{$oldlabel}};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($value =~ /\./) {
|
||||
if (defined $args{places}) {
|
||||
$value = sprintf '%.'.$args{places}.'f', $value;
|
||||
} else {
|
||||
$value = sprintf "%.2f", $value;
|
||||
}
|
||||
} else {
|
||||
$value = sprintf "%d", $value;
|
||||
}
|
||||
my $warn = "";
|
||||
my $crit = "";
|
||||
my $min = defined $args{min} ? $args{min} : "";
|
||||
my $max = defined $args{max} ? $args{max} : "";
|
||||
if ($args{thresholds} || (! exists $args{warning} && ! exists $args{critical})) {
|
||||
if (exists $self->{thresholds}->{$label}->{warning}) {
|
||||
$warn = $self->{thresholds}->{$label}->{warning};
|
||||
} elsif (exists $self->{thresholds}->{default}->{warning}) {
|
||||
$warn = $self->{thresholds}->{default}->{warning};
|
||||
}
|
||||
if (exists $self->{thresholds}->{$label}->{critical}) {
|
||||
$crit = $self->{thresholds}->{$label}->{critical};
|
||||
} elsif (exists $self->{thresholds}->{default}->{critical}) {
|
||||
$crit = $self->{thresholds}->{default}->{critical};
|
||||
}
|
||||
} else {
|
||||
if ($args{warning}) {
|
||||
$warn = $args{warning};
|
||||
}
|
||||
if ($args{critical}) {
|
||||
$crit = $args{critical};
|
||||
}
|
||||
}
|
||||
if ($uom eq "%") {
|
||||
$min = 0;
|
||||
$max = 100;
|
||||
}
|
||||
if (defined $args{places}) {
|
||||
# cut off excessive decimals which may be the result of a division
|
||||
# length = places*2, no trailing zeroes
|
||||
if ($warn ne "") {
|
||||
$warn = join("", map {
|
||||
s/\.0+$//; $_
|
||||
} map {
|
||||
s/(\.[1-9]+)0+$/$1/; $_
|
||||
} map {
|
||||
/[\+\-\d\.]+/ ? sprintf '%.'.2*$args{places}.'f', $_ : $_;
|
||||
} split(/([\+\-\d\.]+)/, $warn));
|
||||
}
|
||||
if ($crit ne "") {
|
||||
$crit = join("", map {
|
||||
s/\.0+$//; $_
|
||||
} map {
|
||||
s/(\.[1-9]+)0+$/$1/; $_
|
||||
} map {
|
||||
/[\+\-\d\.]+/ ? sprintf '%.'.2*$args{places}.'f', $_ : $_;
|
||||
} split(/([\+\-\d\.]+)/, $crit));
|
||||
}
|
||||
if ($min ne "") {
|
||||
$min = join("", map {
|
||||
s/\.0+$//; $_
|
||||
} map {
|
||||
s/(\.[1-9]+)0+$/$1/; $_
|
||||
} map {
|
||||
/[\+\-\d\.]+/ ? sprintf '%.'.2*$args{places}.'f', $_ : $_;
|
||||
} split(/([\+\-\d\.]+)/, $min));
|
||||
}
|
||||
if ($max ne "") {
|
||||
$max = join("", map {
|
||||
s/\.0+$//; $_
|
||||
} map {
|
||||
s/(\.[1-9]+)0+$/$1/; $_
|
||||
} map {
|
||||
/[\+\-\d\.]+/ ? sprintf '%.'.2*$args{places}.'f', $_ : $_;
|
||||
} split(/([\+\-\d\.]+)/, $max));
|
||||
}
|
||||
}
|
||||
push @{$self->{perfdata}}, sprintf("'%s'=%s%s;%s;%s;%s;%s",
|
||||
$label, $value, $uom, $warn, $crit, $min, $max)
|
||||
if $self->selected_perfdata($label);
|
||||
}
|
||||
|
||||
sub add_pandora {
|
||||
my ($self, %args) = @_;
|
||||
my $label = $args{label};
|
||||
my $value = $args{value};
|
||||
|
||||
if ($args{help}) {
|
||||
push @{$self->{pandora}}, sprintf("# HELP %s %s", $label, $args{help});
|
||||
}
|
||||
if ($args{type}) {
|
||||
push @{$self->{pandora}}, sprintf("# TYPE %s %s", $label, $args{type});
|
||||
}
|
||||
if ($args{labels}) {
|
||||
push @{$self->{pandora}}, sprintf("%s{%s} %s", $label,
|
||||
join(",", map {
|
||||
sprintf '%s="%s"', $_, $args{labels}->{$_};
|
||||
} keys %{$args{labels}}),
|
||||
$value);
|
||||
} else {
|
||||
push @{$self->{pandora}}, sprintf("%s %s", $label, $value);
|
||||
}
|
||||
}
|
||||
|
||||
sub add_html {
|
||||
my ($self, $line) = @_;
|
||||
push @{$self->{html}}, $line;
|
||||
}
|
||||
|
||||
sub suppress_messages {
|
||||
my ($self) = @_;
|
||||
$self->{suppress_messages} = 1;
|
||||
}
|
||||
|
||||
sub clear_messages {
|
||||
my ($self, $code) = @_;
|
||||
$code = (qw(ok warning critical unknown))[$code] if $code =~ /^\d+$/;
|
||||
$code = lc $code;
|
||||
$self->{messages}->{$code} = [];
|
||||
}
|
||||
|
||||
sub reduce_messages_short {
|
||||
my ($self, $message) = @_;
|
||||
$message ||= "no problems";
|
||||
if ($self->opts->report && $self->opts->report eq "short") {
|
||||
$self->clear_messages(OK);
|
||||
$self->add_message(OK, $message) if ! $self->check_messages();
|
||||
}
|
||||
}
|
||||
|
||||
sub reduce_messages {
|
||||
my ($self, $message) = @_;
|
||||
$message ||= "no problems";
|
||||
$self->clear_messages(OK);
|
||||
$self->add_message(OK, $message) if ! $self->check_messages();
|
||||
}
|
||||
|
||||
sub check_messages {
|
||||
my ($self, %args) = @_;
|
||||
|
||||
# Add object messages to any passed in as args
|
||||
for my $code (qw(critical warning unknown ok)) {
|
||||
my $messages = $self->{messages}->{$code} || [];
|
||||
if ($args{$code}) {
|
||||
unless (ref $args{$code} eq 'ARRAY') {
|
||||
if ($code eq 'ok') {
|
||||
$args{$code} = [ $args{$code} ];
|
||||
}
|
||||
}
|
||||
push @{$args{$code}}, @$messages;
|
||||
} else {
|
||||
$args{$code} = $messages;
|
||||
}
|
||||
}
|
||||
my %arg = %args;
|
||||
$arg{join} = ' ' unless defined $arg{join};
|
||||
|
||||
# Decide $code
|
||||
my $code = OK;
|
||||
$code ||= CRITICAL if @{$arg{critical}};
|
||||
$code ||= WARNING if @{$arg{warning}};
|
||||
$code ||= UNKNOWN if @{$arg{unknown}};
|
||||
return $code unless wantarray;
|
||||
|
||||
# Compose message
|
||||
my $message = '';
|
||||
if ($arg{join_all}) {
|
||||
$message = join( $arg{join_all},
|
||||
map { @$_ ? join( $arg{'join'}, @$_) : () }
|
||||
$arg{critical},
|
||||
$arg{warning},
|
||||
$arg{unknown},
|
||||
$arg{ok} ? (ref $arg{ok} ? $arg{ok} : [ $arg{ok} ]) : []
|
||||
);
|
||||
}
|
||||
|
||||
else {
|
||||
$message ||= join( $arg{'join'}, @{$arg{critical}} )
|
||||
if $code == CRITICAL;
|
||||
$message ||= join( $arg{'join'}, @{$arg{warning}} )
|
||||
if $code == WARNING;
|
||||
$message ||= join( $arg{'join'}, @{$arg{unknown}} )
|
||||
if $code == UNKNOWN;
|
||||
$message ||= ref $arg{ok} ? join( $arg{'join'}, @{$arg{ok}} ) : $arg{ok}
|
||||
if $arg{ok};
|
||||
}
|
||||
|
||||
return ($code, $message);
|
||||
}
|
||||
|
||||
sub status_code {
|
||||
my ($self, $code) = @_;
|
||||
$code = (qw(ok warning critical unknown))[$code] if $code =~ /^\d+$/;
|
||||
$code = uc $code;
|
||||
$code = $ERRORS{$code} if defined $code && exists $ERRORS{$code};
|
||||
$code = UNKNOWN unless defined $code && exists $STATUS_TEXT{$code};
|
||||
return "$STATUS_TEXT{$code}";
|
||||
}
|
||||
|
||||
sub perfdata_string {
|
||||
my ($self) = @_;
|
||||
if (scalar (@{$self->{perfdata}})) {
|
||||
return join(" ", @{$self->{perfdata}});
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
sub metrics_string {
|
||||
my ($self) = @_;
|
||||
if (scalar (@{$self->{metrics}})) {
|
||||
return join("\n", @{$self->{metrics}});
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
sub html_string {
|
||||
my ($self) = @_;
|
||||
if (scalar (@{$self->{html}})) {
|
||||
return join(" ", @{$self->{html}});
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
sub nagios_exit {
|
||||
my ($self, $code, $message, $arg) = @_;
|
||||
$code = $ERRORS{$code} if defined $code && exists $ERRORS{$code};
|
||||
$code = UNKNOWN unless defined $code && exists $STATUS_TEXT{$code};
|
||||
$message = '' unless defined $message;
|
||||
if (ref $message && ref $message eq 'ARRAY') {
|
||||
$message = join(' ', map { chomp; $_ } @$message);
|
||||
} else {
|
||||
chomp $message;
|
||||
}
|
||||
if ($self->opts->negate) {
|
||||
my $original_code = $code;
|
||||
foreach my $from (keys %{$self->opts->negate}) {
|
||||
if ((uc $from) =~ /^(OK|WARNING|CRITICAL|UNKNOWN)$/ &&
|
||||
(uc $self->opts->negate->{$from}) =~ /^(OK|WARNING|CRITICAL|UNKNOWN)$/) {
|
||||
if ($original_code == $ERRORS{uc $from}) {
|
||||
$code = $ERRORS{uc $self->opts->negate->{$from}};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
my $output = "$STATUS_TEXT{$code}";
|
||||
$output .= " - $message" if defined $message && $message ne '';
|
||||
if ($self->opts->can("morphmessage") && $self->opts->morphmessage) {
|
||||
# 'Intel [R] Interface (\d+) usage'='nic$1'
|
||||
# '^OK.*'="alles klar" '^CRITICAL.*'="alles hi"
|
||||
foreach my $key (keys %{$self->opts->morphmessage}) {
|
||||
if ($output =~ /$key/) {
|
||||
my $replacement = '"'.$self->opts->morphmessage->{$key}.'"';
|
||||
$output =~ s/$key/$replacement/ee;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($self->opts->negate) {
|
||||
# negate again: --negate "UNKNOWN - no peers"=ok
|
||||
my $original_code = $code;
|
||||
foreach my $from (keys %{$self->opts->negate}) {
|
||||
if ((uc $from) !~ /^(OK|WARNING|CRITICAL|UNKNOWN)$/ &&
|
||||
(uc $self->opts->negate->{$from}) =~ /^(OK|WARNING|CRITICAL|UNKNOWN)$/) {
|
||||
if ($output =~ /$from/) {
|
||||
$code = $ERRORS{uc $self->opts->negate->{$from}};
|
||||
$output =~ s/^.*? -/$STATUS_TEXT{$code} -/;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$output =~ s/\|/!/g if $output;
|
||||
if (scalar (@{$self->{perfdata}})) {
|
||||
$output .= " | ".$self->perfdata_string();
|
||||
}
|
||||
$output .= "\n";
|
||||
if ($self->opts->can("isvalidtime") && ! $self->opts->isvalidtime) {
|
||||
$code = OK;
|
||||
$output = "OK - outside valid timerange. check results are not relevant now. original message was: ".
|
||||
$output;
|
||||
}
|
||||
if (! exists $self->{suppress_messages}) {
|
||||
$output =~ s/[^[:ascii:]]//g;
|
||||
print $output;
|
||||
}
|
||||
exit $code;
|
||||
}
|
||||
|
||||
sub set_thresholds {
|
||||
my ($self, %params) = @_;
|
||||
if (exists $params{metric}) {
|
||||
my $metric = $params{metric};
|
||||
# erst die hartcodierten defaultschwellwerte
|
||||
$self->{thresholds}->{$metric}->{warning} = $params{warning};
|
||||
$self->{thresholds}->{$metric}->{critical} = $params{critical};
|
||||
# dann die defaultschwellwerte von der kommandozeile
|
||||
if (defined $self->opts->warning) {
|
||||
$self->{thresholds}->{$metric}->{warning} = $self->opts->warning;
|
||||
}
|
||||
if (defined $self->opts->critical) {
|
||||
$self->{thresholds}->{$metric}->{critical} = $self->opts->critical;
|
||||
}
|
||||
# dann die ganz spezifischen schwellwerte von der kommandozeile
|
||||
if ($self->opts->warningx) { # muss nicht auf defined geprueft werden, weils ein hash ist
|
||||
# Erst schauen, ob einer * beinhaltet. Von denen wird vom Laengsten
|
||||
# bis zum Kuerzesten probiert, ob die matchen. Der laengste Match
|
||||
# gewinnt.
|
||||
my @keys = keys %{$self->opts->warningx};
|
||||
my @stringkeys = ();
|
||||
my @regexkeys = ();
|
||||
foreach my $key (sort { length($b) > length($a) } @keys) {
|
||||
if ($key =~ /\*/) {
|
||||
push(@regexkeys, $key);
|
||||
} else {
|
||||
push(@stringkeys, $key);
|
||||
}
|
||||
}
|
||||
foreach my $key (@regexkeys) {
|
||||
next if $metric !~ /$key/;
|
||||
$self->{thresholds}->{$metric}->{warning} = $self->opts->warningx->{$key};
|
||||
last;
|
||||
}
|
||||
# Anschliessend nochmal schauen, ob es einen nicht-Regex-Volltreffer gibt
|
||||
foreach my $key (@stringkeys) {
|
||||
next if $key ne $metric;
|
||||
$self->{thresholds}->{$metric}->{warning} = $self->opts->warningx->{$key};
|
||||
last;
|
||||
}
|
||||
}
|
||||
if ($self->opts->criticalx) {
|
||||
my @keys = keys %{$self->opts->criticalx};
|
||||
my @stringkeys = ();
|
||||
my @regexkeys = ();
|
||||
foreach my $key (sort { length($b) > length($a) } @keys) {
|
||||
if ($key =~ /\*/) {
|
||||
push(@regexkeys, $key);
|
||||
} else {
|
||||
push(@stringkeys, $key);
|
||||
}
|
||||
}
|
||||
foreach my $key (@regexkeys) {
|
||||
next if $metric !~ /$key/;
|
||||
$self->{thresholds}->{$metric}->{critical} = $self->opts->criticalx->{$key};
|
||||
last;
|
||||
}
|
||||
# Anschliessend nochmal schauen, ob es einen nicht-Regex-Volltreffer gibt
|
||||
foreach my $key (@stringkeys) {
|
||||
next if $key ne $metric;
|
||||
$self->{thresholds}->{$metric}->{critical} = $self->opts->criticalx->{$key};
|
||||
last;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$self->{thresholds}->{default}->{warning} =
|
||||
defined $self->opts->warning ? $self->opts->warning : defined $params{warning} ? $params{warning} : 0;
|
||||
$self->{thresholds}->{default}->{critical} =
|
||||
defined $self->opts->critical ? $self->opts->critical : defined $params{critical} ? $params{critical} : 0;
|
||||
}
|
||||
}
|
||||
|
||||
sub force_thresholds {
|
||||
my ($self, %params) = @_;
|
||||
if (exists $params{metric}) {
|
||||
my $metric = $params{metric};
|
||||
$self->{thresholds}->{$metric}->{warning} = $params{warning} || 0;
|
||||
$self->{thresholds}->{$metric}->{critical} = $params{critical} || 0;
|
||||
} else {
|
||||
$self->{thresholds}->{default}->{warning} = $params{warning} || 0;
|
||||
$self->{thresholds}->{default}->{critical} = $params{critical} || 0;
|
||||
}
|
||||
}
|
||||
|
||||
sub get_thresholds {
|
||||
my ($self, @params) = @_;
|
||||
if (scalar(@params) > 1) {
|
||||
my %params = @params;
|
||||
my $metric = $params{metric};
|
||||
return ($self->{thresholds}->{$metric}->{warning},
|
||||
$self->{thresholds}->{$metric}->{critical});
|
||||
} else {
|
||||
return ($self->{thresholds}->{default}->{warning},
|
||||
$self->{thresholds}->{default}->{critical});
|
||||
}
|
||||
}
|
||||
|
||||
sub check_thresholds {
|
||||
my ($self, @params) = @_;
|
||||
my $level = $ERRORS{OK};
|
||||
my $warningrange;
|
||||
my $criticalrange;
|
||||
my $value;
|
||||
if (scalar(@params) > 1) {
|
||||
my %params = @params;
|
||||
$value = $params{value};
|
||||
my $metric = $params{metric};
|
||||
if ($metric ne 'default') {
|
||||
$warningrange = defined $params{warning} ? $params{warning} :
|
||||
(exists $self->{thresholds}->{$metric}->{warning} ?
|
||||
$self->{thresholds}->{$metric}->{warning} :
|
||||
$self->{thresholds}->{default}->{warning});
|
||||
$criticalrange = defined $params{critical} ? $params{critical} :
|
||||
(exists $self->{thresholds}->{$metric}->{critical} ?
|
||||
$self->{thresholds}->{$metric}->{critical} :
|
||||
$self->{thresholds}->{default}->{critical});
|
||||
} else {
|
||||
$warningrange = (defined $params{warning}) ?
|
||||
$params{warning} : $self->{thresholds}->{default}->{warning};
|
||||
$criticalrange = (defined $params{critical}) ?
|
||||
$params{critical} : $self->{thresholds}->{default}->{critical};
|
||||
}
|
||||
} else {
|
||||
$value = $params[0];
|
||||
$warningrange = $self->{thresholds}->{default}->{warning};
|
||||
$criticalrange = $self->{thresholds}->{default}->{critical};
|
||||
}
|
||||
if (! defined $warningrange) {
|
||||
# there was no set_thresholds for defaults, no --warning, no --warningx
|
||||
} elsif ($warningrange =~ /^([-+]?[0-9]*\.?[0-9]+)$/) {
|
||||
# warning = 10, warn if > 10 or < 0
|
||||
$level = $ERRORS{WARNING}
|
||||
if ($value > $1 || $value < 0);
|
||||
} elsif ($warningrange =~ /^([-+]?[0-9]*\.?[0-9]+):$/) {
|
||||
# warning = 10:, warn if < 10
|
||||
$level = $ERRORS{WARNING}
|
||||
if ($value < $1);
|
||||
} elsif ($warningrange =~ /^~:([-+]?[0-9]*\.?[0-9]+)$/) {
|
||||
# warning = ~:10, warn if > 10
|
||||
$level = $ERRORS{WARNING}
|
||||
if ($value > $1);
|
||||
} elsif ($warningrange =~ /^([-+]?[0-9]*\.?[0-9]+):([-+]?[0-9]*\.?[0-9]+)$/) {
|
||||
# warning = 10:20, warn if < 10 or > 20
|
||||
$level = $ERRORS{WARNING}
|
||||
if ($value < $1 || $value > $2);
|
||||
} elsif ($warningrange =~ /^@([-+]?[0-9]*\.?[0-9]+):([-+]?[0-9]*\.?[0-9]+)$/) {
|
||||
# warning = @10:20, warn if >= 10 and <= 20
|
||||
$level = $ERRORS{WARNING}
|
||||
if ($value >= $1 && $value <= $2);
|
||||
}
|
||||
if (! defined $criticalrange) {
|
||||
# there was no set_thresholds for defaults, no --critical, no --criticalx
|
||||
} elsif ($criticalrange =~ /^([-+]?[0-9]*\.?[0-9]+)$/) {
|
||||
# critical = 10, crit if > 10 or < 0
|
||||
$level = $ERRORS{CRITICAL}
|
||||
if ($value > $1 || $value < 0);
|
||||
} elsif ($criticalrange =~ /^([-+]?[0-9]*\.?[0-9]+):$/) {
|
||||
# critical = 10:, crit if < 10
|
||||
$level = $ERRORS{CRITICAL}
|
||||
if ($value < $1);
|
||||
} elsif ($criticalrange =~ /^~:([-+]?[0-9]*\.?[0-9]+)$/) {
|
||||
# critical = ~:10, crit if > 10
|
||||
$level = $ERRORS{CRITICAL}
|
||||
if ($value > $1);
|
||||
} elsif ($criticalrange =~ /^([-+]?[0-9]*\.?[0-9]+):([-+]?[0-9]*\.?[0-9]+)$/) {
|
||||
# critical = 10:20, crit if < 10 or > 20
|
||||
$level = $ERRORS{CRITICAL}
|
||||
if ($value < $1 || $value > $2);
|
||||
} elsif ($criticalrange =~ /^@([-+]?[0-9]*\.?[0-9]+):([-+]?[0-9]*\.?[0-9]+)$/) {
|
||||
# critical = @10:20, crit if >= 10 and <= 20
|
||||
$level = $ERRORS{CRITICAL}
|
||||
if ($value >= $1 && $value <= $2);
|
||||
}
|
||||
return $level;
|
||||
}
|
||||
|
||||
sub strequal {
|
||||
my($self, $str1, $str2) = @_;
|
||||
return 1 if ! defined $str1 && ! defined $str2;
|
||||
return 0 if ! defined $str1 && defined $str2;
|
||||
return 0 if defined $str1 && ! defined $str2;
|
||||
return 1 if $str1 eq $str2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
|
@ -0,0 +1,104 @@
|
|||
package Monitoring::GLPlugin::Commandline::Extraopts;
|
||||
use strict;
|
||||
use File::Basename;
|
||||
use strict;
|
||||
|
||||
sub new {
|
||||
my $class = shift;
|
||||
my %params = @_;
|
||||
my $self = {
|
||||
file => $params{file},
|
||||
commandline => $params{commandline},
|
||||
config => {},
|
||||
section => 'default_no_section',
|
||||
};
|
||||
bless $self, $class;
|
||||
$self->prepare_file_and_section();
|
||||
$self->init();
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub prepare_file_and_section {
|
||||
my $self = shift;
|
||||
if (! defined $self->{file}) {
|
||||
# ./check_stuff --extra-opts
|
||||
$self->{section} = basename($0);
|
||||
$self->{file} = $self->get_default_file();
|
||||
} elsif ($self->{file} =~ /^[^@]+$/) {
|
||||
# ./check_stuff --extra-opts=special_opts
|
||||
$self->{section} = $self->{file};
|
||||
$self->{file} = $self->get_default_file();
|
||||
} elsif ($self->{file} =~ /^@(.*)/) {
|
||||
# ./check_stuff --extra-opts=@/etc/myconfig.ini
|
||||
$self->{section} = basename($0);
|
||||
$self->{file} = $1;
|
||||
} elsif ($self->{file} =~ /^(.*?)@(.*)/) {
|
||||
# ./check_stuff --extra-opts=special_opts@/etc/myconfig.ini
|
||||
$self->{section} = $1;
|
||||
$self->{file} = $2;
|
||||
}
|
||||
}
|
||||
|
||||
sub get_default_file {
|
||||
my $self = shift;
|
||||
foreach my $default (qw(/etc/nagios/plugins.ini
|
||||
/usr/local/nagios/etc/plugins.ini
|
||||
/usr/local/etc/nagios/plugins.ini
|
||||
/etc/opt/nagios/plugins.ini
|
||||
/etc/nagios-plugins.ini
|
||||
/usr/local/etc/nagios-plugins.ini
|
||||
/etc/opt/nagios-plugins.ini)) {
|
||||
if (-f $default) {
|
||||
return $default;
|
||||
}
|
||||
}
|
||||
return undef;
|
||||
}
|
||||
|
||||
sub init {
|
||||
my $self = shift;
|
||||
if (! defined $self->{file}) {
|
||||
$self->{errors} = sprintf 'no extra-opts file specified and no default file found';
|
||||
} elsif (! -f $self->{file}) {
|
||||
$self->{errors} = sprintf 'could not open %s', $self->{file};
|
||||
} else {
|
||||
my $data = do { local (@ARGV, $/) = $self->{file}; <> };
|
||||
my $in_section = 'default_no_section';
|
||||
foreach my $line (split(/\n/, $data)) {
|
||||
if ($line =~ /\[(.*)\]/) {
|
||||
$in_section = $1;
|
||||
} elsif ($line =~ /(.*?)\s*=\s*(.*)/) {
|
||||
$self->{config}->{$in_section}->{$1} = $2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub is_valid {
|
||||
my $self = shift;
|
||||
return ! exists $self->{errors};
|
||||
}
|
||||
|
||||
sub overwrite {
|
||||
my $self = shift;
|
||||
if (scalar(keys %{$self->{config}->{default_no_section}}) > 0) {
|
||||
foreach (keys %{$self->{config}->{default_no_section}}) {
|
||||
$self->{commandline}->{$_} = $self->{config}->{default_no_section}->{$_};
|
||||
}
|
||||
}
|
||||
if (exists $self->{config}->{$self->{section}}) {
|
||||
foreach (keys %{$self->{config}->{$self->{section}}}) {
|
||||
$self->{commandline}->{$_} = $self->{config}->{$self->{section}}->{$_};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub errors {
|
||||
my $self = shift;
|
||||
return $self->{errors} || "";
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
|
@ -0,0 +1,265 @@
|
|||
package Monitoring::GLPlugin::Commandline::Getopt;
|
||||
use strict;
|
||||
use File::Basename;
|
||||
use Getopt::Long qw(:config no_ignore_case bundling);
|
||||
|
||||
# Standard defaults
|
||||
my %DEFAULT = (
|
||||
timeout => 15,
|
||||
verbose => 0,
|
||||
license =>
|
||||
"This monitoring plugin is free software, and comes with ABSOLUTELY NO WARRANTY.
|
||||
It may be used, redistributed and/or modified under the terms of the GNU
|
||||
General Public Licence (see http://www.fsf.org/licensing/licenses/gpl.txt).",
|
||||
);
|
||||
# Standard arguments
|
||||
my @ARGS = ({
|
||||
spec => 'usage|?',
|
||||
help => "-?, --usage\n Print usage information",
|
||||
}, {
|
||||
spec => 'help|h',
|
||||
help => "-h, --help\n Print detailed help screen",
|
||||
}, {
|
||||
spec => 'version|V',
|
||||
help => "-V, --version\n Print version information",
|
||||
}, {
|
||||
#spec => 'extra-opts:s@',
|
||||
#help => "--extra-opts=[<section>[@<config_file>]]\n Section and/or config_file from which to load extra options (may repeat)",
|
||||
}, {
|
||||
spec => 'timeout|t=i',
|
||||
help => sprintf("-t, --timeout=INTEGER\n Seconds before plugin times out (default: %s)", $DEFAULT{timeout}),
|
||||
default => $DEFAULT{timeout},
|
||||
}, {
|
||||
spec => 'verbose|v+',
|
||||
help => "-v, --verbose\n Show details for command-line debugging (can repeat up to 3 times)",
|
||||
default => $DEFAULT{verbose},
|
||||
},
|
||||
);
|
||||
# Standard arguments we traditionally display last in the help output
|
||||
my %DEFER_ARGS = map { $_ => 1 } qw(timeout verbose);
|
||||
|
||||
sub _init {
|
||||
my ($self, %params) = @_;
|
||||
# Check params
|
||||
my %attr = (
|
||||
usage => 1,
|
||||
version => 0,
|
||||
url => 0,
|
||||
plugin => { default => $Monitoring::GLPlugin::pluginname },
|
||||
blurb => 0,
|
||||
extra => 0,
|
||||
'extra-opts' => 0,
|
||||
license => { default => $DEFAULT{license} },
|
||||
timeout => { default => $DEFAULT{timeout} },
|
||||
);
|
||||
|
||||
# Add attr to private _attr hash (except timeout)
|
||||
$self->{timeout} = delete $attr{timeout};
|
||||
$self->{_attr} = { %attr };
|
||||
foreach (keys %{$self->{_attr}}) {
|
||||
if (exists $params{$_}) {
|
||||
$self->{_attr}->{$_} = $params{$_};
|
||||
} else {
|
||||
$self->{_attr}->{$_} = $self->{_attr}->{$_}->{default}
|
||||
if ref ($self->{_attr}->{$_}) eq 'HASH' &&
|
||||
exists $self->{_attr}->{$_}->{default};
|
||||
}
|
||||
}
|
||||
# Chomp _attr values
|
||||
chomp foreach values %{$self->{_attr}};
|
||||
|
||||
# Setup initial args list
|
||||
$self->{_args} = [ grep { exists $_->{spec} } @ARGS ];
|
||||
|
||||
$self
|
||||
}
|
||||
|
||||
sub new {
|
||||
my ($class, @params) = @_;
|
||||
require Monitoring::GLPlugin::Commandline::Extraopts
|
||||
if ! grep /BEGIN/, keys %Monitoring::GLPlugin::Commandline::Extraopts::;
|
||||
my $self = bless {}, $class;
|
||||
$self->_init(@params);
|
||||
}
|
||||
|
||||
sub decode_rfc3986 {
|
||||
my ($self, $password) = @_;
|
||||
if ($password && $password =~ /^rfc3986:\/\/(.*)/) {
|
||||
$password = $1;
|
||||
$password =~ s/%([A-Za-z0-9]{2})/chr(hex($1))/seg;
|
||||
}
|
||||
return $password;
|
||||
}
|
||||
|
||||
sub add_arg {
|
||||
my ($self, %arg) = @_;
|
||||
push (@{$self->{_args}}, \%arg);
|
||||
}
|
||||
|
||||
sub mod_arg {
|
||||
my ($self, $argname, %arg) = @_;
|
||||
foreach my $old_arg (@{$self->{_args}}) {
|
||||
next unless $old_arg->{spec} =~ /(\w+).*/ && $argname eq $1;
|
||||
foreach my $key (keys %arg) {
|
||||
$old_arg->{$key} = $arg{$key};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub getopts {
|
||||
my ($self) = @_;
|
||||
my %commandline = ();
|
||||
$self->{opts}->{all_my_opts} = {};
|
||||
my @params = map { $_->{spec} } @{$self->{_args}};
|
||||
if (! GetOptions(\%commandline, @params)) {
|
||||
$self->print_help();
|
||||
exit 3;
|
||||
} else {
|
||||
no strict 'refs';
|
||||
no warnings 'redefine';
|
||||
if (exists $commandline{'extra-opts'}) {
|
||||
# read the extra file and overwrite other parameters
|
||||
my $extras = Monitoring::GLPlugin::Commandline::Extraopts->new(
|
||||
file => $commandline{'extra-opts'},
|
||||
commandline => \%commandline
|
||||
);
|
||||
if (! $extras->is_valid()) {
|
||||
printf "UNKNOWN - extra-opts are not valid: %s\n", $extras->errors();
|
||||
exit 3;
|
||||
} else {
|
||||
$extras->overwrite();
|
||||
}
|
||||
}
|
||||
do { $self->print_help(); exit 0; } if $commandline{help};
|
||||
do { $self->print_version(); exit 0 } if $commandline{version};
|
||||
do { $self->print_usage(); exit 3 } if $commandline{usage};
|
||||
foreach (map { $_->{spec} =~ /^([\w\-]+)/; $1; } @{$self->{_args}}) {
|
||||
my $field = $_;
|
||||
*{"$field"} = sub {
|
||||
return $self->{opts}->{$field};
|
||||
};
|
||||
}
|
||||
*{"all_my_opts"} = sub {
|
||||
return $self->{opts}->{all_my_opts};
|
||||
};
|
||||
foreach (@{$self->{_args}}) {
|
||||
$_->{spec} =~ /^([\w\-]+)/;
|
||||
my $spec = $1;
|
||||
my $envname = uc $spec;
|
||||
$envname =~ s/\-/_/g;
|
||||
if (! exists $commandline{$spec}) {
|
||||
# Kommandozeile hat oberste Prioritaet
|
||||
# Also: --option ueberschreibt NAGIOS__HOSTOPTION
|
||||
# Aaaaber: extra-opts haben immer noch Vorrang vor allem anderen.
|
||||
# https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html
|
||||
# beschreibt das anders, Posix-Tools verhalten sich auch entsprechend.
|
||||
# Irgendwann wird das hier daher umgeschrieben, so dass extra-opts
|
||||
# die niedrigste Prioritaet erhalten.
|
||||
if (exists $ENV{'NAGIOS__SERVICE'.$envname}) {
|
||||
$commandline{$spec} = $ENV{'NAGIOS__SERVICE'.$envname};
|
||||
} elsif (exists $ENV{'NAGIOS__HOST'.$envname}) {
|
||||
$commandline{$spec} = $ENV{'NAGIOS__HOST'.$envname};
|
||||
}
|
||||
}
|
||||
$self->{opts}->{$spec} = $_->{default};
|
||||
}
|
||||
foreach (map { $_->{spec} =~ /^([\w\-]+)/; $1; }
|
||||
grep { exists $_->{required} && $_->{required} } @{$self->{_args}}) {
|
||||
do { $self->print_usage(); exit 3 } if ! exists $commandline{$_};
|
||||
}
|
||||
foreach (grep { exists $_->{default} } @{$self->{_args}}) {
|
||||
$_->{spec} =~ /^([\w\-]+)/;
|
||||
my $spec = $1;
|
||||
$self->{opts}->{$spec} = $_->{default};
|
||||
}
|
||||
foreach (keys %commandline) {
|
||||
$self->{opts}->{$_} = $commandline{$_};
|
||||
$self->{opts}->{all_my_opts}->{$_} = $commandline{$_};
|
||||
}
|
||||
foreach (grep { exists $_->{env} } @{$self->{_args}}) {
|
||||
$_->{spec} =~ /^([\w\-]+)/;
|
||||
my $spec = $1;
|
||||
if (exists $ENV{'NAGIOS__HOST'.$_->{env}}) {
|
||||
$self->{opts}->{$spec} = $ENV{'NAGIOS__HOST'.$_->{env}};
|
||||
}
|
||||
if (exists $ENV{'NAGIOS__SERVICE'.$_->{env}}) {
|
||||
$self->{opts}->{$spec} = $ENV{'NAGIOS__SERVICE'.$_->{env}};
|
||||
}
|
||||
}
|
||||
foreach (grep { exists $_->{aliasfor} } @{$self->{_args}}) {
|
||||
my $field = $_->{aliasfor};
|
||||
$_->{spec} =~ /^([\w\-]+)/;
|
||||
my $aliasfield = $1;
|
||||
next if $self->{opts}->{$field};
|
||||
$self->{opts}->{$field} = $self->{opts}->{$aliasfield};
|
||||
*{"$field"} = sub {
|
||||
return $self->{opts}->{$field};
|
||||
};
|
||||
}
|
||||
foreach (grep { exists $_->{decode} } @{$self->{_args}}) {
|
||||
my $decoding = $_->{decode};
|
||||
$_->{spec} =~ /^([\w\-]+)/;
|
||||
my $spec = $1;
|
||||
if (exists $self->{opts}->{$spec}) {
|
||||
if ($decoding eq "rfc3986") {
|
||||
$self->{opts}->{$spec} =
|
||||
$self->decode_rfc3986($self->{opts}->{$spec});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub create_opt {
|
||||
my ($self, $key) = @_;
|
||||
no strict 'refs';
|
||||
*{"$key"} = sub {
|
||||
return $self->{opts}->{$key};
|
||||
};
|
||||
}
|
||||
|
||||
sub override_opt {
|
||||
my ($self, $key, $value) = @_;
|
||||
$self->{opts}->{$key} = $value;
|
||||
}
|
||||
|
||||
sub get {
|
||||
my ($self, $opt) = @_;
|
||||
return $self->{opts}->{$opt};
|
||||
}
|
||||
|
||||
sub print_help {
|
||||
my ($self) = @_;
|
||||
$self->print_version();
|
||||
printf "\n%s\n", $self->{_attr}->{license};
|
||||
printf "\n%s\n\n", $self->{_attr}->{blurb};
|
||||
$self->print_usage();
|
||||
foreach (grep {
|
||||
! (exists $_->{hidden} && $_->{hidden})
|
||||
} @{$self->{_args}}) {
|
||||
printf " %s\n", $_->{help};
|
||||
}
|
||||
}
|
||||
|
||||
sub print_usage {
|
||||
my ($self) = @_;
|
||||
printf $self->{_attr}->{usage}, $self->{_attr}->{plugin};
|
||||
print "\n";
|
||||
}
|
||||
|
||||
sub print_version {
|
||||
my ($self) = @_;
|
||||
printf "%s %s", $self->{_attr}->{plugin}, $self->{_attr}->{version};
|
||||
printf " [%s]", $self->{_attr}->{url} if $self->{_attr}->{url};
|
||||
print "\n";
|
||||
}
|
||||
|
||||
sub print_license {
|
||||
my ($self) = @_;
|
||||
printf "%s\n", $self->{_attr}->{license};
|
||||
print "\n";
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
|
@ -0,0 +1,70 @@
|
|||
package Monitoring::GLPlugin::Item;
|
||||
our @ISA = qw(Monitoring::GLPlugin);
|
||||
|
||||
use strict;
|
||||
|
||||
sub new {
|
||||
my ($class, %params) = @_;
|
||||
my $self = {
|
||||
blacklisted => 0,
|
||||
info => undef,
|
||||
extendedinfo => undef,
|
||||
};
|
||||
bless $self, $class;
|
||||
$self->init(%params);
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub check {
|
||||
my ($self, $lists) = @_;
|
||||
my @lists = $lists ? @{$lists} : grep { ref($self->{$_}) eq "ARRAY" } keys %{$self};
|
||||
foreach my $list (@lists) {
|
||||
$self->add_info('checking '.$list);
|
||||
foreach my $element (@{$self->{$list}}) {
|
||||
$element->blacklist() if $self->is_blacklisted();
|
||||
$element->check();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub init_subsystems {
|
||||
my ($self, $subsysref) = @_;
|
||||
foreach (@{$subsysref}) {
|
||||
my ($subsys, $class) = @{$_};
|
||||
$self->{$subsys} = $class->new()
|
||||
if (! $self->opts->subsystem || grep {
|
||||
$_ eq $subsys;
|
||||
} map {
|
||||
s/^\s+|\s+$//g;
|
||||
$_;
|
||||
} split /,/, $self->opts->subsystem);
|
||||
}
|
||||
}
|
||||
|
||||
sub check_subsystems {
|
||||
my ($self) = @_;
|
||||
my @subsystems = grep { $_ =~ /.*_subsystem$/ } keys %{$self};
|
||||
foreach (@subsystems) {
|
||||
$self->{$_}->check();
|
||||
}
|
||||
$self->reduce_messages_short(join(", ",
|
||||
map {
|
||||
sprintf "%s working fine", $_;
|
||||
} map {
|
||||
s/^\s+|\s+$//g;
|
||||
$_;
|
||||
} split /,/, $self->opts->subsystem
|
||||
)) if $self->opts->subsystem;
|
||||
}
|
||||
|
||||
sub dump_subsystems {
|
||||
my ($self) = @_;
|
||||
my @subsystems = grep { $_ =~ /.*_subsystem$/ } keys %{$self};
|
||||
foreach (@subsystems) {
|
||||
$self->{$_}->dump();
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,38 @@
|
|||
package Monitoring::GLPlugin::SNMP::CSF;
|
||||
#our @ISA = qw(Monitoring::GLPlugin::SNMP);
|
||||
use Digest::MD5 qw(md5_hex);
|
||||
use strict;
|
||||
|
||||
sub create_statefile {
|
||||
my ($self, %params) = @_;
|
||||
my $extension = "";
|
||||
$extension .= $params{name} ? '_'.$params{name} : '';
|
||||
if ($self->opts->community) {
|
||||
$extension .= md5_hex($self->opts->community);
|
||||
}
|
||||
if ($self->opts->contextname) {
|
||||
$extension .= $self->opts->contextname;
|
||||
}
|
||||
$extension =~ s/\//_/g;
|
||||
$extension =~ s/\(/_/g;
|
||||
$extension =~ s/\)/_/g;
|
||||
$extension =~ s/\*/_/g;
|
||||
$extension =~ s/\s/_/g;
|
||||
if ($self->opts->snmpwalk && ! $self->opts->hostname) {
|
||||
return sprintf "%s/%s_%s%s", $self->statefilesdir(),
|
||||
'snmpwalk.file'.md5_hex($self->opts->snmpwalk),
|
||||
$self->clean_path($self->mode), $self->clean_path(lc $extension);
|
||||
} elsif ($self->opts->snmpwalk && $self->opts->hostname eq "walkhost") {
|
||||
return sprintf "%s/%s_%s%s", $self->statefilesdir(),
|
||||
'snmpwalk.file'.md5_hex($self->opts->snmpwalk),
|
||||
$self->clean_path($self->mode), $self->clean_path(lc $extension);
|
||||
} else {
|
||||
return sprintf "%s/%s_%s%s", $self->statefilesdir(),
|
||||
$self->opts->hostname,
|
||||
$self->clean_path($self->mode), $self->clean_path(lc $extension);
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
|
@ -0,0 +1,7 @@
|
|||
package Monitoring::GLPlugin::SNMP::Item;
|
||||
our @ISA = qw(Monitoring::GLPlugin::SNMP::CSF Monitoring::GLPlugin::Item Monitoring::GLPlugin::SNMP);
|
||||
use strict;
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
|
@ -0,0 +1,16 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids;
|
||||
our @ISA = qw(Monitoring::GLPlugin::SNMP);
|
||||
|
||||
{
|
||||
no warnings qw(once);
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::discover_ids = {};
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids = {};
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids = {};
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions = {};
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin = {};
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ADONISDNSMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ADONIS-DNS-MIB'} = {
|
||||
url => '',
|
||||
name => 'ADONIS-DNS-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'ADONIS-DNS-MIB'} =
|
||||
'1.3.6.1.4.1.13315.100.101';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ADONIS-DNS-MIB'} = {
|
||||
'adonis' => '1.3.6.1.4.1.13315.100.101',
|
||||
'adonisObjects' => '1.3.6.1.4.1.13315.100.101.1',
|
||||
'dns' => '1.3.6.1.4.1.13315.100.101.1.1',
|
||||
'dnsDaemon' => '1.3.6.1.4.1.13315.100.101.1.1.1',
|
||||
'dnsDaemonRunning' => '1.3.6.1.4.1.13315.100.101.1.1.1.1',
|
||||
'dnsDaemonNumberOfZones' => '1.3.6.1.4.1.13315.100.101.1.1.1.2',
|
||||
'dnsDaemonDebugLevel' => '1.3.6.1.4.1.13315.100.101.1.1.1.3',
|
||||
'dnsDaemonZoneTransfersInProgress' => '1.3.6.1.4.1.13315.100.101.1.1.1.4',
|
||||
'dnsDaemonZoneTransfersDeferred' => '1.3.6.1.4.1.13315.100.101.1.1.1.5',
|
||||
'dnsDaemonSOAQueriesInProgress' => '1.3.6.1.4.1.13315.100.101.1.1.1.6',
|
||||
'dnsDaemonQueryLoggingState' => '1.3.6.1.4.1.13315.100.101.1.1.1.7',
|
||||
'dnsDaemonZoneTransferFailure' => '1.3.6.1.4.1.13315.100.101.1.1.1.8',
|
||||
'dnsStats' => '1.3.6.1.4.1.13315.100.101.1.1.2',
|
||||
'dnsStatsSuccess' => '1.3.6.1.4.1.13315.100.101.1.1.2.1',
|
||||
'dnsStatsReferral' => '1.3.6.1.4.1.13315.100.101.1.1.2.2',
|
||||
'dnsStatsNXRRSet' => '1.3.6.1.4.1.13315.100.101.1.1.2.3',
|
||||
'dnsStatsNXDomain' => '1.3.6.1.4.1.13315.100.101.1.1.2.4',
|
||||
'dnsStatsRecursion' => '1.3.6.1.4.1.13315.100.101.1.1.2.5',
|
||||
'dnsStatsFailure' => '1.3.6.1.4.1.13315.100.101.1.1.2.6',
|
||||
'dhcp' => '1.3.6.1.4.1.13315.100.101.1.2',
|
||||
'dhcpDaemon' => '1.3.6.1.4.1.13315.100.101.1.2.1',
|
||||
'dhcpDaemonRunning' => '1.3.6.1.4.1.13315.100.101.1.2.1.1',
|
||||
'dhcpDaemonSubnetAlert' => '1.3.6.1.4.1.13315.100.101.1.2.1.2',
|
||||
'dhcpDaemonLeaseStatsSuccess' => '1.3.6.1.4.1.13315.100.101.1.2.1.3',
|
||||
'dhcpFailOverState' => '1.3.6.1.4.1.13315.100.101.1.2.1.4',
|
||||
'dhcpStats' => '1.3.6.1.4.1.13315.100.101.1.2.2',
|
||||
'dhcpLeaseTable' => '1.3.6.1.4.1.13315.100.101.1.2.2.1',
|
||||
'dhcpLeaseEntry' => '1.3.6.1.4.1.13315.100.101.1.2.2.1.1',
|
||||
'dhcpIP' => '1.3.6.1.4.1.13315.100.101.1.2.2.1.1.1',
|
||||
'dhcpLeaseStartTime' => '1.3.6.1.4.1.13315.100.101.1.2.2.1.1.2',
|
||||
'dhcpLeaseEndTime' => '1.3.6.1.4.1.13315.100.101.1.2.2.1.1.3',
|
||||
'dhcpLeaseTimeStamp' => '1.3.6.1.4.1.13315.100.101.1.2.2.1.1.4',
|
||||
'dhcpLeaseBindState' => '1.3.6.1.4.1.13315.100.101.1.2.2.1.1.5',
|
||||
'dhcpLeaseBindStateDefinition' => 'ADONIS-DNS-MIB::dhcpLeaseBindState',
|
||||
'dhcpLeaseHardwareAddress' => '1.3.6.1.4.1.13315.100.101.1.2.2.1.1.6',
|
||||
'dhcpLeaseHostname' => '1.3.6.1.4.1.13315.100.101.1.2.2.1.1.7',
|
||||
'dhcpSubnetTable' => '1.3.6.1.4.1.13315.100.101.1.2.2.2',
|
||||
'dhcpSubnetEntry' => '1.3.6.1.4.1.13315.100.101.1.2.2.2.1',
|
||||
'dhcpSubnetIP' => '1.3.6.1.4.1.13315.100.101.1.2.2.2.1.1',
|
||||
'dhcpSubnetMask' => '1.3.6.1.4.1.13315.100.101.1.2.2.2.1.2',
|
||||
'dhcpSubnetSize' => '1.3.6.1.4.1.13315.100.101.1.2.2.2.1.3',
|
||||
'dhcpSubnetUsed' => '1.3.6.1.4.1.13315.100.101.1.2.2.2.1.4',
|
||||
'dhcpSubnetAlert' => '1.3.6.1.4.1.13315.100.101.1.2.2.2.1.5',
|
||||
'dhcpPoolTable' => '1.3.6.1.4.1.13315.100.101.1.2.2.3',
|
||||
'dhcpPoolEntry' => '1.3.6.1.4.1.13315.100.101.1.2.2.3.1',
|
||||
'dhcpPoolSubnetIP' => '1.3.6.1.4.1.13315.100.101.1.2.2.3.1.1',
|
||||
'dhcpPoolStartIP' => '1.3.6.1.4.1.13315.100.101.1.2.2.3.1.2',
|
||||
'dhcpPoolEndIP' => '1.3.6.1.4.1.13315.100.101.1.2.2.3.1.3',
|
||||
'dhcpPoolSize' => '1.3.6.1.4.1.13315.100.101.1.2.2.3.1.4',
|
||||
'dhcpPoolUsed' => '1.3.6.1.4.1.13315.100.101.1.2.2.3.1.5',
|
||||
'dhcpPoolAlert' => '1.3.6.1.4.1.13315.100.101.1.2.2.3.1.6',
|
||||
'dhcpConfig' => '1.3.6.1.4.1.13315.100.101.1.2.3',
|
||||
'dhcpFixedIPTable' => '1.3.6.1.4.1.13315.100.101.1.2.3.1',
|
||||
'dhcpFixedIPEntry' => '1.3.6.1.4.1.13315.100.101.1.2.3.1.1',
|
||||
'dhcpFixedIP' => '1.3.6.1.4.1.13315.100.101.1.2.3.1.1.1',
|
||||
'ha' => '1.3.6.1.4.1.13315.100.101.1.3',
|
||||
'haService' => '1.3.6.1.4.1.13315.100.101.1.3.1',
|
||||
'haServiceRunning' => '1.3.6.1.4.1.13315.100.101.1.3.1.1',
|
||||
'haServiceNodeType' => '1.3.6.1.4.1.13315.100.101.1.3.1.2',
|
||||
'haReplicationBinding' => '1.3.6.1.4.1.13315.100.101.1.3.1.3',
|
||||
'commandServer' => '1.3.6.1.4.1.13315.100.101.1.4',
|
||||
'commandServerDaemon' => '1.3.6.1.4.1.13315.100.101.1.4.1',
|
||||
'commandServerDaemonRunning' => '1.3.6.1.4.1.13315.100.101.1.4.1.1',
|
||||
'lcd' => '1.3.6.1.4.1.13315.100.101.1.5',
|
||||
'lcdDaemon' => '1.3.6.1.4.1.13315.100.101.1.5.1',
|
||||
'licenseValid' => '1.3.6.1.4.1.13315.100.101.1.5.1.1',
|
||||
'licenseExpiry' => '1.3.6.1.4.1.13315.100.101.1.5.1.2',
|
||||
'tftp' => '1.3.6.1.4.1.13315.100.101.1.6',
|
||||
'tftpDaemon' => '1.3.6.1.4.1.13315.100.101.1.6.1',
|
||||
'tftpDaemonRunning' => '1.3.6.1.4.1.13315.100.101.1.6.1.1',
|
||||
'system' => '1.3.6.1.4.1.13315.100.101.1.7',
|
||||
'systemDaemon' => '1.3.6.1.4.1.13315.100.101.1.7.1',
|
||||
'systemState' => '1.3.6.1.4.1.13315.100.101.1.7.1.1',
|
||||
'adonisTraps' => '1.3.6.1.4.1.13315.100.101.2',
|
||||
'trapDNS' => '1.3.6.1.4.1.13315.100.101.2.1',
|
||||
'trapHA' => '1.3.6.1.4.1.13315.100.101.2.2',
|
||||
'trapCommandServer' => '1.3.6.1.4.1.13315.100.101.2.3',
|
||||
'trapDHCP' => '1.3.6.1.4.1.13315.100.101.2.4',
|
||||
'trapReplication' => '1.3.6.1.4.1.13315.100.101.2.5',
|
||||
'trapTFTP' => '1.3.6.1.4.1.13315.100.101.2.6',
|
||||
'trapSystem' => '1.3.6.1.4.1.13315.100.101.2.7',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ADONIS-DNS-MIB'} = {
|
||||
'dhcpLeaseBindState' => {
|
||||
'0' => 'free',
|
||||
'1' => 'active',
|
||||
'2' => 'fixed',
|
||||
},
|
||||
};
|
|
@ -0,0 +1,284 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ADSLLINEMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ADSL-LINE-MIB'} = {
|
||||
url => '',
|
||||
name => 'ADSL-LINE-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'ADSL-LINE-MIB'} =
|
||||
'1.3.6.1.2.1.10.94.1';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ADSL-LINE-MIB'} = {
|
||||
adslMIB => '1.3.6.1.2.1.10.94',
|
||||
adslLineMib => '1.3.6.1.2.1.10.94.1',
|
||||
adslMibObjects => '1.3.6.1.2.1.10.94.1.1',
|
||||
adslLineTable => '1.3.6.1.2.1.10.94.1.1.1',
|
||||
adslLineEntry => '1.3.6.1.2.1.10.94.1.1.1.1',
|
||||
adslLineCoding => '1.3.6.1.2.1.10.94.1.1.1.1.1',
|
||||
adslLineCodingDefinition => 'ADSL-LINE-MIB::adslLineCoding',
|
||||
adslLineType => '1.3.6.1.2.1.10.94.1.1.1.1.2',
|
||||
adslLineTypeDefinition => 'ADSL-LINE-MIB::adslLineType',
|
||||
adslLineSpecific => '1.3.6.1.2.1.10.94.1.1.1.1.3',
|
||||
adslLineConfProfile => '1.3.6.1.2.1.10.94.1.1.1.1.4',
|
||||
adslLineAlarmConfProfile => '1.3.6.1.2.1.10.94.1.1.1.1.5',
|
||||
adslAtucPhysTable => '1.3.6.1.2.1.10.94.1.1.2',
|
||||
adslAtucPhysEntry => '1.3.6.1.2.1.10.94.1.1.2.1',
|
||||
adslAtucInvSerialNumber => '1.3.6.1.2.1.10.94.1.1.2.1.1',
|
||||
adslAtucInvVendorID => '1.3.6.1.2.1.10.94.1.1.2.1.2',
|
||||
adslAtucInvVersionNumber => '1.3.6.1.2.1.10.94.1.1.2.1.3',
|
||||
adslAtucCurrSnrMgn => '1.3.6.1.2.1.10.94.1.1.2.1.4',
|
||||
adslAtucCurrAtn => '1.3.6.1.2.1.10.94.1.1.2.1.5',
|
||||
adslAtucCurrStatus => '1.3.6.1.2.1.10.94.1.1.2.1.6',
|
||||
adslAtucCurrOutputPwr => '1.3.6.1.2.1.10.94.1.1.2.1.7',
|
||||
adslAtucCurrAttainableRate => '1.3.6.1.2.1.10.94.1.1.2.1.8',
|
||||
adslAturPhysTable => '1.3.6.1.2.1.10.94.1.1.3',
|
||||
adslAturPhysEntry => '1.3.6.1.2.1.10.94.1.1.3.1',
|
||||
adslAturInvSerialNumber => '1.3.6.1.2.1.10.94.1.1.3.1.1',
|
||||
adslAturInvVendorID => '1.3.6.1.2.1.10.94.1.1.3.1.2',
|
||||
adslAturInvVersionNumber => '1.3.6.1.2.1.10.94.1.1.3.1.3',
|
||||
adslAturCurrSnrMgn => '1.3.6.1.2.1.10.94.1.1.3.1.4',
|
||||
adslAturCurrAtn => '1.3.6.1.2.1.10.94.1.1.3.1.5',
|
||||
adslAturCurrStatus => '1.3.6.1.2.1.10.94.1.1.3.1.6',
|
||||
adslAturCurrOutputPwr => '1.3.6.1.2.1.10.94.1.1.3.1.7',
|
||||
adslAturCurrAttainableRate => '1.3.6.1.2.1.10.94.1.1.3.1.8',
|
||||
adslAtucChanTable => '1.3.6.1.2.1.10.94.1.1.4',
|
||||
adslAtucChanEntry => '1.3.6.1.2.1.10.94.1.1.4.1',
|
||||
adslAtucChanInterleaveDelay => '1.3.6.1.2.1.10.94.1.1.4.1.1',
|
||||
adslAtucChanCurrTxRate => '1.3.6.1.2.1.10.94.1.1.4.1.2',
|
||||
adslAtucChanPrevTxRate => '1.3.6.1.2.1.10.94.1.1.4.1.3',
|
||||
adslAtucChanCrcBlockLength => '1.3.6.1.2.1.10.94.1.1.4.1.4',
|
||||
adslAturChanTable => '1.3.6.1.2.1.10.94.1.1.5',
|
||||
adslAturChanEntry => '1.3.6.1.2.1.10.94.1.1.5.1',
|
||||
adslAturChanInterleaveDelay => '1.3.6.1.2.1.10.94.1.1.5.1.1',
|
||||
adslAturChanCurrTxRate => '1.3.6.1.2.1.10.94.1.1.5.1.2',
|
||||
adslAturChanPrevTxRate => '1.3.6.1.2.1.10.94.1.1.5.1.3',
|
||||
adslAturChanCrcBlockLength => '1.3.6.1.2.1.10.94.1.1.5.1.4',
|
||||
adslAtucPerfDataTable => '1.3.6.1.2.1.10.94.1.1.6',
|
||||
adslAtucPerfDataEntry => '1.3.6.1.2.1.10.94.1.1.6.1',
|
||||
adslAtucPerfLofs => '1.3.6.1.2.1.10.94.1.1.6.1.1',
|
||||
adslAtucPerfLoss => '1.3.6.1.2.1.10.94.1.1.6.1.2',
|
||||
adslAtucPerfLols => '1.3.6.1.2.1.10.94.1.1.6.1.3',
|
||||
adslAtucPerfLprs => '1.3.6.1.2.1.10.94.1.1.6.1.4',
|
||||
adslAtucPerfESs => '1.3.6.1.2.1.10.94.1.1.6.1.5',
|
||||
adslAtucPerfInits => '1.3.6.1.2.1.10.94.1.1.6.1.6',
|
||||
adslAtucPerfValidIntervals => '1.3.6.1.2.1.10.94.1.1.6.1.7',
|
||||
adslAtucPerfInvalidIntervals => '1.3.6.1.2.1.10.94.1.1.6.1.8',
|
||||
adslAtucPerfCurr15MinTimeElapsed => '1.3.6.1.2.1.10.94.1.1.6.1.9',
|
||||
adslAtucPerfCurr15MinLofs => '1.3.6.1.2.1.10.94.1.1.6.1.10',
|
||||
adslAtucPerfCurr15MinLoss => '1.3.6.1.2.1.10.94.1.1.6.1.11',
|
||||
adslAtucPerfCurr15MinLols => '1.3.6.1.2.1.10.94.1.1.6.1.12',
|
||||
adslAtucPerfCurr15MinLprs => '1.3.6.1.2.1.10.94.1.1.6.1.13',
|
||||
adslAtucPerfCurr15MinESs => '1.3.6.1.2.1.10.94.1.1.6.1.14',
|
||||
adslAtucPerfCurr15MinInits => '1.3.6.1.2.1.10.94.1.1.6.1.15',
|
||||
adslAtucPerfCurr1DayTimeElapsed => '1.3.6.1.2.1.10.94.1.1.6.1.16',
|
||||
adslAtucPerfCurr1DayLofs => '1.3.6.1.2.1.10.94.1.1.6.1.17',
|
||||
adslAtucPerfCurr1DayLoss => '1.3.6.1.2.1.10.94.1.1.6.1.18',
|
||||
adslAtucPerfCurr1DayLols => '1.3.6.1.2.1.10.94.1.1.6.1.19',
|
||||
adslAtucPerfCurr1DayLprs => '1.3.6.1.2.1.10.94.1.1.6.1.20',
|
||||
adslAtucPerfCurr1DayESs => '1.3.6.1.2.1.10.94.1.1.6.1.21',
|
||||
adslAtucPerfCurr1DayInits => '1.3.6.1.2.1.10.94.1.1.6.1.22',
|
||||
adslAtucPerfPrev1DayMoniSecs => '1.3.6.1.2.1.10.94.1.1.6.1.23',
|
||||
adslAtucPerfPrev1DayLofs => '1.3.6.1.2.1.10.94.1.1.6.1.24',
|
||||
adslAtucPerfPrev1DayLoss => '1.3.6.1.2.1.10.94.1.1.6.1.25',
|
||||
adslAtucPerfPrev1DayLols => '1.3.6.1.2.1.10.94.1.1.6.1.26',
|
||||
adslAtucPerfPrev1DayLprs => '1.3.6.1.2.1.10.94.1.1.6.1.27',
|
||||
adslAtucPerfPrev1DayESs => '1.3.6.1.2.1.10.94.1.1.6.1.28',
|
||||
adslAtucPerfPrev1DayInits => '1.3.6.1.2.1.10.94.1.1.6.1.29',
|
||||
adslAturPerfDataTable => '1.3.6.1.2.1.10.94.1.1.7',
|
||||
adslAturPerfDataEntry => '1.3.6.1.2.1.10.94.1.1.7.1',
|
||||
adslAturPerfLofs => '1.3.6.1.2.1.10.94.1.1.7.1.1',
|
||||
adslAturPerfLoss => '1.3.6.1.2.1.10.94.1.1.7.1.2',
|
||||
adslAturPerfLprs => '1.3.6.1.2.1.10.94.1.1.7.1.3',
|
||||
adslAturPerfESs => '1.3.6.1.2.1.10.94.1.1.7.1.4',
|
||||
adslAturPerfValidIntervals => '1.3.6.1.2.1.10.94.1.1.7.1.5',
|
||||
adslAturPerfInvalidIntervals => '1.3.6.1.2.1.10.94.1.1.7.1.6',
|
||||
adslAturPerfCurr15MinTimeElapsed => '1.3.6.1.2.1.10.94.1.1.7.1.7',
|
||||
adslAturPerfCurr15MinLofs => '1.3.6.1.2.1.10.94.1.1.7.1.8',
|
||||
adslAturPerfCurr15MinLoss => '1.3.6.1.2.1.10.94.1.1.7.1.9',
|
||||
adslAturPerfCurr15MinLprs => '1.3.6.1.2.1.10.94.1.1.7.1.10',
|
||||
adslAturPerfCurr15MinESs => '1.3.6.1.2.1.10.94.1.1.7.1.11',
|
||||
adslAturPerfCurr1DayTimeElapsed => '1.3.6.1.2.1.10.94.1.1.7.1.12',
|
||||
adslAturPerfCurr1DayLofs => '1.3.6.1.2.1.10.94.1.1.7.1.13',
|
||||
adslAturPerfCurr1DayLoss => '1.3.6.1.2.1.10.94.1.1.7.1.14',
|
||||
adslAturPerfCurr1DayLprs => '1.3.6.1.2.1.10.94.1.1.7.1.15',
|
||||
adslAturPerfCurr1DayESs => '1.3.6.1.2.1.10.94.1.1.7.1.16',
|
||||
adslAturPerfPrev1DayMoniSecs => '1.3.6.1.2.1.10.94.1.1.7.1.17',
|
||||
adslAturPerfPrev1DayLofs => '1.3.6.1.2.1.10.94.1.1.7.1.18',
|
||||
adslAturPerfPrev1DayLoss => '1.3.6.1.2.1.10.94.1.1.7.1.19',
|
||||
adslAturPerfPrev1DayLprs => '1.3.6.1.2.1.10.94.1.1.7.1.20',
|
||||
adslAturPerfPrev1DayESs => '1.3.6.1.2.1.10.94.1.1.7.1.21',
|
||||
adslAtucIntervalTable => '1.3.6.1.2.1.10.94.1.1.8',
|
||||
adslAtucIntervalEntry => '1.3.6.1.2.1.10.94.1.1.8.1',
|
||||
adslAtucIntervalNumber => '1.3.6.1.2.1.10.94.1.1.8.1.1',
|
||||
adslAtucIntervalLofs => '1.3.6.1.2.1.10.94.1.1.8.1.2',
|
||||
adslAtucIntervalLoss => '1.3.6.1.2.1.10.94.1.1.8.1.3',
|
||||
adslAtucIntervalLols => '1.3.6.1.2.1.10.94.1.1.8.1.4',
|
||||
adslAtucIntervalLprs => '1.3.6.1.2.1.10.94.1.1.8.1.5',
|
||||
adslAtucIntervalESs => '1.3.6.1.2.1.10.94.1.1.8.1.6',
|
||||
adslAtucIntervalInits => '1.3.6.1.2.1.10.94.1.1.8.1.7',
|
||||
adslAtucIntervalValidData => '1.3.6.1.2.1.10.94.1.1.8.1.8',
|
||||
adslAturIntervalTable => '1.3.6.1.2.1.10.94.1.1.9',
|
||||
adslAturIntervalEntry => '1.3.6.1.2.1.10.94.1.1.9.1',
|
||||
adslAturIntervalNumber => '1.3.6.1.2.1.10.94.1.1.9.1.1',
|
||||
adslAturIntervalLofs => '1.3.6.1.2.1.10.94.1.1.9.1.2',
|
||||
adslAturIntervalLoss => '1.3.6.1.2.1.10.94.1.1.9.1.3',
|
||||
adslAturIntervalLprs => '1.3.6.1.2.1.10.94.1.1.9.1.4',
|
||||
adslAturIntervalESs => '1.3.6.1.2.1.10.94.1.1.9.1.5',
|
||||
adslAturIntervalValidData => '1.3.6.1.2.1.10.94.1.1.9.1.6',
|
||||
adslAtucChanPerfDataTable => '1.3.6.1.2.1.10.94.1.1.10',
|
||||
adslAtucChanPerfDataEntry => '1.3.6.1.2.1.10.94.1.1.10.1',
|
||||
adslAtucChanReceivedBlks => '1.3.6.1.2.1.10.94.1.1.10.1.1',
|
||||
adslAtucChanTransmittedBlks => '1.3.6.1.2.1.10.94.1.1.10.1.2',
|
||||
adslAtucChanCorrectedBlks => '1.3.6.1.2.1.10.94.1.1.10.1.3',
|
||||
adslAtucChanUncorrectBlks => '1.3.6.1.2.1.10.94.1.1.10.1.4',
|
||||
adslAtucChanPerfValidIntervals => '1.3.6.1.2.1.10.94.1.1.10.1.5',
|
||||
adslAtucChanPerfInvalidIntervals => '1.3.6.1.2.1.10.94.1.1.10.1.6',
|
||||
adslAtucChanPerfCurr15MinTimeElapsed => '1.3.6.1.2.1.10.94.1.1.10.1.7',
|
||||
adslAtucChanPerfCurr15MinReceivedBlks => '1.3.6.1.2.1.10.94.1.1.10.1.8',
|
||||
adslAtucChanPerfCurr15MinTransmittedBlks => '1.3.6.1.2.1.10.94.1.1.10.1.9',
|
||||
adslAtucChanPerfCurr15MinCorrectedBlks => '1.3.6.1.2.1.10.94.1.1.10.1.10',
|
||||
adslAtucChanPerfCurr15MinUncorrectBlks => '1.3.6.1.2.1.10.94.1.1.10.1.11',
|
||||
adslAtucChanPerfCurr1DayTimeElapsed => '1.3.6.1.2.1.10.94.1.1.10.1.12',
|
||||
adslAtucChanPerfCurr1DayReceivedBlks => '1.3.6.1.2.1.10.94.1.1.10.1.13',
|
||||
adslAtucChanPerfCurr1DayTransmittedBlks => '1.3.6.1.2.1.10.94.1.1.10.1.14',
|
||||
adslAtucChanPerfCurr1DayCorrectedBlks => '1.3.6.1.2.1.10.94.1.1.10.1.15',
|
||||
adslAtucChanPerfCurr1DayUncorrectBlks => '1.3.6.1.2.1.10.94.1.1.10.1.16',
|
||||
adslAtucChanPerfPrev1DayMoniSecs => '1.3.6.1.2.1.10.94.1.1.10.1.17',
|
||||
adslAtucChanPerfPrev1DayReceivedBlks => '1.3.6.1.2.1.10.94.1.1.10.1.18',
|
||||
adslAtucChanPerfPrev1DayTransmittedBlks => '1.3.6.1.2.1.10.94.1.1.10.1.19',
|
||||
adslAtucChanPerfPrev1DayCorrectedBlks => '1.3.6.1.2.1.10.94.1.1.10.1.20',
|
||||
adslAtucChanPerfPrev1DayUncorrectBlks => '1.3.6.1.2.1.10.94.1.1.10.1.21',
|
||||
adslAturChanPerfDataTable => '1.3.6.1.2.1.10.94.1.1.11',
|
||||
adslAturChanPerfDataEntry => '1.3.6.1.2.1.10.94.1.1.11.1',
|
||||
adslAturChanReceivedBlks => '1.3.6.1.2.1.10.94.1.1.11.1.1',
|
||||
adslAturChanTransmittedBlks => '1.3.6.1.2.1.10.94.1.1.11.1.2',
|
||||
adslAturChanCorrectedBlks => '1.3.6.1.2.1.10.94.1.1.11.1.3',
|
||||
adslAturChanUncorrectBlks => '1.3.6.1.2.1.10.94.1.1.11.1.4',
|
||||
adslAturChanPerfValidIntervals => '1.3.6.1.2.1.10.94.1.1.11.1.5',
|
||||
adslAturChanPerfInvalidIntervals => '1.3.6.1.2.1.10.94.1.1.11.1.6',
|
||||
adslAturChanPerfCurr15MinTimeElapsed => '1.3.6.1.2.1.10.94.1.1.11.1.7',
|
||||
adslAturChanPerfCurr15MinReceivedBlks => '1.3.6.1.2.1.10.94.1.1.11.1.8',
|
||||
adslAturChanPerfCurr15MinTransmittedBlks => '1.3.6.1.2.1.10.94.1.1.11.1.9',
|
||||
adslAturChanPerfCurr15MinCorrectedBlks => '1.3.6.1.2.1.10.94.1.1.11.1.10',
|
||||
adslAturChanPerfCurr15MinUncorrectBlks => '1.3.6.1.2.1.10.94.1.1.11.1.11',
|
||||
adslAturChanPerfCurr1DayTimeElapsed => '1.3.6.1.2.1.10.94.1.1.11.1.12',
|
||||
adslAturChanPerfCurr1DayReceivedBlks => '1.3.6.1.2.1.10.94.1.1.11.1.13',
|
||||
adslAturChanPerfCurr1DayTransmittedBlks => '1.3.6.1.2.1.10.94.1.1.11.1.14',
|
||||
adslAturChanPerfCurr1DayCorrectedBlks => '1.3.6.1.2.1.10.94.1.1.11.1.15',
|
||||
adslAturChanPerfCurr1DayUncorrectBlks => '1.3.6.1.2.1.10.94.1.1.11.1.16',
|
||||
adslAturChanPerfPrev1DayMoniSecs => '1.3.6.1.2.1.10.94.1.1.11.1.17',
|
||||
adslAturChanPerfPrev1DayReceivedBlks => '1.3.6.1.2.1.10.94.1.1.11.1.18',
|
||||
adslAturChanPerfPrev1DayTransmittedBlks => '1.3.6.1.2.1.10.94.1.1.11.1.19',
|
||||
adslAturChanPerfPrev1DayCorrectedBlks => '1.3.6.1.2.1.10.94.1.1.11.1.20',
|
||||
adslAturChanPerfPrev1DayUncorrectBlks => '1.3.6.1.2.1.10.94.1.1.11.1.21',
|
||||
adslAtucChanIntervalTable => '1.3.6.1.2.1.10.94.1.1.12',
|
||||
adslAtucChanIntervalEntry => '1.3.6.1.2.1.10.94.1.1.12.1',
|
||||
adslAtucChanIntervalNumber => '1.3.6.1.2.1.10.94.1.1.12.1.1',
|
||||
adslAtucChanIntervalReceivedBlks => '1.3.6.1.2.1.10.94.1.1.12.1.2',
|
||||
adslAtucChanIntervalTransmittedBlks => '1.3.6.1.2.1.10.94.1.1.12.1.3',
|
||||
adslAtucChanIntervalCorrectedBlks => '1.3.6.1.2.1.10.94.1.1.12.1.4',
|
||||
adslAtucChanIntervalUncorrectBlks => '1.3.6.1.2.1.10.94.1.1.12.1.5',
|
||||
adslAtucChanIntervalValidData => '1.3.6.1.2.1.10.94.1.1.12.1.6',
|
||||
adslAturChanIntervalTable => '1.3.6.1.2.1.10.94.1.1.13',
|
||||
adslAturChanIntervalEntry => '1.3.6.1.2.1.10.94.1.1.13.1',
|
||||
adslAturChanIntervalNumber => '1.3.6.1.2.1.10.94.1.1.13.1.1',
|
||||
adslAturChanIntervalReceivedBlks => '1.3.6.1.2.1.10.94.1.1.13.1.2',
|
||||
adslAturChanIntervalTransmittedBlks => '1.3.6.1.2.1.10.94.1.1.13.1.3',
|
||||
adslAturChanIntervalCorrectedBlks => '1.3.6.1.2.1.10.94.1.1.13.1.4',
|
||||
adslAturChanIntervalUncorrectBlks => '1.3.6.1.2.1.10.94.1.1.13.1.5',
|
||||
adslAturChanIntervalValidData => '1.3.6.1.2.1.10.94.1.1.13.1.6',
|
||||
adslLineConfProfileTable => '1.3.6.1.2.1.10.94.1.1.14',
|
||||
adslLineConfProfileEntry => '1.3.6.1.2.1.10.94.1.1.14.1',
|
||||
adslLineConfProfileName => '1.3.6.1.2.1.10.94.1.1.14.1.1',
|
||||
adslAtucConfRateMode => '1.3.6.1.2.1.10.94.1.1.14.1.2',
|
||||
adslAtucConfRateModeDefinition => 'ADSL-LINE-MIB::adslAtucConfRateMode',
|
||||
adslAtucConfRateChanRatio => '1.3.6.1.2.1.10.94.1.1.14.1.3',
|
||||
adslAtucConfTargetSnrMgn => '1.3.6.1.2.1.10.94.1.1.14.1.4',
|
||||
adslAtucConfMaxSnrMgn => '1.3.6.1.2.1.10.94.1.1.14.1.5',
|
||||
adslAtucConfMinSnrMgn => '1.3.6.1.2.1.10.94.1.1.14.1.6',
|
||||
adslAtucConfDownshiftSnrMgn => '1.3.6.1.2.1.10.94.1.1.14.1.7',
|
||||
adslAtucConfUpshiftSnrMgn => '1.3.6.1.2.1.10.94.1.1.14.1.8',
|
||||
adslAtucConfMinUpshiftTime => '1.3.6.1.2.1.10.94.1.1.14.1.9',
|
||||
adslAtucConfMinDownshiftTime => '1.3.6.1.2.1.10.94.1.1.14.1.10',
|
||||
adslAtucChanConfFastMinTxRate => '1.3.6.1.2.1.10.94.1.1.14.1.11',
|
||||
adslAtucChanConfInterleaveMinTxRate => '1.3.6.1.2.1.10.94.1.1.14.1.12',
|
||||
adslAtucChanConfFastMaxTxRate => '1.3.6.1.2.1.10.94.1.1.14.1.13',
|
||||
adslAtucChanConfInterleaveMaxTxRate => '1.3.6.1.2.1.10.94.1.1.14.1.14',
|
||||
adslAtucChanConfMaxInterleaveDelay => '1.3.6.1.2.1.10.94.1.1.14.1.15',
|
||||
adslAturConfRateMode => '1.3.6.1.2.1.10.94.1.1.14.1.16',
|
||||
adslAturConfRateModeDefinition => 'ADSL-LINE-MIB::adslAturConfRateMode',
|
||||
adslAturConfRateChanRatio => '1.3.6.1.2.1.10.94.1.1.14.1.17',
|
||||
adslAturConfTargetSnrMgn => '1.3.6.1.2.1.10.94.1.1.14.1.18',
|
||||
adslAturConfMaxSnrMgn => '1.3.6.1.2.1.10.94.1.1.14.1.19',
|
||||
adslAturConfMinSnrMgn => '1.3.6.1.2.1.10.94.1.1.14.1.20',
|
||||
adslAturConfDownshiftSnrMgn => '1.3.6.1.2.1.10.94.1.1.14.1.21',
|
||||
adslAturConfUpshiftSnrMgn => '1.3.6.1.2.1.10.94.1.1.14.1.22',
|
||||
adslAturConfMinUpshiftTime => '1.3.6.1.2.1.10.94.1.1.14.1.23',
|
||||
adslAturConfMinDownshiftTime => '1.3.6.1.2.1.10.94.1.1.14.1.24',
|
||||
adslAturChanConfFastMinTxRate => '1.3.6.1.2.1.10.94.1.1.14.1.25',
|
||||
adslAturChanConfInterleaveMinTxRate => '1.3.6.1.2.1.10.94.1.1.14.1.26',
|
||||
adslAturChanConfFastMaxTxRate => '1.3.6.1.2.1.10.94.1.1.14.1.27',
|
||||
adslAturChanConfInterleaveMaxTxRate => '1.3.6.1.2.1.10.94.1.1.14.1.28',
|
||||
adslAturChanConfMaxInterleaveDelay => '1.3.6.1.2.1.10.94.1.1.14.1.29',
|
||||
adslLineConfProfileRowStatus => '1.3.6.1.2.1.10.94.1.1.14.1.30',
|
||||
adslLineAlarmConfProfileTable => '1.3.6.1.2.1.10.94.1.1.15',
|
||||
adslLineAlarmConfProfileEntry => '1.3.6.1.2.1.10.94.1.1.15.1',
|
||||
adslLineAlarmConfProfileName => '1.3.6.1.2.1.10.94.1.1.15.1.1',
|
||||
adslAtucThresh15MinLofs => '1.3.6.1.2.1.10.94.1.1.15.1.2',
|
||||
adslAtucThresh15MinLoss => '1.3.6.1.2.1.10.94.1.1.15.1.3',
|
||||
adslAtucThresh15MinLols => '1.3.6.1.2.1.10.94.1.1.15.1.4',
|
||||
adslAtucThresh15MinLprs => '1.3.6.1.2.1.10.94.1.1.15.1.5',
|
||||
adslAtucThresh15MinESs => '1.3.6.1.2.1.10.94.1.1.15.1.6',
|
||||
adslAtucThreshFastRateUp => '1.3.6.1.2.1.10.94.1.1.15.1.7',
|
||||
adslAtucThreshInterleaveRateUp => '1.3.6.1.2.1.10.94.1.1.15.1.8',
|
||||
adslAtucThreshFastRateDown => '1.3.6.1.2.1.10.94.1.1.15.1.9',
|
||||
adslAtucThreshInterleaveRateDown => '1.3.6.1.2.1.10.94.1.1.15.1.10',
|
||||
adslAtucInitFailureTrapEnable => '1.3.6.1.2.1.10.94.1.1.15.1.11',
|
||||
adslAtucInitFailureTrapEnableDefinition => 'ADSL-LINE-MIB::adslAtucInitFailureTrapEnable',
|
||||
adslAturThresh15MinLofs => '1.3.6.1.2.1.10.94.1.1.15.1.12',
|
||||
adslAturThresh15MinLoss => '1.3.6.1.2.1.10.94.1.1.15.1.13',
|
||||
adslAturThresh15MinLprs => '1.3.6.1.2.1.10.94.1.1.15.1.14',
|
||||
adslAturThresh15MinESs => '1.3.6.1.2.1.10.94.1.1.15.1.15',
|
||||
adslAturThreshFastRateUp => '1.3.6.1.2.1.10.94.1.1.15.1.16',
|
||||
adslAturThreshInterleaveRateUp => '1.3.6.1.2.1.10.94.1.1.15.1.17',
|
||||
adslAturThreshFastRateDown => '1.3.6.1.2.1.10.94.1.1.15.1.18',
|
||||
adslAturThreshInterleaveRateDown => '1.3.6.1.2.1.10.94.1.1.15.1.19',
|
||||
adslLineAlarmConfProfileRowStatus => '1.3.6.1.2.1.10.94.1.1.15.1.20',
|
||||
adslLCSMib => '1.3.6.1.2.1.10.94.1.1.16',
|
||||
adslTraps => '1.3.6.1.2.1.10.94.1.2',
|
||||
adslAtucTraps => '1.3.6.1.2.1.10.94.1.2.1',
|
||||
adslAturTraps => '1.3.6.1.2.1.10.94.1.2.2',
|
||||
adslConformance => '1.3.6.1.2.1.10.94.1.3',
|
||||
adslGroups => '1.3.6.1.2.1.10.94.1.3.1',
|
||||
adslCompliances => '1.3.6.1.2.1.10.94.1.3.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ADSL-LINE-MIB'} = {
|
||||
adslAtucInitFailureTrapEnable => {
|
||||
'1' => 'enable',
|
||||
'2' => 'disable',
|
||||
},
|
||||
adslAtucConfRateMode => {
|
||||
'1' => 'fixed',
|
||||
'2' => 'adaptAtStartup',
|
||||
'3' => 'adaptAtRuntime',
|
||||
},
|
||||
adslLineType => {
|
||||
'1' => 'noChannel',
|
||||
'2' => 'fastOnly',
|
||||
'3' => 'interleavedOnly',
|
||||
'4' => 'fastOrInterleaved',
|
||||
'5' => 'fastAndInterleaved',
|
||||
},
|
||||
adslAturConfRateMode => {
|
||||
'1' => 'fixed',
|
||||
'2' => 'adaptAtStartup',
|
||||
'3' => 'adaptAtRuntime',
|
||||
},
|
||||
adslLineCoding => {
|
||||
'1' => 'other',
|
||||
'2' => 'dmt',
|
||||
'3' => 'cap',
|
||||
'4' => 'qam',
|
||||
},
|
||||
};
|
|
@ -0,0 +1,357 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::AIRESPACESWITCHINGMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'AIRESPACE-SWITCHING-MIB'} = {
|
||||
url => '',
|
||||
name => 'AIRESPACE-SWITCHING-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'AIRESPACE-SWITCHING-MIB'} =
|
||||
'1.3.6.1.4.1.14179.1';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'AIRESPACE-SWITCHING-MIB'} = {
|
||||
'bsnSwitching' => '1.3.6.1.4.1.14179.1',
|
||||
'agentInfoGroup' => '1.3.6.1.4.1.14179.1.1',
|
||||
'agentInventoryGroup' => '1.3.6.1.4.1.14179.1.1.1',
|
||||
'agentInventorySysDescription' => '1.3.6.1.4.1.14179.1.1.1.1',
|
||||
'agentInventoryMachineType' => '1.3.6.1.4.1.14179.1.1.1.2',
|
||||
'agentInventoryMachineModel' => '1.3.6.1.4.1.14179.1.1.1.3',
|
||||
'agentInventorySerialNumber' => '1.3.6.1.4.1.14179.1.1.1.4',
|
||||
'agentInventoryMaintenanceLevel' => '1.3.6.1.4.1.14179.1.1.1.6',
|
||||
'agentInventoryBurnedInMacAddress' => '1.3.6.1.4.1.14179.1.1.1.9',
|
||||
'agentInventoryOperatingSystem' => '1.3.6.1.4.1.14179.1.1.1.10',
|
||||
'agentInventoryManufacturerName' => '1.3.6.1.4.1.14179.1.1.1.12',
|
||||
'agentInventoryProductName' => '1.3.6.1.4.1.14179.1.1.1.13',
|
||||
'agentInventoryProductVersion' => '1.3.6.1.4.1.14179.1.1.1.14',
|
||||
'agentInventoryIsGigECardPresent' => '1.3.6.1.4.1.14179.1.1.1.15',
|
||||
'agentInventoryIsCryptoCardPresent' => '1.3.6.1.4.1.14179.1.1.1.16',
|
||||
'agentInventoryIsForeignAPSupported' => '1.3.6.1.4.1.14179.1.1.1.17',
|
||||
'agentInventoryMaxNumberOfAPsSupported' => '1.3.6.1.4.1.14179.1.1.1.18',
|
||||
'agentInventoryIsCryptoCard2Present' => '1.3.6.1.4.1.14179.1.1.1.19',
|
||||
'agentInventoryFipsModeEnabled' => '1.3.6.1.4.1.14179.1.1.1.20',
|
||||
'agentTrapLogGroup' => '1.3.6.1.4.1.14179.1.1.2',
|
||||
'agentTrapLogTotal' => '1.3.6.1.4.1.14179.1.1.2.1',
|
||||
'agentTrapLogTotalSinceLastViewed' => '1.3.6.1.4.1.14179.1.1.2.3',
|
||||
'agentTrapLogTable' => '1.3.6.1.4.1.14179.1.1.2.4',
|
||||
'agentTrapLogEntry' => '1.3.6.1.4.1.14179.1.1.2.4.1',
|
||||
'agentTrapLogIndex' => '1.3.6.1.4.1.14179.1.1.2.4.1.1',
|
||||
'agentTrapLogSystemTime' => '1.3.6.1.4.1.14179.1.1.2.4.1.2',
|
||||
'agentTrapLogTrap' => '1.3.6.1.4.1.14179.1.1.2.4.1.22',
|
||||
'agentRadioUpDownTrapCount' => '1.3.6.1.4.1.14179.1.1.2.5',
|
||||
'agentApAssociateDisassociateTrapCount' => '1.3.6.1.4.1.14179.1.1.2.6',
|
||||
'agentApLoadProfileFailTrapCount' => '1.3.6.1.4.1.14179.1.1.2.7',
|
||||
'agentApNoiseProfileFailTrapCount' => '1.3.6.1.4.1.14179.1.1.2.8',
|
||||
'agentApInterferenceProfileFailTrapCount' => '1.3.6.1.4.1.14179.1.1.2.9',
|
||||
'agentApCoverageProfileFailTrapCount' => '1.3.6.1.4.1.14179.1.1.2.10',
|
||||
'agentSwitchInfoGroup' => '1.3.6.1.4.1.14179.1.1.3',
|
||||
'agentSwitchInfoLwappTransportMode' => '1.3.6.1.4.1.14179.1.1.3.1',
|
||||
'agentSwitchInfoPowerSupply1Present' => '1.3.6.1.4.1.14179.1.1.3.2',
|
||||
'agentSwitchInfoPowerSupply1PresentDefinition' => {
|
||||
'0' => 'false',
|
||||
'1' => 'true',
|
||||
},
|
||||
'agentSwitchInfoPowerSupply1Operational' => '1.3.6.1.4.1.14179.1.1.3.3',
|
||||
'agentSwitchInfoPowerSupply1OperationalDefinition' => {
|
||||
'0' => 'false',
|
||||
'1' => 'true',
|
||||
},
|
||||
'agentSwitchInfoPowerSupply2Present' => '1.3.6.1.4.1.14179.1.1.3.4',
|
||||
'agentSwitchInfoPowerSupply2PresentDefinition' => {
|
||||
'0' => 'false',
|
||||
'1' => 'true',
|
||||
},
|
||||
'agentSwitchInfoPowerSupply2Operational' => '1.3.6.1.4.1.14179.1.1.3.5',
|
||||
'agentSwitchInfoPowerSupply2OperationalDefinition' => {
|
||||
'0' => 'false',
|
||||
'1' => 'true',
|
||||
},
|
||||
'agentProductGroup' => '1.3.6.1.4.1.14179.1.1.4',
|
||||
'productGroup1' => '1.3.6.1.4.1.14179.1.1.4.1',
|
||||
'productGroup2' => '1.3.6.1.4.1.14179.1.1.4.2',
|
||||
'productGroup3' => '1.3.6.1.4.1.14179.1.1.4.3',
|
||||
'productGroup4' => '1.3.6.1.4.1.14179.1.1.4.4',
|
||||
'agentResourceInfoGroup' => '1.3.6.1.4.1.14179.1.1.5',
|
||||
'agentCurrentCPUUtilization' => '1.3.6.1.4.1.14179.1.1.5.1.0',
|
||||
'agentTotalMemory' => '1.3.6.1.4.1.14179.1.1.5.2.0',
|
||||
'agentFreeMemory' => '1.3.6.1.4.1.14179.1.1.5.3.0',
|
||||
'agentWcpInfoGroup' => '1.3.6.1.4.1.14179.1.1.6',
|
||||
'agentWcpDeviceName' => '1.3.6.1.4.1.14179.1.1.6.1',
|
||||
'agentWcpSlotNumber' => '1.3.6.1.4.1.14179.1.1.6.2',
|
||||
'agentWcpPortNumber' => '1.3.6.1.4.1.14179.1.1.6.3',
|
||||
'agentWcpPeerPortNumber' => '1.3.6.1.4.1.14179.1.1.6.4',
|
||||
'agentWcpPeerIpAddress' => '1.3.6.1.4.1.14179.1.1.6.5',
|
||||
'agentWcpControllerTableChecksum' => '1.3.6.1.4.1.14179.1.1.6.6',
|
||||
'agentWcpControllerInfoTable' => '1.3.6.1.4.1.14179.1.1.6.7',
|
||||
'agentWcpControllerInfoEntry' => '1.3.6.1.4.1.14179.1.1.6.7.1',
|
||||
'agentWcpControllerInfoSlotNumber' => '1.3.6.1.4.1.14179.1.1.6.7.1.1',
|
||||
'agentWcpControllerInfoPortNumber' => '1.3.6.1.4.1.14179.1.1.6.7.1.2',
|
||||
'agentWcpControllerInfoIpAddress' => '1.3.6.1.4.1.14179.1.1.6.7.1.10',
|
||||
'agentConfigGroup' => '1.3.6.1.4.1.14179.1.2',
|
||||
'agentCLIConfigGroup' => '1.3.6.1.4.1.14179.1.2.1',
|
||||
'agentLoginSessionTable' => '1.3.6.1.4.1.14179.1.2.1.1',
|
||||
'agentLoginSessionEntry' => '1.3.6.1.4.1.14179.1.2.1.1.1',
|
||||
'agentLoginSessionIndex' => '1.3.6.1.4.1.14179.1.2.1.1.1.1',
|
||||
'agentLoginSessionUserName' => '1.3.6.1.4.1.14179.1.2.1.1.1.2',
|
||||
'agentLoginSessionIPAddress' => '1.3.6.1.4.1.14179.1.2.1.1.1.3',
|
||||
'agentLoginSessionConnectionType' => '1.3.6.1.4.1.14179.1.2.1.1.1.4',
|
||||
'agentLoginSessionIdleTime' => '1.3.6.1.4.1.14179.1.2.1.1.1.5',
|
||||
'agentLoginSessionSessionTime' => '1.3.6.1.4.1.14179.1.2.1.1.1.6',
|
||||
'agentLoginSessionStatus' => '1.3.6.1.4.1.14179.1.2.1.1.1.26',
|
||||
'agentTelnetConfigGroup' => '1.3.6.1.4.1.14179.1.2.1.2',
|
||||
'agentTelnetLoginTimeout' => '1.3.6.1.4.1.14179.1.2.1.2.1',
|
||||
'agentTelnetMaxSessions' => '1.3.6.1.4.1.14179.1.2.1.2.2',
|
||||
'agentTelnetAllowNewMode' => '1.3.6.1.4.1.14179.1.2.1.2.3',
|
||||
'agentSSHAllowNewMode' => '1.3.6.1.4.1.14179.1.2.1.2.4',
|
||||
'agentSerialGroup' => '1.3.6.1.4.1.14179.1.2.1.5',
|
||||
'agentSerialTimeout' => '1.3.6.1.4.1.14179.1.2.1.5.1',
|
||||
'agentSerialBaudrate' => '1.3.6.1.4.1.14179.1.2.1.5.2',
|
||||
'agentSerialCharacterSize' => '1.3.6.1.4.1.14179.1.2.1.5.3',
|
||||
'agentSerialHWFlowControlMode' => '1.3.6.1.4.1.14179.1.2.1.5.4',
|
||||
'agentSerialStopBits' => '1.3.6.1.4.1.14179.1.2.1.5.5',
|
||||
'agentSerialParityType' => '1.3.6.1.4.1.14179.1.2.1.5.6',
|
||||
'agentLagConfigGroup' => '1.3.6.1.4.1.14179.1.2.2',
|
||||
'agentLagConfigCreate' => '1.3.6.1.4.1.14179.1.2.2.1',
|
||||
'agentLagSummaryConfigTable' => '1.3.6.1.4.1.14179.1.2.2.2',
|
||||
'agentLagSummaryConfigEntry' => '1.3.6.1.4.1.14179.1.2.2.2.1',
|
||||
'agentLagSummaryName' => '1.3.6.1.4.1.14179.1.2.2.2.1.1',
|
||||
'agentLagSummaryLagIndex' => '1.3.6.1.4.1.14179.1.2.2.2.1.2',
|
||||
'agentLagSummaryFlushTimer' => '1.3.6.1.4.1.14179.1.2.2.2.1.3',
|
||||
'agentLagSummaryLinkTrap' => '1.3.6.1.4.1.14179.1.2.2.2.1.4',
|
||||
'agentLagSummaryAdminMode' => '1.3.6.1.4.1.14179.1.2.2.2.1.5',
|
||||
'agentLagSummaryStpMode' => '1.3.6.1.4.1.14179.1.2.2.2.1.6',
|
||||
'agentLagSummaryAddPort' => '1.3.6.1.4.1.14179.1.2.2.2.1.7',
|
||||
'agentLagSummaryDeletePort' => '1.3.6.1.4.1.14179.1.2.2.2.1.8',
|
||||
'agentLagSummaryPortsBitMask' => '1.3.6.1.4.1.14179.1.2.2.2.1.9',
|
||||
'agentLagSummaryStatus' => '1.3.6.1.4.1.14179.1.2.2.2.1.30',
|
||||
'agentLagDetailedConfigTable' => '1.3.6.1.4.1.14179.1.2.2.3',
|
||||
'agentLagDetailedConfigEntry' => '1.3.6.1.4.1.14179.1.2.2.3.1',
|
||||
'agentLagDetailedLagIndex' => '1.3.6.1.4.1.14179.1.2.2.3.1.1',
|
||||
'agentLagDetailedIfIndex' => '1.3.6.1.4.1.14179.1.2.2.3.1.2',
|
||||
'agentLagDetailedPortSpeed' => '1.3.6.1.4.1.14179.1.2.2.3.1.22',
|
||||
'agentLagConfigMode' => '1.3.6.1.4.1.14179.1.2.2.4',
|
||||
'agentNetworkConfigGroup' => '1.3.6.1.4.1.14179.1.2.3',
|
||||
'agentNetworkIPAddress' => '1.3.6.1.4.1.14179.1.2.3.1',
|
||||
'agentNetworkSubnetMask' => '1.3.6.1.4.1.14179.1.2.3.2',
|
||||
'agentNetworkDefaultGateway' => '1.3.6.1.4.1.14179.1.2.3.3',
|
||||
'agentNetworkBurnedInMacAddress' => '1.3.6.1.4.1.14179.1.2.3.4',
|
||||
'agentNetworkConfigProtocol' => '1.3.6.1.4.1.14179.1.2.3.7',
|
||||
'agentNetworkWebMode' => '1.3.6.1.4.1.14179.1.2.3.8',
|
||||
'agentNetworkSecureWebMode' => '1.3.6.1.4.1.14179.1.2.3.9',
|
||||
'agentNetworkMulticastMode' => '1.3.6.1.4.1.14179.1.2.3.10',
|
||||
'agentNetworkDsPortNumber' => '1.3.6.1.4.1.14179.1.2.3.11',
|
||||
'agentNetworkUserIdleTimeout' => '1.3.6.1.4.1.14179.1.2.3.12',
|
||||
'agentNetworkArpTimeout' => '1.3.6.1.4.1.14179.1.2.3.13',
|
||||
'agentNetworkManagementVlan' => '1.3.6.1.4.1.14179.1.2.3.14',
|
||||
'agentNetworkGvrpStatus' => '1.3.6.1.4.1.14179.1.2.3.15',
|
||||
'agentNetworkAllowMgmtViaWireless' => '1.3.6.1.4.1.14179.1.2.3.16',
|
||||
'agentNetworkBroadcastSsidMode' => '1.3.6.1.4.1.14179.1.2.3.17',
|
||||
'agentNetworkSecureWebPassword' => '1.3.6.1.4.1.14179.1.2.3.18',
|
||||
'agentNetworkWebAdminCertType' => '1.3.6.1.4.1.14179.1.2.3.19',
|
||||
'agentNetworkWebAdminCertRegenerateCmdInvoke' => '1.3.6.1.4.1.14179.1.2.3.20',
|
||||
'agentNetworkWebAuthCertType' => '1.3.6.1.4.1.14179.1.2.3.21',
|
||||
'agentNetworkWebAuthCertRegenerateCmdInvoke' => '1.3.6.1.4.1.14179.1.2.3.22',
|
||||
'agentNetworkRouteConfigTable' => '1.3.6.1.4.1.14179.1.2.3.23',
|
||||
'agentNetworkRouteConfigEntry' => '1.3.6.1.4.1.14179.1.2.3.23.1',
|
||||
'agentNetworkRouteIPAddress' => '1.3.6.1.4.1.14179.1.2.3.23.1.1',
|
||||
'agentNetworkRouteIPNetmask' => '1.3.6.1.4.1.14179.1.2.3.23.1.2',
|
||||
'agentNetworkRouteGateway' => '1.3.6.1.4.1.14179.1.2.3.23.1.3',
|
||||
'agentNetworkRouteStatus' => '1.3.6.1.4.1.14179.1.2.3.23.1.23',
|
||||
'agentNetworkPeerToPeerBlockingMode' => '1.3.6.1.4.1.14179.1.2.3.24',
|
||||
'agentNetworkMulticastGroupAddress' => '1.3.6.1.4.1.14179.1.2.3.25',
|
||||
'agentServicePortConfigGroup' => '1.3.6.1.4.1.14179.1.2.4',
|
||||
'agentServicePortIPAddress' => '1.3.6.1.4.1.14179.1.2.4.1',
|
||||
'agentServicePortSubnetMask' => '1.3.6.1.4.1.14179.1.2.4.2',
|
||||
'agentServicePortDefaultGateway' => '1.3.6.1.4.1.14179.1.2.4.3',
|
||||
'agentServicePortBurnedInMacAddress' => '1.3.6.1.4.1.14179.1.2.4.4',
|
||||
'agentServicePortConfigProtocol' => '1.3.6.1.4.1.14179.1.2.4.5',
|
||||
'agentSnmpConfigGroup' => '1.3.6.1.4.1.14179.1.2.5',
|
||||
'agentSnmpTrapPortNumber' => '1.3.6.1.4.1.14179.1.2.5.1',
|
||||
'agentSnmpVersion1Status' => '1.3.6.1.4.1.14179.1.2.5.2',
|
||||
'agentSnmpVersion2cStatus' => '1.3.6.1.4.1.14179.1.2.5.3',
|
||||
'agentSnmpCommunityConfigTable' => '1.3.6.1.4.1.14179.1.2.5.5',
|
||||
'agentSnmpCommunityConfigEntry' => '1.3.6.1.4.1.14179.1.2.5.5.1',
|
||||
'agentSnmpCommunityName' => '1.3.6.1.4.1.14179.1.2.5.5.1.1',
|
||||
'agentSnmpCommunityIPAddress' => '1.3.6.1.4.1.14179.1.2.5.5.1.2',
|
||||
'agentSnmpCommunityIPMask' => '1.3.6.1.4.1.14179.1.2.5.5.1.3',
|
||||
'agentSnmpCommunityAccessMode' => '1.3.6.1.4.1.14179.1.2.5.5.1.4',
|
||||
'agentSnmpCommunityEnabled' => '1.3.6.1.4.1.14179.1.2.5.5.1.5',
|
||||
'agentSnmpCommunityStatus' => '1.3.6.1.4.1.14179.1.2.5.5.1.25',
|
||||
'agentSnmpTrapReceiverConfigTable' => '1.3.6.1.4.1.14179.1.2.5.6',
|
||||
'agentSnmpTrapReceiverConfigEntry' => '1.3.6.1.4.1.14179.1.2.5.6.1',
|
||||
'agentSnmpTrapReceiverName' => '1.3.6.1.4.1.14179.1.2.5.6.1.1',
|
||||
'agentSnmpTrapReceiverIPAddress' => '1.3.6.1.4.1.14179.1.2.5.6.1.2',
|
||||
'agentSnmpTrapReceiverEnabled' => '1.3.6.1.4.1.14179.1.2.5.6.1.3',
|
||||
'agentSnmpTrapReceiverStatus' => '1.3.6.1.4.1.14179.1.2.5.6.1.23',
|
||||
'agentSnmpTrapFlagsConfigGroup' => '1.3.6.1.4.1.14179.1.2.5.7',
|
||||
'agentSnmpAuthenticationTrapFlag' => '1.3.6.1.4.1.14179.1.2.5.7.1',
|
||||
'agentSnmpLinkUpDownTrapFlag' => '1.3.6.1.4.1.14179.1.2.5.7.2',
|
||||
'agentSnmpMultipleUsersTrapFlag' => '1.3.6.1.4.1.14179.1.2.5.7.3',
|
||||
'agentSnmpSpanningTreeTrapFlag' => '1.3.6.1.4.1.14179.1.2.5.7.4',
|
||||
'agentSnmpBroadcastStormTrapFlag' => '1.3.6.1.4.1.14179.1.2.5.7.5',
|
||||
'agentSnmpV3ConfigGroup' => '1.3.6.1.4.1.14179.1.2.6',
|
||||
'agentSnmpVersion3Status' => '1.3.6.1.4.1.14179.1.2.6.1',
|
||||
'agentSnmpV3UserConfigTable' => '1.3.6.1.4.1.14179.1.2.6.2',
|
||||
'agentSnmpV3UserConfigEntry' => '1.3.6.1.4.1.14179.1.2.6.2.1',
|
||||
'agentSnmpV3UserName' => '1.3.6.1.4.1.14179.1.2.6.2.1.1',
|
||||
'agentSnmpV3UserAccessMode' => '1.3.6.1.4.1.14179.1.2.6.2.1.2',
|
||||
'agentSnmpV3UserAuthenticationType' => '1.3.6.1.4.1.14179.1.2.6.2.1.3',
|
||||
'agentSnmpV3UserEncryptionType' => '1.3.6.1.4.1.14179.1.2.6.2.1.4',
|
||||
'agentSnmpV3UserAuthenticationPassword' => '1.3.6.1.4.1.14179.1.2.6.2.1.5',
|
||||
'agentSnmpV3UserEncryptionPassword' => '1.3.6.1.4.1.14179.1.2.6.2.1.6',
|
||||
'agentSnmpV3UserStatus' => '1.3.6.1.4.1.14179.1.2.6.2.1.26',
|
||||
'agentSpanningTreeConfigGroup' => '1.3.6.1.4.1.14179.1.2.7',
|
||||
'agentSpanningTreeMode' => '1.3.6.1.4.1.14179.1.2.7.1',
|
||||
'agentSwitchConfigGroup' => '1.3.6.1.4.1.14179.1.2.8',
|
||||
'agentSwitchBroadcastControlMode' => '1.3.6.1.4.1.14179.1.2.8.2',
|
||||
'agentSwitchDot3FlowControlMode' => '1.3.6.1.4.1.14179.1.2.8.3',
|
||||
'agentSwitchAddressAgingTimeoutTable' => '1.3.6.1.4.1.14179.1.2.8.4',
|
||||
'agentSwitchAddressAgingTimeoutEntry' => '1.3.6.1.4.1.14179.1.2.8.4.1',
|
||||
'agentSwitchAddressAgingTimeout' => '1.3.6.1.4.1.14179.1.2.8.4.1.10',
|
||||
'agentSwitchLwappTransportMode' => '1.3.6.1.4.1.14179.1.2.8.5',
|
||||
'agentTransferConfigGroup' => '1.3.6.1.4.1.14179.1.2.9',
|
||||
'agentTransferUploadGroup' => '1.3.6.1.4.1.14179.1.2.9.1',
|
||||
'agentTransferUploadMode' => '1.3.6.1.4.1.14179.1.2.9.1.1',
|
||||
'agentTransferUploadServerIP' => '1.3.6.1.4.1.14179.1.2.9.1.2',
|
||||
'agentTransferUploadPath' => '1.3.6.1.4.1.14179.1.2.9.1.3',
|
||||
'agentTransferUploadFilename' => '1.3.6.1.4.1.14179.1.2.9.1.4',
|
||||
'agentTransferUploadDataType' => '1.3.6.1.4.1.14179.1.2.9.1.5',
|
||||
'agentTransferUploadStart' => '1.3.6.1.4.1.14179.1.2.9.1.6',
|
||||
'agentTransferUploadStatus' => '1.3.6.1.4.1.14179.1.2.9.1.7',
|
||||
'agentTransferDownloadGroup' => '1.3.6.1.4.1.14179.1.2.9.2',
|
||||
'agentTransferDownloadMode' => '1.3.6.1.4.1.14179.1.2.9.2.1',
|
||||
'agentTransferDownloadServerIP' => '1.3.6.1.4.1.14179.1.2.9.2.2',
|
||||
'agentTransferDownloadPath' => '1.3.6.1.4.1.14179.1.2.9.2.3',
|
||||
'agentTransferDownloadFilename' => '1.3.6.1.4.1.14179.1.2.9.2.4',
|
||||
'agentTransferDownloadDataType' => '1.3.6.1.4.1.14179.1.2.9.2.5',
|
||||
'agentTransferDownloadStart' => '1.3.6.1.4.1.14179.1.2.9.2.6',
|
||||
'agentTransferDownloadStatus' => '1.3.6.1.4.1.14179.1.2.9.2.7',
|
||||
'agentTransferDownloadTftpMaxRetries' => '1.3.6.1.4.1.14179.1.2.9.2.8',
|
||||
'agentTransferDownloadTftpTimeout' => '1.3.6.1.4.1.14179.1.2.9.2.9',
|
||||
'agentTransferConfigurationFileEncryption' => '1.3.6.1.4.1.14179.1.2.9.3',
|
||||
'agentTransferConfigurationFileEncryptionKey' => '1.3.6.1.4.1.14179.1.2.9.4',
|
||||
'agentDot3adAggPortTable' => '1.3.6.1.4.1.14179.1.2.11',
|
||||
'agentDot3adAggPortEntry' => '1.3.6.1.4.1.14179.1.2.11.1',
|
||||
'agentDot3adAggPort' => '1.3.6.1.4.1.14179.1.2.11.1.1',
|
||||
'agentDot3adAggPortLACPMode' => '1.3.6.1.4.1.14179.1.2.11.1.21',
|
||||
'agentPortConfigTable' => '1.3.6.1.4.1.14179.1.2.12',
|
||||
'agentPortConfigEntry' => '1.3.6.1.4.1.14179.1.2.12.1',
|
||||
'agentPortDot1dBasePort' => '1.3.6.1.4.1.14179.1.2.12.1.1',
|
||||
'agentPortIfIndex' => '1.3.6.1.4.1.14179.1.2.12.1.2',
|
||||
'agentPortIanaType' => '1.3.6.1.4.1.14179.1.2.12.1.3',
|
||||
'agentPortSTPMode' => '1.3.6.1.4.1.14179.1.2.12.1.4',
|
||||
'agentPortSTPState' => '1.3.6.1.4.1.14179.1.2.12.1.5',
|
||||
'agentPortAdminMode' => '1.3.6.1.4.1.14179.1.2.12.1.6',
|
||||
'agentPortPhysicalMode' => '1.3.6.1.4.1.14179.1.2.12.1.7',
|
||||
'agentPortPhysicalStatus' => '1.3.6.1.4.1.14179.1.2.12.1.8',
|
||||
'agentPortLinkTrapMode' => '1.3.6.1.4.1.14179.1.2.12.1.9',
|
||||
'agentPortClearStats' => '1.3.6.1.4.1.14179.1.2.12.1.10',
|
||||
'agentPortDefaultType' => '1.3.6.1.4.1.14179.1.2.12.1.11',
|
||||
'agentPortType' => '1.3.6.1.4.1.14179.1.2.12.1.12',
|
||||
'agentPortAutoNegAdminStatus' => '1.3.6.1.4.1.14179.1.2.12.1.13',
|
||||
'agentPortDot3FlowControlMode' => '1.3.6.1.4.1.14179.1.2.12.1.14',
|
||||
'agentPortPowerMode' => '1.3.6.1.4.1.14179.1.2.12.1.15',
|
||||
'agentPortGvrpStatus' => '1.3.6.1.4.1.14179.1.2.12.1.16',
|
||||
'agentPortGarpJoinTime' => '1.3.6.1.4.1.14179.1.2.12.1.17',
|
||||
'agentPortGarpLeaveTime' => '1.3.6.1.4.1.14179.1.2.12.1.18',
|
||||
'agentPortGarpLeaveAllTime' => '1.3.6.1.4.1.14179.1.2.12.1.19',
|
||||
'agentPortMirrorMode' => '1.3.6.1.4.1.14179.1.2.12.1.20',
|
||||
'agentPortMulticastApplianceMode' => '1.3.6.1.4.1.14179.1.2.12.1.21',
|
||||
'agentPortOperationalStatus' => '1.3.6.1.4.1.14179.1.2.12.1.40',
|
||||
'agentInterfaceConfigTable' => '1.3.6.1.4.1.14179.1.2.13',
|
||||
'agentInterfaceConfigEntry' => '1.3.6.1.4.1.14179.1.2.13.1',
|
||||
'agentInterfaceName' => '1.3.6.1.4.1.14179.1.2.13.1.1',
|
||||
'agentInterfaceVlanId' => '1.3.6.1.4.1.14179.1.2.13.1.2',
|
||||
'agentInterfaceType' => '1.3.6.1.4.1.14179.1.2.13.1.3',
|
||||
'agentInterfaceMacAddress' => '1.3.6.1.4.1.14179.1.2.13.1.4',
|
||||
'agentInterfaceIPAddress' => '1.3.6.1.4.1.14179.1.2.13.1.5',
|
||||
'agentInterfaceIPNetmask' => '1.3.6.1.4.1.14179.1.2.13.1.6',
|
||||
'agentInterfaceIPGateway' => '1.3.6.1.4.1.14179.1.2.13.1.7',
|
||||
'agentInterfacePortNo' => '1.3.6.1.4.1.14179.1.2.13.1.8',
|
||||
'agentInterfacePrimaryDhcpAddress' => '1.3.6.1.4.1.14179.1.2.13.1.9',
|
||||
'agentInterfaceSecondaryDhcpAddress' => '1.3.6.1.4.1.14179.1.2.13.1.10',
|
||||
'agentInterfaceDhcpProtocol' => '1.3.6.1.4.1.14179.1.2.13.1.11',
|
||||
'agentInterfaceDnsHostName' => '1.3.6.1.4.1.14179.1.2.13.1.12',
|
||||
'agentInterfaceAclName' => '1.3.6.1.4.1.14179.1.2.13.1.13',
|
||||
'agentInterfaceAPManagementFeature' => '1.3.6.1.4.1.14179.1.2.13.1.14',
|
||||
'agentInterfaceActivePortNo' => '1.3.6.1.4.1.14179.1.2.13.1.15',
|
||||
'agentInterfaceBackupPortNo' => '1.3.6.1.4.1.14179.1.2.13.1.16',
|
||||
'agentInterfaceVlanQuarantine' => '1.3.6.1.4.1.14179.1.2.13.1.17',
|
||||
'agentInterfaceRowStatus' => '1.3.6.1.4.1.14179.1.2.13.1.31',
|
||||
'agentNtpConfigGroup' => '1.3.6.1.4.1.14179.1.2.14',
|
||||
'agentNtpPollingInterval' => '1.3.6.1.4.1.14179.1.2.14.1',
|
||||
'agentNtpServerTable' => '1.3.6.1.4.1.14179.1.2.14.2',
|
||||
'agentNtpServerEntry' => '1.3.6.1.4.1.14179.1.2.14.2.1',
|
||||
'agentNtpServerIndex' => '1.3.6.1.4.1.14179.1.2.14.2.1.1',
|
||||
'agentNtpServerAddress' => '1.3.6.1.4.1.14179.1.2.14.2.1.2',
|
||||
'agentNtpServerRowStatus' => '1.3.6.1.4.1.14179.1.2.14.2.1.20',
|
||||
'agentDhcpConfigGroup' => '1.3.6.1.4.1.14179.1.2.15',
|
||||
'agentDhcpScopeTable' => '1.3.6.1.4.1.14179.1.2.15.1',
|
||||
'agentDhcpScopeEntry' => '1.3.6.1.4.1.14179.1.2.15.1.1',
|
||||
'agentDhcpScopeIndex' => '1.3.6.1.4.1.14179.1.2.15.1.1.1',
|
||||
'agentDhcpScopeName' => '1.3.6.1.4.1.14179.1.2.15.1.1.2',
|
||||
'agentDhcpScopeLeaseTime' => '1.3.6.1.4.1.14179.1.2.15.1.1.3',
|
||||
'agentDhcpScopeNetwork' => '1.3.6.1.4.1.14179.1.2.15.1.1.4',
|
||||
'agentDhcpScopeNetmask' => '1.3.6.1.4.1.14179.1.2.15.1.1.5',
|
||||
'agentDhcpScopePoolStartAddress' => '1.3.6.1.4.1.14179.1.2.15.1.1.6',
|
||||
'agentDhcpScopePoolEndAddress' => '1.3.6.1.4.1.14179.1.2.15.1.1.7',
|
||||
'agentDhcpScopeDefaultRouterAddress1' => '1.3.6.1.4.1.14179.1.2.15.1.1.8',
|
||||
'agentDhcpScopeDefaultRouterAddress2' => '1.3.6.1.4.1.14179.1.2.15.1.1.9',
|
||||
'agentDhcpScopeDefaultRouterAddress3' => '1.3.6.1.4.1.14179.1.2.15.1.1.10',
|
||||
'agentDhcpScopeDnsDomainName' => '1.3.6.1.4.1.14179.1.2.15.1.1.11',
|
||||
'agentDhcpScopeDnsServerAddress1' => '1.3.6.1.4.1.14179.1.2.15.1.1.12',
|
||||
'agentDhcpScopeDnsServerAddress2' => '1.3.6.1.4.1.14179.1.2.15.1.1.13',
|
||||
'agentDhcpScopeDnsServerAddress3' => '1.3.6.1.4.1.14179.1.2.15.1.1.14',
|
||||
'agentDhcpScopeNetbiosNameServerAddress1' => '1.3.6.1.4.1.14179.1.2.15.1.1.15',
|
||||
'agentDhcpScopeNetbiosNameServerAddress2' => '1.3.6.1.4.1.14179.1.2.15.1.1.16',
|
||||
'agentDhcpScopeNetbiosNameServerAddress3' => '1.3.6.1.4.1.14179.1.2.15.1.1.17',
|
||||
'agentDhcpScopeState' => '1.3.6.1.4.1.14179.1.2.15.1.1.18',
|
||||
'agentDhcpScopeRowStatus' => '1.3.6.1.4.1.14179.1.2.15.1.1.30',
|
||||
'agentSystemGroup' => '1.3.6.1.4.1.14179.1.3',
|
||||
'agentSaveConfig' => '1.3.6.1.4.1.14179.1.3.1',
|
||||
'agentClearConfig' => '1.3.6.1.4.1.14179.1.3.2',
|
||||
'agentClearLags' => '1.3.6.1.4.1.14179.1.3.3',
|
||||
'agentClearLoginSessions' => '1.3.6.1.4.1.14179.1.3.4',
|
||||
'agentClearPortStats' => '1.3.6.1.4.1.14179.1.3.6',
|
||||
'agentClearSwitchStats' => '1.3.6.1.4.1.14179.1.3.7',
|
||||
'agentClearTrapLog' => '1.3.6.1.4.1.14179.1.3.8',
|
||||
'agentResetSystem' => '1.3.6.1.4.1.14179.1.3.10',
|
||||
'stats' => '1.3.6.1.4.1.14179.1.4',
|
||||
'portStatsTable' => '1.3.6.1.4.1.14179.1.4.1',
|
||||
'portStatsEntry' => '1.3.6.1.4.1.14179.1.4.1.1',
|
||||
'portStatsIndex' => '1.3.6.1.4.1.14179.1.4.1.1.1',
|
||||
'portStatsPktsTx64Octets' => '1.3.6.1.4.1.14179.1.4.1.1.2',
|
||||
'portStatsPktsTx65to127Octets' => '1.3.6.1.4.1.14179.1.4.1.1.3',
|
||||
'portStatsPktsTx128to255Octets' => '1.3.6.1.4.1.14179.1.4.1.1.4',
|
||||
'portStatsPktsTx256to511Octets' => '1.3.6.1.4.1.14179.1.4.1.1.5',
|
||||
'portStatsPktsTx512to1023Octets' => '1.3.6.1.4.1.14179.1.4.1.1.6',
|
||||
'portStatsPktsTx1024to1518Octets' => '1.3.6.1.4.1.14179.1.4.1.1.7',
|
||||
'portStatsPktsRx1519to1530Octets' => '1.3.6.1.4.1.14179.1.4.1.1.8',
|
||||
'portStatsPktsTx1519to1530Octets' => '1.3.6.1.4.1.14179.1.4.1.1.9',
|
||||
'portStatsPktsTxOversizeOctets' => '1.3.6.1.4.1.14179.1.4.1.1.30',
|
||||
'switchingTraps' => '1.3.6.1.4.1.14179.1.50',
|
||||
'multipleUsersTrap' => '1.3.6.1.4.1.14179.1.50.1',
|
||||
'broadcastStormStartTrap' => '1.3.6.1.4.1.14179.1.50.2',
|
||||
'broadcastStormEndTrap' => '1.3.6.1.4.1.14179.1.50.3',
|
||||
'linkFailureTrap' => '1.3.6.1.4.1.14179.1.50.4',
|
||||
'vlanRequestFailureTrap' => '1.3.6.1.4.1.14179.1.50.5',
|
||||
'vlanDeleteLastTrap' => '1.3.6.1.4.1.14179.1.50.6',
|
||||
'vlanDefaultCfgFailureTrap' => '1.3.6.1.4.1.14179.1.50.7',
|
||||
'vlanRestoreFailureTrap' => '1.3.6.1.4.1.14179.1.50.8',
|
||||
'fanFailureTrap' => '1.3.6.1.4.1.14179.1.50.9',
|
||||
'stpInstanceNewRootTrap' => '1.3.6.1.4.1.14179.1.50.10',
|
||||
'stpInstanceTopologyChangeTrap' => '1.3.6.1.4.1.14179.1.50.11',
|
||||
'powerSupplyStatusChangeTrap' => '1.3.6.1.4.1.14179.1.50.12',
|
||||
'bsnSwitchingGroups' => '1.3.6.1.4.1.14179.1.51',
|
||||
'bsnSwitchingAgentInfoGroup' => '1.3.6.1.4.1.14179.1.51.1',
|
||||
'bsnSwitchingAgentConfigGroup' => '1.3.6.1.4.1.14179.1.51.2',
|
||||
'bsnSwitchingAgentSystemGroup' => '1.3.6.1.4.1.14179.1.51.3',
|
||||
'bsnSwitchingAgentStatsGroup' => '1.3.6.1.4.1.14179.1.51.4',
|
||||
'bsnSwitchingObsGroup' => '1.3.6.1.4.1.14179.1.51.5',
|
||||
'bsnSwitchingTrap' => '1.3.6.1.4.1.14179.1.51.6',
|
||||
'bsnSwitchingCompliances' => '1.3.6.1.4.1.14179.1.52',
|
||||
'bsnSwitchingCompliance' => '1.3.6.1.4.1.14179.1.52.1',
|
||||
};
|
||||
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,101 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ALARMMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ALARM-MIB'} = {
|
||||
url => '',
|
||||
name => 'ALARM-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ALARM-MIB'} = {
|
||||
'alarmMIB' => '1.3.6.1.2.1.118',
|
||||
'alarmNotifications' => '1.3.6.1.2.1.118.0',
|
||||
'alarmObjects' => '1.3.6.1.2.1.118.1',
|
||||
'alarmModel' => '1.3.6.1.2.1.118.1.1',
|
||||
'alarmModelLastChanged' => '1.3.6.1.2.1.118.1.1.1',
|
||||
'alarmModelTable' => '1.3.6.1.2.1.118.1.1.2',
|
||||
'alarmModelEntry' => '1.3.6.1.2.1.118.1.1.2.1',
|
||||
'alarmModelIndex' => '1.3.6.1.2.1.118.1.1.2.1.1',
|
||||
'alarmModelState' => '1.3.6.1.2.1.118.1.1.2.1.2',
|
||||
'alarmModelNotificationId' => '1.3.6.1.2.1.118.1.1.2.1.3',
|
||||
'alarmModelVarbindIndex' => '1.3.6.1.2.1.118.1.1.2.1.4',
|
||||
'alarmModelVarbindValue' => '1.3.6.1.2.1.118.1.1.2.1.5',
|
||||
'alarmModelDescription' => '1.3.6.1.2.1.118.1.1.2.1.6',
|
||||
'alarmModelSpecificPointer' => '1.3.6.1.2.1.118.1.1.2.1.7',
|
||||
'alarmModelVarbindSubtree' => '1.3.6.1.2.1.118.1.1.2.1.8',
|
||||
'alarmModelResourcePrefix' => '1.3.6.1.2.1.118.1.1.2.1.9',
|
||||
'alarmModelRowStatus' => '1.3.6.1.2.1.118.1.1.2.1.10',
|
||||
'alarmActive' => '1.3.6.1.2.1.118.1.2',
|
||||
'alarmActiveLastChanged' => '1.3.6.1.2.1.118.1.2.1',
|
||||
'alarmActiveTable' => '1.3.6.1.2.1.118.1.2.2',
|
||||
'alarmActiveEntry' => '1.3.6.1.2.1.118.1.2.2.1',
|
||||
'alarmListName' => '1.3.6.1.2.1.118.1.2.2.1.1',
|
||||
'alarmActiveDateAndTime' => '1.3.6.1.2.1.118.1.2.2.1.2',
|
||||
'alarmActiveIndex' => '1.3.6.1.2.1.118.1.2.2.1.3',
|
||||
'alarmActiveEngineID' => '1.3.6.1.2.1.118.1.2.2.1.4',
|
||||
'alarmActiveEngineAddressType' => '1.3.6.1.2.1.118.1.2.2.1.5',
|
||||
'alarmActiveEngineAddress' => '1.3.6.1.2.1.118.1.2.2.1.6',
|
||||
'alarmActiveContextName' => '1.3.6.1.2.1.118.1.2.2.1.7',
|
||||
'alarmActiveVariables' => '1.3.6.1.2.1.118.1.2.2.1.8',
|
||||
'alarmActiveNotificationID' => '1.3.6.1.2.1.118.1.2.2.1.9',
|
||||
'alarmActiveResourceId' => '1.3.6.1.2.1.118.1.2.2.1.10',
|
||||
'alarmActiveDescription' => '1.3.6.1.2.1.118.1.2.2.1.11',
|
||||
'alarmActiveLogPointer' => '1.3.6.1.2.1.118.1.2.2.1.12',
|
||||
'alarmActiveModelPointer' => '1.3.6.1.2.1.118.1.2.2.1.13',
|
||||
'alarmActiveSpecificPointer' => '1.3.6.1.2.1.118.1.2.2.1.14',
|
||||
'alarmActiveVariableTable' => '1.3.6.1.2.1.118.1.2.3',
|
||||
'alarmActiveVariableEntry' => '1.3.6.1.2.1.118.1.2.3.1',
|
||||
'alarmActiveVariableIndex' => '1.3.6.1.2.1.118.1.2.3.1.1',
|
||||
'alarmActiveVariableID' => '1.3.6.1.2.1.118.1.2.3.1.2',
|
||||
'alarmActiveVariableValueType' => '1.3.6.1.2.1.118.1.2.3.1.3',
|
||||
'alarmActiveVariableValueTypeDefinition' => 'ALARM-MIB::alarmActiveVariableValueType',
|
||||
'alarmActiveVariableCounter32Val' => '1.3.6.1.2.1.118.1.2.3.1.4',
|
||||
'alarmActiveVariableUnsigned32Val' => '1.3.6.1.2.1.118.1.2.3.1.5',
|
||||
'alarmActiveVariableTimeTicksVal' => '1.3.6.1.2.1.118.1.2.3.1.6',
|
||||
'alarmActiveVariableInteger32Val' => '1.3.6.1.2.1.118.1.2.3.1.7',
|
||||
'alarmActiveVariableOctetStringVal' => '1.3.6.1.2.1.118.1.2.3.1.8',
|
||||
'alarmActiveVariableIpAddressVal' => '1.3.6.1.2.1.118.1.2.3.1.9',
|
||||
'alarmActiveVariableOidVal' => '1.3.6.1.2.1.118.1.2.3.1.10',
|
||||
'alarmActiveVariableCounter64Val' => '1.3.6.1.2.1.118.1.2.3.1.11',
|
||||
'alarmActiveVariableOpaqueVal' => '1.3.6.1.2.1.118.1.2.3.1.12',
|
||||
'alarmActiveStatsTable' => '1.3.6.1.2.1.118.1.2.4',
|
||||
'alarmActiveStatsEntry' => '1.3.6.1.2.1.118.1.2.4.1',
|
||||
'alarmActiveStatsActiveCurrent' => '1.3.6.1.2.1.118.1.2.4.1.1',
|
||||
'alarmActiveStatsActives' => '1.3.6.1.2.1.118.1.2.4.1.2',
|
||||
'alarmActiveStatsLastRaise' => '1.3.6.1.2.1.118.1.2.4.1.3',
|
||||
'alarmActiveStatsLastClear' => '1.3.6.1.2.1.118.1.2.4.1.4',
|
||||
'alarmActiveOverflow' => '1.3.6.1.2.1.118.1.2.5',
|
||||
'alarmClear' => '1.3.6.1.2.1.118.1.3',
|
||||
'alarmClearMaximum' => '1.3.6.1.2.1.118.1.3.1',
|
||||
'alarmClearTable' => '1.3.6.1.2.1.118.1.3.2',
|
||||
'alarmClearEntry' => '1.3.6.1.2.1.118.1.3.2.1',
|
||||
'alarmClearIndex' => '1.3.6.1.2.1.118.1.3.2.1.1',
|
||||
'alarmClearDateAndTime' => '1.3.6.1.2.1.118.1.3.2.1.2',
|
||||
'alarmClearEngineID' => '1.3.6.1.2.1.118.1.3.2.1.3',
|
||||
'alarmClearEngineAddressType' => '1.3.6.1.2.1.118.1.3.2.1.4',
|
||||
'alarmClearEngineAddress' => '1.3.6.1.2.1.118.1.3.2.1.5',
|
||||
'alarmClearContextName' => '1.3.6.1.2.1.118.1.3.2.1.6',
|
||||
'alarmClearNotificationID' => '1.3.6.1.2.1.118.1.3.2.1.7',
|
||||
'alarmClearResourceId' => '1.3.6.1.2.1.118.1.3.2.1.8',
|
||||
'alarmClearLogIndex' => '1.3.6.1.2.1.118.1.3.2.1.9',
|
||||
'alarmClearModelPointer' => '1.3.6.1.2.1.118.1.3.2.1.10',
|
||||
'alarmConformance' => '1.3.6.1.2.1.118.2',
|
||||
'alarmCompliances' => '1.3.6.1.2.1.118.2.1',
|
||||
'alarmGroups' => '1.3.6.1.2.1.118.2.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ALARM-MIB'} = {
|
||||
'alarmActiveVariableValueType' => {
|
||||
'1' => 'counter32',
|
||||
'2' => 'unsigned32',
|
||||
'3' => 'timeTicks',
|
||||
'4' => 'integer32',
|
||||
'5' => 'ipAddress',
|
||||
'6' => 'octetString',
|
||||
'7' => 'objectId',
|
||||
'8' => 'counter64',
|
||||
'9' => 'opaque',
|
||||
},
|
||||
};
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
|
@ -0,0 +1,14 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ALCATELIND1BASEMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ALCATEL-IND1-BASE-MIB'} = {
|
||||
url => '',
|
||||
name => 'ALCATEL-IND1-BASE-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'ALCATEL-IND1-BASE-MIB'} =
|
||||
'1.3.6.1.4.1.6486.800';
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
|
@ -0,0 +1,159 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ARISTABGP4V2MIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ARISTA-BGP4V2-MIB'} = {
|
||||
url => '',
|
||||
name => 'ARISTA-BGP4V2-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'ARISTA-BGP4V2-MIB'} =
|
||||
'1.3.6.1.4.1.30065.4.1';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ARISTA-BGP4V2-MIB'} = {
|
||||
aristaBgp4V2 => '1.3.6.1.4.1.30065.4.1',
|
||||
aristaBgp4V2Notifications => '1.3.6.1.4.1.30065.4.1.0',
|
||||
aristaBgp4V2Objects => '1.3.6.1.4.1.30065.4.1.1',
|
||||
aristaBgp4V2DiscontinuityTable => '1.3.6.1.4.1.30065.4.1.1.1',
|
||||
aristaBgp4V2DiscontinuityEntry => '1.3.6.1.4.1.30065.4.1.1.1.1',
|
||||
aristaBgp4V2DiscontinuityTime => '1.3.6.1.4.1.30065.4.1.1.1.1.1',
|
||||
aristaBgp4V2PeerTable => '1.3.6.1.4.1.30065.4.1.1.2',
|
||||
aristaBgp4V2PeerEntry => '1.3.6.1.4.1.30065.4.1.1.2.1',
|
||||
aristaBgp4V2PeerInstance => '1.3.6.1.4.1.30065.4.1.1.2.1.1',
|
||||
aristaBgp4V2PeerLocalAddrType => '1.3.6.1.4.1.30065.4.1.1.2.1.2',
|
||||
aristaBgp4V2PeerLocalAddrTypeDefinition => 'INET-ADDRESS-MIB::InetAddressType',
|
||||
aristaBgp4V2PeerLocalAddr => '1.3.6.1.4.1.30065.4.1.1.2.1.3',
|
||||
aristaBgp4V2PeerLocalAddrDefinition => 'INET-ADDRESS-MIB::InetAddress(aristaBgp4V2PeerLocalAddrType)',
|
||||
aristaBgp4V2PeerRemoteAddrType => '1.3.6.1.4.1.30065.4.1.1.2.1.4',
|
||||
aristaBgp4V2PeerRemoteAddrTypeDefinition => 'INET-ADDRESS-MIB::InetAddressType',
|
||||
aristaBgp4V2PeerRemoteAddr => '1.3.6.1.4.1.30065.4.1.1.2.1.5',
|
||||
aristaBgp4V2PeerRemoteAddrDefinition => 'INET-ADDRESS-MIB::InetAddress(aristaBgp4V2PeerRemoteAddrType)',
|
||||
aristaBgp4V2PeerLocalPort => '1.3.6.1.4.1.30065.4.1.1.2.1.6',
|
||||
aristaBgp4V2PeerLocalAs => '1.3.6.1.4.1.30065.4.1.1.2.1.7',
|
||||
aristaBgp4V2PeerLocalIdentifier => '1.3.6.1.4.1.30065.4.1.1.2.1.8',
|
||||
aristaBgp4V2PeerLocalIdentifierDefinition => 'ARISTA-BGP4V2-TC-MIB::AristaBgp4V2IdentifierTC',
|
||||
aristaBgp4V2PeerRemotePort => '1.3.6.1.4.1.30065.4.1.1.2.1.9',
|
||||
aristaBgp4V2PeerRemoteAs => '1.3.6.1.4.1.30065.4.1.1.2.1.10',
|
||||
aristaBgp4V2PeerRemoteIdentifier => '1.3.6.1.4.1.30065.4.1.1.2.1.11',
|
||||
aristaBgp4V2PeerRemoteIdentifierDefinition => 'ARISTA-BGP4V2-TC-MIB::AristaBgp4V2IdentifierTC',
|
||||
aristaBgp4V2PeerAdminStatus => '1.3.6.1.4.1.30065.4.1.1.2.1.12',
|
||||
aristaBgp4V2PeerAdminStatusDefinition => 'ARISTA-BGP4V2-MIB::aristaBgp4V2PeerAdminStatus',
|
||||
aristaBgp4V2PeerState => '1.3.6.1.4.1.30065.4.1.1.2.1.13',
|
||||
aristaBgp4V2PeerStateDefinition => 'ARISTA-BGP4V2-MIB::aristaBgp4V2PeerState',
|
||||
aristaBgp4V2PeerDescription => '1.3.6.1.4.1.30065.4.1.1.2.1.14',
|
||||
aristaBgp4V2PeerErrorsTable => '1.3.6.1.4.1.30065.4.1.1.3',
|
||||
aristaBgp4V2PeerErrorsEntry => '1.3.6.1.4.1.30065.4.1.1.3.1',
|
||||
aristaBgp4V2PeerLastErrorCodeReceived => '1.3.6.1.4.1.30065.4.1.1.3.1.1',
|
||||
aristaBgp4V2PeerLastErrorSubCodeReceived => '1.3.6.1.4.1.30065.4.1.1.3.1.2',
|
||||
aristaBgp4V2PeerLastErrorReceivedTime => '1.3.6.1.4.1.30065.4.1.1.3.1.3',
|
||||
aristaBgp4V2PeerLastErrorReceivedText => '1.3.6.1.4.1.30065.4.1.1.3.1.4',
|
||||
aristaBgp4V2PeerLastErrorReceivedData => '1.3.6.1.4.1.30065.4.1.1.3.1.5',
|
||||
aristaBgp4V2PeerLastErrorCodeSent => '1.3.6.1.4.1.30065.4.1.1.3.1.6',
|
||||
aristaBgp4V2PeerLastErrorSubCodeSent => '1.3.6.1.4.1.30065.4.1.1.3.1.7',
|
||||
aristaBgp4V2PeerLastErrorSentTime => '1.3.6.1.4.1.30065.4.1.1.3.1.8',
|
||||
aristaBgp4V2PeerLastErrorSentText => '1.3.6.1.4.1.30065.4.1.1.3.1.9',
|
||||
aristaBgp4V2PeerLastErrorSentData => '1.3.6.1.4.1.30065.4.1.1.3.1.10',
|
||||
aristaBgp4V2PeerEventTimesTable => '1.3.6.1.4.1.30065.4.1.1.4',
|
||||
aristaBgp4V2PeerEventTimesEntry => '1.3.6.1.4.1.30065.4.1.1.4.1',
|
||||
aristaBgp4V2PeerFsmEstablishedTime => '1.3.6.1.4.1.30065.4.1.1.4.1.1',
|
||||
aristaBgp4V2PeerInUpdatesElapsedTime => '1.3.6.1.4.1.30065.4.1.1.4.1.2',
|
||||
aristaBgp4V2PeerConfiguredTimersTable => '1.3.6.1.4.1.30065.4.1.1.5',
|
||||
aristaBgp4V2PeerConfiguredTimersEntry => '1.3.6.1.4.1.30065.4.1.1.5.1',
|
||||
aristaBgp4V2PeerConnectRetryInterval => '1.3.6.1.4.1.30065.4.1.1.5.1.1',
|
||||
aristaBgp4V2PeerHoldTimeConfigured => '1.3.6.1.4.1.30065.4.1.1.5.1.2',
|
||||
aristaBgp4V2PeerKeepAliveConfigured => '1.3.6.1.4.1.30065.4.1.1.5.1.3',
|
||||
aristaBgp4V2PeerMinASOrigInterval => '1.3.6.1.4.1.30065.4.1.1.5.1.4',
|
||||
aristaBgp4V2PeerMinRouteAdverInterval => '1.3.6.1.4.1.30065.4.1.1.5.1.5',
|
||||
aristaBgp4V2PeerNegotiatedTimersTable => '1.3.6.1.4.1.30065.4.1.1.6',
|
||||
aristaBgp4V2PeerNegotiatedTimersEntry => '1.3.6.1.4.1.30065.4.1.1.6.1',
|
||||
aristaBgp4V2PeerHoldTime => '1.3.6.1.4.1.30065.4.1.1.6.1.1',
|
||||
aristaBgp4V2PeerKeepAlive => '1.3.6.1.4.1.30065.4.1.1.6.1.2',
|
||||
aristaBgp4V2PeerCountersTable => '1.3.6.1.4.1.30065.4.1.1.7',
|
||||
aristaBgp4V2PeerCountersEntry => '1.3.6.1.4.1.30065.4.1.1.7.1',
|
||||
aristaBgp4V2PeerInUpdates => '1.3.6.1.4.1.30065.4.1.1.7.1.1',
|
||||
aristaBgp4V2PeerOutUpdates => '1.3.6.1.4.1.30065.4.1.1.7.1.2',
|
||||
aristaBgp4V2PeerInTotalMessages => '1.3.6.1.4.1.30065.4.1.1.7.1.3',
|
||||
aristaBgp4V2PeerOutTotalMessages => '1.3.6.1.4.1.30065.4.1.1.7.1.4',
|
||||
aristaBgp4V2PeerFsmEstablishedTransitions => '1.3.6.1.4.1.30065.4.1.1.7.1.5',
|
||||
aristaBgp4V2PrefixGaugesTable => '1.3.6.1.4.1.30065.4.1.1.8',
|
||||
aristaBgp4V2PrefixGaugesEntry => '1.3.6.1.4.1.30065.4.1.1.8.1',
|
||||
aristaBgp4V2PrefixGaugesAfi => '1.3.6.1.4.1.30065.4.1.1.8.1.1',
|
||||
aristaBgp4V2PrefixGaugesAfiDefinition => 'ARISTA-BGP4V2-TC-MIB::AristaBgp4V2AddressFamilyIdentifierTC',
|
||||
aristaBgp4V2PrefixGaugesSafi => '1.3.6.1.4.1.30065.4.1.1.8.1.2',
|
||||
aristaBgp4V2PrefixGaugesSafiDefinition => 'ARISTA-BGP4V2-TC-MIB::AristaBgp4V2SubsequentAddressFamilyIdentifierTC',
|
||||
aristaBgp4V2PrefixInPrefixes => '1.3.6.1.4.1.30065.4.1.1.8.1.3',
|
||||
aristaBgp4V2PrefixInPrefixesAccepted => '1.3.6.1.4.1.30065.4.1.1.8.1.4',
|
||||
aristaBgp4V2PrefixOutPrefixes => '1.3.6.1.4.1.30065.4.1.1.8.1.5',
|
||||
aristaBgp4V2NlriTable => '1.3.6.1.4.1.30065.4.1.1.9',
|
||||
aristaBgp4V2NlriEntry => '1.3.6.1.4.1.30065.4.1.1.9.1',
|
||||
aristaBgp4V2NlriIndex => '1.3.6.1.4.1.30065.4.1.1.9.1.1',
|
||||
aristaBgp4V2NlriAfi => '1.3.6.1.4.1.30065.4.1.1.9.1.2',
|
||||
aristaBgp4V2NlriAfiDefinition => 'ARISTA-BGP4V2-TC-MIB::AristaBgp4V2AddressFamilyIdentifierTC',
|
||||
aristaBgp4V2NlriSafi => '1.3.6.1.4.1.30065.4.1.1.9.1.3',
|
||||
aristaBgp4V2NlriSafiDefinition => 'ARISTA-BGP4V2-TC-MIB::AristaBgp4V2SubsequentAddressFamilyIdentifierTC',
|
||||
aristaBgp4V2NlriPrefixType => '1.3.6.1.4.1.30065.4.1.1.9.1.4',
|
||||
aristaBgp4V2NlriPrefix => '1.3.6.1.4.1.30065.4.1.1.9.1.5',
|
||||
aristaBgp4V2NlriPrefixLen => '1.3.6.1.4.1.30065.4.1.1.9.1.6',
|
||||
aristaBgp4V2NlriBest => '1.3.6.1.4.1.30065.4.1.1.9.1.7',
|
||||
aristaBgp4V2NlriCalcLocalPref => '1.3.6.1.4.1.30065.4.1.1.9.1.8',
|
||||
aristaBgp4V2NlriOrigin => '1.3.6.1.4.1.30065.4.1.1.9.1.9',
|
||||
aristaBgp4V2NlriOriginDefinition => 'ARISTA-BGP4V2-MIB::aristaBgp4V2NlriOrigin',
|
||||
aristaBgp4V2NlriNextHopAddrType => '1.3.6.1.4.1.30065.4.1.1.9.1.10',
|
||||
aristaBgp4V2NlriNextHopAddr => '1.3.6.1.4.1.30065.4.1.1.9.1.11',
|
||||
aristaBgp4V2NlriLinkLocalNextHopAddrType => '1.3.6.1.4.1.30065.4.1.1.9.1.12',
|
||||
aristaBgp4V2NlriLinkLocalNextHopAddr => '1.3.6.1.4.1.30065.4.1.1.9.1.13',
|
||||
aristaBgp4V2NlriLocalPrefPresent => '1.3.6.1.4.1.30065.4.1.1.9.1.14',
|
||||
aristaBgp4V2NlriLocalPref => '1.3.6.1.4.1.30065.4.1.1.9.1.15',
|
||||
aristaBgp4V2NlriMedPresent => '1.3.6.1.4.1.30065.4.1.1.9.1.16',
|
||||
aristaBgp4V2NlriMed => '1.3.6.1.4.1.30065.4.1.1.9.1.17',
|
||||
aristaBgp4V2NlriAtomicAggregate => '1.3.6.1.4.1.30065.4.1.1.9.1.18',
|
||||
aristaBgp4V2NlriAggregatorPresent => '1.3.6.1.4.1.30065.4.1.1.9.1.19',
|
||||
aristaBgp4V2NlriAggregatorAS => '1.3.6.1.4.1.30065.4.1.1.9.1.20',
|
||||
aristaBgp4V2NlriAggregatorAddr => '1.3.6.1.4.1.30065.4.1.1.9.1.21',
|
||||
aristaBgp4V2NlriAsPathCalcLength => '1.3.6.1.4.1.30065.4.1.1.9.1.22',
|
||||
aristaBgp4V2NlriAsPathString => '1.3.6.1.4.1.30065.4.1.1.9.1.23',
|
||||
aristaBgp4V2NlriAsPath => '1.3.6.1.4.1.30065.4.1.1.9.1.24',
|
||||
aristaBgp4V2NlriPathAttrUnknown => '1.3.6.1.4.1.30065.4.1.1.9.1.25',
|
||||
aristaBgp4V2AdjRibsOutTable => '1.3.6.1.4.1.30065.4.1.1.10',
|
||||
aristaBgp4V2AdjRibsOutEntry => '1.3.6.1.4.1.30065.4.1.1.10.1',
|
||||
aristaBgp4V2AdjRibsOutIndex => '1.3.6.1.4.1.30065.4.1.1.10.1.1',
|
||||
aristaBgp4V2AdjRibsOutRoute => '1.3.6.1.4.1.30065.4.1.1.10.1.2',
|
||||
aristaBgp4V2Conformance => '1.3.6.1.4.1.30065.4.1.2',
|
||||
aristaBgp4V2Compliances => '1.3.6.1.4.1.30065.4.1.2.1',
|
||||
aristaBgp4V2Groups => '1.3.6.1.4.1.30065.4.1.2.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ARISTA-BGP4V2-MIB'} = {
|
||||
aristaBgp4V2NlriOrigin => {
|
||||
'1' => 'igp',
|
||||
'2' => 'egp',
|
||||
'3' => 'incomplete',
|
||||
},
|
||||
aristaBgp4V2PeerAdminStatus => {
|
||||
'1' => 'halted',
|
||||
'2' => 'running',
|
||||
},
|
||||
aristaBgp4V2PeerState => {
|
||||
'1' => 'idle',
|
||||
'2' => 'connect',
|
||||
'3' => 'active',
|
||||
'4' => 'opensent',
|
||||
'5' => 'openconfirm',
|
||||
'6' => 'established',
|
||||
},
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ARISTA-BGP4V2-TC-MIB'} = {
|
||||
AristaBgp4V2IdentifierTC => sub {
|
||||
my ($addr) = @_;
|
||||
return Monitoring::GLPlugin::SNMP::TableItem->new()->unhex_ip($addr);
|
||||
},
|
||||
AristaBgp4V2AddressFamilyIdentifierTC => {
|
||||
1 => 'ipv4',
|
||||
2 => 'ipv6',
|
||||
},
|
||||
AristaBgp4V2SubsequentAddressFamilyIdentifierTC => {
|
||||
1 => 'unicast',
|
||||
2 => 'multicast',
|
||||
4 => 'mpls',
|
||||
},
|
||||
};
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ARISTAENTITYSENSORMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ARISTA-ENTITY-SENSOR-MIB'} = {
|
||||
url => '',
|
||||
name => 'ARISTA-ENTITY-SENSOR-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'ARISTA-ENTITY-SENSOR-MIB'} =
|
||||
'1.3.6.1.4.1.30065.3.12';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ARISTA-ENTITY-SENSOR-MIB'} = {
|
||||
aristaEntSensorMIB => '1.3.6.1.4.1.30065.3.12',
|
||||
aristaEntSensorMibNotifications => '1.3.6.1.4.1.30065.3.12.0',
|
||||
aristaEntSensorMibObjects => '1.3.6.1.4.1.30065.3.12.1',
|
||||
aristaEntSensorThresholdTable => '1.3.6.1.4.1.30065.3.12.1.1',
|
||||
aristaEntSensorThresholdEntry => '1.3.6.1.4.1.30065.3.12.1.1.1',
|
||||
aristaEntSensorThresholdLowWarning => '1.3.6.1.4.1.30065.3.12.1.1.1.1',
|
||||
aristaEntSensorThresholdLowCritical => '1.3.6.1.4.1.30065.3.12.1.1.1.2',
|
||||
aristaEntSensorThresholdHighWarning => '1.3.6.1.4.1.30065.3.12.1.1.1.3',
|
||||
aristaEntSensorThresholdHighCritical => '1.3.6.1.4.1.30065.3.12.1.1.1.4',
|
||||
aristaEntSensorStatusDescr => '1.3.6.1.4.1.30065.3.12.1.1.1.5',
|
||||
aristaEntSensorMibConformance => '1.3.6.1.4.1.30065.3.12.2',
|
||||
aristaEntSensorMibCompliances => '1.3.6.1.4.1.30065.3.12.2.1',
|
||||
aristaEntSensorMibGroups => '1.3.6.1.4.1.30065.3.12.2.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ARISTA-ENTITY-SENSOR-MIB'} = {
|
||||
};
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ARUBATCMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ARUBA-TC-MIB'} = {
|
||||
url => 'http://www.circitor.fr/Mibs/Files/ARUBA-TC.mib',
|
||||
name => 'ARUBA-TC-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ARUBA-TC-MIB'} = {
|
||||
'ArubaSwitchRole' => {
|
||||
1 => 'master',
|
||||
2 => 'local',
|
||||
3 => 'backupmaster',
|
||||
},
|
||||
'ArubaActiveState' => {
|
||||
1 => 'active',
|
||||
2 => 'inactive',
|
||||
},
|
||||
};
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ARUBAWIREDCHASSISMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ARUBAWIRED-CHASSIS-MIB'} = {
|
||||
url => '',
|
||||
name => 'ARUBAWIRED-CHASSIS-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'ARUBAWIRED-CHASSIS-MIB'} =
|
||||
'1.3.6.1.4.1.47196.4.1.1.3.11';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ARUBAWIRED-CHASSIS-MIB'} = {
|
||||
'arubaWiredChassisMIB' => '1.3.6.1.4.1.47196.4.1.1.3.11',
|
||||
'arubaWiredPowerSupply' => '1.3.6.1.4.1.47196.4.1.1.3.11.2',
|
||||
'arubaWiredTempSensor' => '1.3.6.1.4.1.47196.4.1.1.3.11.3',
|
||||
'arubaWiredFanTray' => '1.3.6.1.4.1.47196.4.1.1.3.11.4',
|
||||
'arubaWiredFan' => '1.3.6.1.4.1.47196.4.1.1.3.11.5',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ARUBAWIRED-CHASSIS-MIB'} = {
|
||||
};
|
|
@ -0,0 +1,31 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ARUBAWIREDFANMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ARUBAWIRED-FAN-MIB'} = {
|
||||
url => '',
|
||||
name => 'ARUBAWIRED-FAN-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'ARUBAWIRED-FAN-MIB'} =
|
||||
'1.3.6.1.4.1.47196.4.1.1.3.11.5';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ARUBAWIRED-FAN-MIB'} = {
|
||||
'arubaWiredFan' => '1.3.6.1.4.1.47196.4.1.1.3.11.5',
|
||||
'arubaWiredFanNotifications' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.0',
|
||||
'arubaWiredFanTable' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.1',
|
||||
'arubaWiredFanEntry' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1',
|
||||
'arubaWiredFanGroupIndex' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1.1',
|
||||
'arubaWiredFanTrayIndex' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1.2',
|
||||
'arubaWiredFanSlotIndex' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1.3',
|
||||
'arubaWiredFanName' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1.4',
|
||||
'arubaWiredFanState' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1.5',
|
||||
'arubaWiredFanProductName' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1.6',
|
||||
'arubaWiredFanSerialNumber' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1.7',
|
||||
'arubaWiredFanRPM' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1.8',
|
||||
'arubaWiredFanAirflowDirection' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1.9',
|
||||
'arubaWiredFanConformance' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.99',
|
||||
'arubaWiredFanCompliances' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.99.1',
|
||||
'arubaWiredFanGroups' => '1.3.6.1.4.1.47196.4.1.1.3.11.5.99.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ARUBAWIRED-FAN-MIB'} = {
|
||||
};
|
|
@ -0,0 +1,29 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ARUBAWIREDFANTRAYMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ARUBAWIRED-FANTRAY-MIB'} = {
|
||||
url => '',
|
||||
name => 'ARUBAWIRED-FANTRAY-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'ARUBAWIRED-FANTRAY-MIB'} =
|
||||
'1.3.6.1.4.1.47196.4.1.1.3.11.4';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ARUBAWIRED-FANTRAY-MIB'} = {
|
||||
'arubaWiredFanTray' => '1.3.6.1.4.1.47196.4.1.1.3.11.4',
|
||||
'arubaWiredFanTrayNotifications' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.0',
|
||||
'arubaWiredFanTrayTable' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.1',
|
||||
'arubaWiredFanTrayEntry' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.1.1',
|
||||
'arubaWiredFanTrayGroupIndex' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.1.1.1',
|
||||
'arubaWiredFanTraySlotIndex' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.1.1.2',
|
||||
'arubaWiredFanTrayName' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.1.1.3',
|
||||
'arubaWiredFanTrayState' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.1.1.4',
|
||||
'arubaWiredFanTrayProductName' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.1.1.5',
|
||||
'arubaWiredFanTraySerialNumber' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.1.1.6',
|
||||
'arubaWiredFanTrayNumberFans' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.1.1.7',
|
||||
'arubaWiredFanTrayConformance' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.99',
|
||||
'arubaWiredFanTrayCompliances' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.99.1',
|
||||
'arubaWiredFanTrayGroups' => '1.3.6.1.4.1.47196.4.1.1.3.11.4.99.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ARUBAWIRED-FANTRAY-MIB'} = {
|
||||
};
|
|
@ -0,0 +1,32 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ARUBAWIREDPOWERSUPPLYMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ARUBAWIRED-POWERSUPPLY-MIB'} = {
|
||||
url => '',
|
||||
name => 'ARUBAWIRED-POWERSUPPLY-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'ARUBAWIRED-POWERSUPPLY-MIB'} =
|
||||
'1.3.6.1.4.1.47196.4.1.1.3.11.2';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ARUBAWIRED-POWERSUPPLY-MIB'} = {
|
||||
'arubaWiredPowerSupply' => '1.3.6.1.4.1.47196.4.1.1.3.11.2',
|
||||
'arubaWiredPSUNotifications' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.0',
|
||||
'arubaWiredPowerSupplyTable' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.1',
|
||||
'arubaWiredPowerSupplyEntry' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1',
|
||||
'arubaWiredPSUGroupIndex' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.1',
|
||||
'arubaWiredPSUSlotIndex' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.2',
|
||||
'arubaWiredPSUName' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.3',
|
||||
'arubaWiredPSUState' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.4',
|
||||
'arubaWiredPSUProductName' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.5',
|
||||
'arubaWiredPSUSerialNumber' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.6',
|
||||
'arubaWiredPSUInstantaneousPower' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.7',
|
||||
'arubaWiredPSUMaximumPower' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.8',
|
||||
'arubaWiredPSUNumberFailures' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.9',
|
||||
'arubaWiredPSUAirflowDirection' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.10',
|
||||
'arubaWiredPowerSupplyConformance' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.99',
|
||||
'arubaWiredPowerSupplyCompliances' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.99.1',
|
||||
'arubaWiredPowerSupplyGroups' => '1.3.6.1.4.1.47196.4.1.1.3.11.2.99.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ARUBAWIRED-POWERSUPPLY-MIB'} = {
|
||||
};
|
|
@ -0,0 +1,31 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ARUBAWIREDTEMPSENSORMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ARUBAWIRED-TEMPSENSOR-MIB'} = {
|
||||
url => '',
|
||||
name => 'ARUBAWIRED-TEMPSENSOR-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'ARUBAWIRED-TEMPSENSOR-MIB'} =
|
||||
'1.3.6.1.4.1.47196.4.1.1.3.11.3';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ARUBAWIRED-TEMPSENSOR-MIB'} = {
|
||||
'arubaWiredTempSensor' => '1.3.6.1.4.1.47196.4.1.1.3.11.3',
|
||||
'arubaWiredTempSensorNotifications' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.0',
|
||||
'arubaWiredTempSensorTable' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.1',
|
||||
'arubaWiredTempSensorEntry' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1',
|
||||
'arubaWiredTempSensorGroupIndex' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.1',
|
||||
'arubaWiredTempSensorSlotTypeIndex' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.2',
|
||||
'arubaWiredTempSensorSlotIndex' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.3',
|
||||
'arubaWiredTempSensorIndex' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.4',
|
||||
'arubaWiredTempSensorName' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.5',
|
||||
'arubaWiredTempSensorState' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.6',
|
||||
'arubaWiredTempSensorTemperature' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.7',
|
||||
'arubaWiredTempSensorMinTemp' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.8',
|
||||
'arubaWiredTempSensorMaxTemp' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.9',
|
||||
'arubaWiredTempSensorConformance' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.99',
|
||||
'arubaWiredTempSensorCompliances' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.99.1',
|
||||
'arubaWiredTempSensorGroups' => '1.3.6.1.4.1.47196.4.1.1.3.11.3.99.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ARUBAWIRED-TEMPSENSOR-MIB'} = {
|
||||
};
|
|
@ -0,0 +1,56 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ARUBAWIREDVSFMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ARUBAWIRED-VSF-MIB'} = {
|
||||
url => '',
|
||||
name => 'ARUBAWIRED-VSF-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'ARUBAWIRED-VSF-MIB'} =
|
||||
'1.3.6.1.4.1.47196.4.1.1.3.10';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ARUBAWIRED-VSF-MIB'} = {
|
||||
'arubaWiredVsfMIB' => '1.3.6.1.4.1.47196.4.1.1.3.10',
|
||||
'arubaWiredVsfObjects' => '1.3.6.1.4.1.47196.4.1.1.3.10.0',
|
||||
'arubaWiredVsfConfig' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.1',
|
||||
'arubaWiredVsfTrapEnable' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.1.1',
|
||||
'arubaWiredVsfOobmMADEnable' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.1.2',
|
||||
'arubaWiredVsfOobmMADEnableDefinition' => 'ARUBAWIRED-VSF-MIB::arubaWiredVsfOobmMADEnable',
|
||||
'arubaWiredVsfStatus' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.2',
|
||||
'arubaWiredVsfOperStatus' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.2.1',
|
||||
'arubaWiredVsfTopology' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.2.2',
|
||||
'arubaWiredVsfMemberTable' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3',
|
||||
'arubaWiredVsfMemberEntry' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1',
|
||||
'arubaWiredVsfMemberIndex' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.1',
|
||||
'arubaWiredVsfMemberRole' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.2',
|
||||
'arubaWiredVsfMemberStatus' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.3',
|
||||
'arubaWiredVsfMemberPartNumber' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.4',
|
||||
'arubaWiredVsfMemberMacAddr' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.5',
|
||||
'arubaWiredVsfMemberProductName' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.6',
|
||||
'arubaWiredVsfMemberSerialNum' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.7',
|
||||
'arubaWiredVsfMemberBootImage' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.8',
|
||||
'arubaWiredVsfMemberCpuUtil' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.9',
|
||||
'arubaWiredVsfMemberMemoryUtil' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.10',
|
||||
'arubaWiredVsfMemberBootTime' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.11',
|
||||
'arubaWiredVsfMemberBootRomVersion' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.12',
|
||||
'arubaWiredVsfMemberTotalMemory' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.13',
|
||||
'arubaWiredVsfMemberCurrentUsage' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.3.1.14',
|
||||
'arubaWiredVsfLinkTable' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.4',
|
||||
'arubaWiredVsfLinkEntry' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.4.1',
|
||||
'arubaWiredVsfLinkMemberId' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.4.1.1',
|
||||
'arubaWiredVsfLinkId' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.4.1.2',
|
||||
'arubaWiredVsfLinkOperStatus' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.4.1.3',
|
||||
'arubaWiredVsfLinkPeerMemberId' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.4.1.4',
|
||||
'arubaWiredVsfLinkPeerLinkId' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.4.1.5',
|
||||
'arubaWiredVsfLinkPortList' => '1.3.6.1.4.1.47196.4.1.1.3.10.0.4.1.6',
|
||||
'arubaWiredVsfNotifications' => '1.3.6.1.4.1.47196.4.1.1.3.10.1',
|
||||
'arubaWiredVsfConformance' => '1.3.6.1.4.1.47196.4.1.1.3.10.2',
|
||||
'arubaWiredVsfCompliances' => '1.3.6.1.4.1.47196.4.1.1.3.10.2.1',
|
||||
'arubaWiredVsfGroups' => '1.3.6.1.4.1.47196.4.1.1.3.10.2.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'ARUBAWIRED-VSF-MIB'} = {
|
||||
'arubaWiredVsfOobmMADEnable' => {
|
||||
'1' => 'none',
|
||||
'2' => 'mgmt',
|
||||
},
|
||||
};
|
|
@ -0,0 +1,89 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ASYNCOSMAILMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ASYNCOS-MAIL-MIB'} = {
|
||||
url => '',
|
||||
name => 'ASYNCOS-MAIL-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::requirements->{'ASYNCOS-MAIL-MIB'} = [
|
||||
'SNMPv2-TC-v1-MIB',
|
||||
];
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ASYNCOS-MAIL-MIB'} = {
|
||||
'asyncOSMailObjects' => '1.3.6.1.4.1.15497.1.1.1',
|
||||
'perCentMemoryUtilization' => '1.3.6.1.4.1.15497.1.1.1.1.0',
|
||||
'perCentCPUUtilization' => '1.3.6.1.4.1.15497.1.1.1.2.0',
|
||||
'perCentDiskIOUtilization' => '1.3.6.1.4.1.15497.1.1.1.3.0',
|
||||
'perCentQueueUtilization' => '1.3.6.1.4.1.15497.1.1.1.4.0',
|
||||
'queueAvailabilityStatus' => '1.3.6.1.4.1.15497.1.1.1.5.0',
|
||||
'queueAvailabilityStatusDefinition' => {
|
||||
'1' => 'queueSpaceAvailable',
|
||||
'2' => 'queueSpaceShortage',
|
||||
'3' => 'queueFull',
|
||||
},
|
||||
'resourceConservationReason' => '1.3.6.1.4.1.15497.1.1.1.6.0',
|
||||
'memoryAvailabilityStatus' => '1.3.6.1.4.1.15497.1.1.1.7.0',
|
||||
'memoryAvailabilityStatusDefinition' => {
|
||||
'1' => 'memoryAvailable',
|
||||
'2' => 'memoryShortage',
|
||||
'3' => 'memoryFull',
|
||||
},
|
||||
'powerSupplyTable' => '1.3.6.1.4.1.15497.1.1.1.8',
|
||||
'powerSupplyEntry' => '1.3.6.1.4.1.15497.1.1.1.8.1',
|
||||
'powerSupplyIndex' => '1.3.6.1.4.1.15497.1.1.1.8.1.1',
|
||||
'powerSupplyStatus' => '1.3.6.1.4.1.15497.1.1.1.8.1.2',
|
||||
'powerSupplyStatusDefinition' => {
|
||||
'1' => 'powerSupplyNotInstalled',
|
||||
'2' => 'powerSupplyHealthy',
|
||||
'3' => 'powerSupplyNoAC',
|
||||
'4' => 'powerSupplyFaulty',
|
||||
},
|
||||
'powerSupplyRedundancy' => '1.3.6.1.4.1.15497.1.1.1.8.1.3',
|
||||
'powerSupplyName' => '1.3.6.1.4.1.15497.1.1.1.8.1.4',
|
||||
'temperatureTable' => '1.3.6.1.4.1.15497.1.1.1.9',
|
||||
'temperatureEntry' => '1.3.6.1.4.1.15497.1.1.1.9.1',
|
||||
'temperatureIndex' => '1.3.6.1.4.1.15497.1.1.1.9.1.1',
|
||||
'degreesCelsius' => '1.3.6.1.4.1.15497.1.1.1.9.1.2',
|
||||
'temperatureName' => '1.3.6.1.4.1.15497.1.1.1.9.1.3',
|
||||
'fanTable' => '1.3.6.1.4.1.15497.1.1.1.10',
|
||||
'fanEntry' => '1.3.6.1.4.1.15497.1.1.1.10.1',
|
||||
'fanIndex' => '1.3.6.1.4.1.15497.1.1.1.10.1.1',
|
||||
'fanRPMs' => '1.3.6.1.4.1.15497.1.1.1.10.1.2',
|
||||
'fanName' => '1.3.6.1.4.1.15497.1.1.1.10.1.3',
|
||||
'workQueueMessages' => '1.3.6.1.4.1.15497.1.1.1.11.0',
|
||||
'keyExpirationTable' => '1.3.6.1.4.1.15497.1.1.1.12',
|
||||
'keyExpirationEntry' => '1.3.6.1.4.1.15497.1.1.1.12.1',
|
||||
'keyExpirationIndex' => '1.3.6.1.4.1.15497.1.1.1.12.1.1',
|
||||
'keyDescription' => '1.3.6.1.4.1.15497.1.1.1.12.1.2',
|
||||
'keyIsPerpetual' => '1.3.6.1.4.1.15497.1.1.1.12.1.3',
|
||||
'keyIsPerpetualDefinition' => 'SNMPv2-TC-v1-MIB::TruthValue',
|
||||
'keySecondsUntilExpire' => '1.3.6.1.4.1.15497.1.1.1.12.1.4',
|
||||
'updateTable' => '1.3.6.1.4.1.15497.1.1.1.13',
|
||||
'updateEntry' => '1.3.6.1.4.1.15497.1.1.1.13.1',
|
||||
'updateIndex' => '1.3.6.1.4.1.15497.1.1.1.13.1.1',
|
||||
'updateServiceName' => '1.3.6.1.4.1.15497.1.1.1.13.1.2',
|
||||
'updates' => '1.3.6.1.4.1.15497.1.1.1.13.1.3',
|
||||
'updateFailures' => '1.3.6.1.4.1.15497.1.1.1.13.1.4',
|
||||
'oldestMessageAge' => '1.3.6.1.4.1.15497.1.1.1.14.0',
|
||||
'outstandingDNSRequests' => '1.3.6.1.4.1.15497.1.1.1.15.0',
|
||||
'pendingDNSRequests' => '1.3.6.1.4.1.15497.1.1.1.16.0',
|
||||
'raidEvents' => '1.3.6.1.4.1.15497.1.1.1.17.0',
|
||||
'raidTable' => '1.3.6.1.4.1.15497.1.1.1.18',
|
||||
'raidEntry' => '1.3.6.1.4.1.15497.1.1.1.18.1',
|
||||
'raidIndex' => '1.3.6.1.4.1.15497.1.1.1.18.1.1',
|
||||
'raidStatus' => '1.3.6.1.4.1.15497.1.1.1.18.1.2',
|
||||
'raidStatusDefinition' => {
|
||||
'1' => 'driveHealthy',
|
||||
'2' => 'driveFailure',
|
||||
'3' => 'driveRebuild',
|
||||
},
|
||||
'raidID' => '1.3.6.1.4.1.15497.1.1.1.18.1.3',
|
||||
'raidLastError' => '1.3.6.1.4.1.15497.1.1.1.18.1.4',
|
||||
'openFilesOrSockets' => '1.3.6.1.4.1.15497.1.1.1.19.0',
|
||||
'mailTransferThreads' => '1.3.6.1.4.1.15497.1.1.1.20.0',
|
||||
};
|
||||
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
|
@ -0,0 +1,24 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::ATTACKMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'ATTACK-MIB'} = {
|
||||
url => '',
|
||||
name => 'ATTACK-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'ATTACK-MIB'} = {
|
||||
'deviceAttackTable' => '1.3.6.1.4.1.3417.2.3.1.1.1',
|
||||
'deviceAttackEntry' => '1.3.6.1.4.1.3417.2.3.1.1.1.1',
|
||||
'deviceAttackIndex' => '1.3.6.1.4.1.3417.2.3.1.1.1.1.1',
|
||||
'deviceAttackName' => '1.3.6.1.4.1.3417.2.3.1.1.1.1.2',
|
||||
'deviceAttackStatus' => '1.3.6.1.4.1.3417.2.3.1.1.1.1.3',
|
||||
'deviceAttackStatusDefinition' => {
|
||||
'1' => 'no-attack',
|
||||
'2' => 'under-attack',
|
||||
},
|
||||
'deviceAttackTime' => '1.3.6.1.4.1.3417.2.3.1.1.1.1.4',
|
||||
};
|
||||
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
|
@ -0,0 +1,82 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::BAMSNMPMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'BAM-SNMP-MIB'} = {
|
||||
url => '',
|
||||
name => 'BAM-SNMP-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'BAM-SNMP-MIB'} =
|
||||
'1.3.6.1.4.1.13315.100.210';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'BAM-SNMP-MIB'} = {
|
||||
'bam' => '1.3.6.1.4.1.13315.100.210',
|
||||
'app' => '1.3.6.1.4.1.13315.100.210.1',
|
||||
'common' => '1.3.6.1.4.1.13315.100.210.1.1',
|
||||
'version' => '1.3.6.1.4.1.13315.100.210.1.1.1',
|
||||
'startTime' => '1.3.6.1.4.1.13315.100.210.1.1.2',
|
||||
'startTimeDefinition' => 'MIB-2-MIB::DateAndTime',
|
||||
'notificationMessage' => '1.3.6.1.4.1.13315.100.210.1.1.3',
|
||||
'database' => '1.3.6.1.4.1.13315.100.210.1.2',
|
||||
'maxPoolSize' => '1.3.6.1.4.1.13315.100.210.1.2.1',
|
||||
'numConnections' => '1.3.6.1.4.1.13315.100.210.1.2.2',
|
||||
'deployer' => '1.3.6.1.4.1.13315.100.210.1.3',
|
||||
'serverCountInQueue' => '1.3.6.1.4.1.13315.100.210.1.3.1',
|
||||
'executingServerCount' => '1.3.6.1.4.1.13315.100.210.1.3.2',
|
||||
'numberOfTasks' => '1.3.6.1.4.1.13315.100.210.1.3.3',
|
||||
'eventNotification' => '1.3.6.1.4.1.13315.100.210.1.4',
|
||||
'queueCount' => '1.3.6.1.4.1.13315.100.210.1.4.1',
|
||||
'reconciliation' => '1.3.6.1.4.1.13315.100.210.1.5',
|
||||
'poolSize' => '1.3.6.1.4.1.13315.100.210.1.5.1',
|
||||
'scheduledDeployer' => '1.3.6.1.4.1.13315.100.210.1.6',
|
||||
'numOfTimers' => '1.3.6.1.4.1.13315.100.210.1.6.1',
|
||||
'running' => '1.3.6.1.4.1.13315.100.210.1.6.2',
|
||||
'scheduledTaskService' => '1.3.6.1.4.1.13315.100.210.1.7',
|
||||
'queueSize' => '1.3.6.1.4.1.13315.100.210.1.7.1',
|
||||
'replication' => '1.3.6.1.4.1.13315.100.210.1.8',
|
||||
'walFilesTotalSize' => '1.3.6.1.4.1.13315.100.210.1.8.1',
|
||||
'replicationNodeStatus' => '1.3.6.1.4.1.13315.100.210.1.8.2',
|
||||
'replicationNodeStatusDefinition' => 'BAM-SNMP-MIB::replicationNodeStatus',
|
||||
'replicationAverageLatency' => '1.3.6.1.4.1.13315.100.210.1.8.3',
|
||||
'replicationWarningThreshold' => '1.3.6.1.4.1.13315.100.210.1.8.4',
|
||||
'replicationBreakThreshold' => '1.3.6.1.4.1.13315.100.210.1.8.5',
|
||||
'replicationLatencyWarningThreshold' => '1.3.6.1.4.1.13315.100.210.1.8.6',
|
||||
'replicationLatencyCriticalThreshold' => '1.3.6.1.4.1.13315.100.210.1.8.7',
|
||||
'replicationStatusTable' => '1.3.6.1.4.1.13315.100.210.1.8.8',
|
||||
'replicationStatusEntry' => '1.3.6.1.4.1.13315.100.210.1.8.8.1',
|
||||
'hostname' => '1.3.6.1.4.1.13315.100.210.1.8.8.1.1',
|
||||
'ipv4Address' => '1.3.6.1.4.1.13315.100.210.1.8.8.1.2',
|
||||
'currentLatency' => '1.3.6.1.4.1.13315.100.210.1.8.8.1.3',
|
||||
'replicationHealth' => '1.3.6.1.4.1.13315.100.210.1.8.8.1.4',
|
||||
'replicationHealthDefinition' => 'BAM-SNMP-MIB::replicationHealth',
|
||||
'replicationRole' => '1.3.6.1.4.1.13315.100.210.1.8.8.1.5',
|
||||
'notification' => '1.3.6.1.4.1.13315.100.210.1.9',
|
||||
'messagesReceived' => '1.3.6.1.4.1.13315.100.210.1.9.1',
|
||||
'messagesAccepted' => '1.3.6.1.4.1.13315.100.210.1.9.2',
|
||||
'ackSent' => '1.3.6.1.4.1.13315.100.210.1.9.3',
|
||||
'messagesProcessed' => '1.3.6.1.4.1.13315.100.210.1.9.4',
|
||||
'dbBackup' => '1.3.6.1.4.1.13315.100.210.1.10',
|
||||
'lastSuccessfulBackupTime' => '1.3.6.1.4.1.13315.100.210.1.10.1',
|
||||
'lastSuccessfulBackupTimeDefinition' => 'MIB-2-MIB::DateAndTime',
|
||||
'lastSuccessfulRemoteBackupTime' => '1.3.6.1.4.1.13315.100.210.1.10.2',
|
||||
'lastSuccessfulRemoteBackupTimeDefinition' => 'MIB-2-MIB::DateAndTime',
|
||||
'jvm' => '1.3.6.1.4.1.13315.100.210.3',
|
||||
'freeMemory' => '1.3.6.1.4.1.13315.100.210.3.1',
|
||||
'maxMemory' => '1.3.6.1.4.1.13315.100.210.3.2',
|
||||
'gcTime' => '1.3.6.1.4.1.13315.100.210.3.3',
|
||||
'usageThresholdExceeded' => '1.3.6.1.4.1.13315.100.210.3.4',
|
||||
'activeThreadCount' => '1.3.6.1.4.1.13315.100.210.3.5',
|
||||
'traps' => '1.3.6.1.4.1.13315.100.210.255',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'BAM-SNMP-MIB'} = {
|
||||
'replicationNodeStatus' => {
|
||||
'0' => 'standalone',
|
||||
'1' => 'primary',
|
||||
'2' => 'standby',
|
||||
},
|
||||
'replicationHealth' => {
|
||||
'0' => 'Not Replicating',
|
||||
'1' => 'Initializing',
|
||||
'2' => 'Replicating',
|
||||
}
|
||||
};
|
|
@ -0,0 +1,80 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::BCNDHCPV4MIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'BCN-DHCPV4-MIB'} = {
|
||||
url => '',
|
||||
name => 'BCN-DHCPV4-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'BCN-DHCPV4-MIB'} =
|
||||
'bcnDhcpv4MIB';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'BCN-DHCPV4-MIB'} = {
|
||||
'bcnDhcpv4' => '1.3.6.1.4.1.13315.3.1.1',
|
||||
'bcnDhcpv4MIB' => '1.3.6.1.4.1.13315.3.1.1.1',
|
||||
'bcnDhcpv4Objects' => '1.3.6.1.4.1.13315.3.1.1.2',
|
||||
'bcnDhcpv4ServiceStatus' => '1.3.6.1.4.1.13315.3.1.1.2.1',
|
||||
'bcnDhcpv4SerOperState' => '1.3.6.1.4.1.13315.3.1.1.2.1.1',
|
||||
'bcnDhcpv4SerOperStateDefinition' => 'BCN-DHCPV4-MIB::bcnDhcpv4SerOperState',
|
||||
'bcnDhcpv4FirstAlertIpAddr' => '1.3.6.1.4.1.13315.3.1.1.2.1.2',
|
||||
'bcnDhcpv4LeaseStatsSuccess' => '1.3.6.1.4.1.13315.3.1.1.2.1.3',
|
||||
'bcnDhcpv4ServiceStatistics' => '1.3.6.1.4.1.13315.3.1.1.2.2',
|
||||
'bcnDhcpv4LeaseTable' => '1.3.6.1.4.1.13315.3.1.1.2.2.1',
|
||||
'bcnDhcpv4LeaseEntry' => '1.3.6.1.4.1.13315.3.1.1.2.2.1.1',
|
||||
'bcnDhcpv4LeaseIP' => '1.3.6.1.4.1.13315.3.1.1.2.2.1.1.1',
|
||||
'bcnDhcpv4LeaseStartTime' => '1.3.6.1.4.1.13315.3.1.1.2.2.1.1.2',
|
||||
'bcnDhcpv4LeaseEndTime' => '1.3.6.1.4.1.13315.3.1.1.2.2.1.1.3',
|
||||
'bcnDhcpv4LeaseTimeStamp' => '1.3.6.1.4.1.13315.3.1.1.2.2.1.1.4',
|
||||
'bcnDhcpv4LeaseMacAddress' => '1.3.6.1.4.1.13315.3.1.1.2.2.1.1.5',
|
||||
'bcnDhcpv4LeaseHostname' => '1.3.6.1.4.1.13315.3.1.1.2.2.1.1.6',
|
||||
'bcnDhcpv4SubnetTable' => '1.3.6.1.4.1.13315.3.1.1.2.2.2',
|
||||
'bcnDhcpv4SubnetEntry' => '1.3.6.1.4.1.13315.3.1.1.2.2.2.1',
|
||||
'bcnDhcpv4SubnetIP' => '1.3.6.1.4.1.13315.3.1.1.2.2.2.1.1',
|
||||
'bcnDhcpv4SubnetMask' => '1.3.6.1.4.1.13315.3.1.1.2.2.2.1.2',
|
||||
'bcnDhcpv4SubnetSize' => '1.3.6.1.4.1.13315.3.1.1.2.2.2.1.3',
|
||||
'bcnDhcpv4SubnetFreeAddresses' => '1.3.6.1.4.1.13315.3.1.1.2.2.2.1.4',
|
||||
'bcnDhcpv4SubnetLowThreshold' => '1.3.6.1.4.1.13315.3.1.1.2.2.2.1.5',
|
||||
'bcnDhcpv4SubnetHighThreshold' => '1.3.6.1.4.1.13315.3.1.1.2.2.2.1.6',
|
||||
'bcnDhcpv4PoolTable' => '1.3.6.1.4.1.13315.3.1.1.2.2.3',
|
||||
'bcnDhcpv4PoolEntry' => '1.3.6.1.4.1.13315.3.1.1.2.2.3.1',
|
||||
'bcnDhcpv4PoolStartIP' => '1.3.6.1.4.1.13315.3.1.1.2.2.3.1.1',
|
||||
'bcnDhcpv4PoolEndIP' => '1.3.6.1.4.1.13315.3.1.1.2.2.3.1.2',
|
||||
'bcnDhcpv4PoolSubnetIP' => '1.3.6.1.4.1.13315.3.1.1.2.2.3.1.3',
|
||||
'bcnDhcpv4PoolSize' => '1.3.6.1.4.1.13315.3.1.1.2.2.3.1.4',
|
||||
'bcnDhcpv4PoolFreeAddresses' => '1.3.6.1.4.1.13315.3.1.1.2.2.3.1.5',
|
||||
'bcnDhcpv4FixedIPTable' => '1.3.6.1.4.1.13315.3.1.1.2.2.4',
|
||||
'bcnDhcpv4FixedIPEntry' => '1.3.6.1.4.1.13315.3.1.1.2.2.4.1',
|
||||
'bcnDhcpv4FixedIP' => '1.3.6.1.4.1.13315.3.1.1.2.2.4.1.1',
|
||||
'bcnDhcpv4Notification' => '1.3.6.1.4.1.13315.3.1.1.3',
|
||||
'bcnDhcpv4NotificationEvents' => '1.3.6.1.4.1.13315.3.1.1.3.0',
|
||||
'bcnDhcpv4NotificationData' => '1.3.6.1.4.1.13315.3.1.1.3.1',
|
||||
'bcnDhcpv4AlarmSeverity' => '1.3.6.1.4.1.13315.3.1.1.3.1.1',
|
||||
'bcnDhcpv4AlarmInfo' => '1.3.6.1.4.1.13315.3.1.1.3.1.2',
|
||||
'bcnDhcpv4FailOverState' => '1.3.6.1.4.1.13315.3.1.1.3.1.3',
|
||||
'bcnDhcpv4FailOverStateDefinition' => 'BCN-DHCPV4-MIB::bcnDhcpv4FailOverState',
|
||||
'bcnDhcpv4SubnetAlertIpAddr' => '1.3.6.1.4.1.13315.3.1.1.3.1.4',
|
||||
'bcnDhcpv4Conformance' => '1.3.6.1.4.1.13315.3.1.1.4',
|
||||
'bcnDhcpv4ServiceCompliances' => '1.3.6.1.4.1.13315.3.1.1.4.1',
|
||||
'bcnDhcpv4ServiceGroups' => '1.3.6.1.4.1.13315.3.1.1.4.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'BCN-DHCPV4-MIB'} = {
|
||||
'bcnDhcpv4FailOverState' => {
|
||||
'1' => 'startup',
|
||||
'2' => 'normal',
|
||||
'3' => 'communicationsInterrupted',
|
||||
'4' => 'partnerDown',
|
||||
'5' => 'potentialConflict',
|
||||
'6' => 'recover',
|
||||
'7' => 'paused',
|
||||
'8' => 'shutdown',
|
||||
'9' => 'recoverDone',
|
||||
'254' => 'recoverWait',
|
||||
},
|
||||
'bcnDhcpv4SerOperState' => {
|
||||
'1' => 'running',
|
||||
'2' => 'notRunning',
|
||||
'3' => 'starting',
|
||||
'4' => 'stopping',
|
||||
'5' => 'fault',
|
||||
},
|
||||
};
|
|
@ -0,0 +1,55 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::BCNDNSMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'BCN-DNS-MIB'} = {
|
||||
url => '',
|
||||
name => 'BCN-DNS-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'BCN-DNS-MIB'} =
|
||||
'1.3.6.1.4.1.13315.3.1.2.1';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'BCN-DNS-MIB'} = {
|
||||
'bcnDns' => '1.3.6.1.4.1.13315.3.1.2',
|
||||
'bcnDnsMIB' => '1.3.6.1.4.1.13315.3.1.2.1',
|
||||
'bcnDnsObjects' => '1.3.6.1.4.1.13315.3.1.2.2',
|
||||
'bcnDnsServiceStatus' => '1.3.6.1.4.1.13315.3.1.2.2.1',
|
||||
'bcnDnsSerOperState' => '1.3.6.1.4.1.13315.3.1.2.2.1.1',
|
||||
'bcnDnsSerOperStateDefinition' => 'BCN-DNS-MIB::bcnDnsSerOperState',
|
||||
'bcnDnsSerNumberOfZones' => '1.3.6.1.4.1.13315.3.1.2.2.1.2',
|
||||
'bcnDnsSerTransfersRunning' => '1.3.6.1.4.1.13315.3.1.2.2.1.3',
|
||||
'bcnDnsSerTransfersDeferred' => '1.3.6.1.4.1.13315.3.1.2.2.1.4',
|
||||
'bcnDnsSerSOAQueriesInProgress' => '1.3.6.1.4.1.13315.3.1.2.2.1.5',
|
||||
'bcnDnsSerQueryLogging' => '1.3.6.1.4.1.13315.3.1.2.2.1.6',
|
||||
'bcnDnsSerQueryLoggingDefinition' => 'BCN-DNS-MIB::bcnDnsSerQueryLogging',
|
||||
'bcnDnsSerDebugLevel' => '1.3.6.1.4.1.13315.3.1.2.2.1.7',
|
||||
'bcnDnsServiceStatistics' => '1.3.6.1.4.1.13315.3.1.2.2.2',
|
||||
'bcnDnsStatServer' => '1.3.6.1.4.1.13315.3.1.2.2.2.1',
|
||||
'bcnDnsStatSrvQrySuccess' => '1.3.6.1.4.1.13315.3.1.2.2.2.1.1',
|
||||
'bcnDnsStatSrvQryReferral' => '1.3.6.1.4.1.13315.3.1.2.2.2.1.2',
|
||||
'bcnDnsStatSrvQryNXRRSet' => '1.3.6.1.4.1.13315.3.1.2.2.2.1.3',
|
||||
'bcnDnsStatSrvQryNXDomain' => '1.3.6.1.4.1.13315.3.1.2.2.2.1.4',
|
||||
'bcnDnsStatSrvQryRecursion' => '1.3.6.1.4.1.13315.3.1.2.2.2.1.5',
|
||||
'bcnDnsStatSrvQryFailure' => '1.3.6.1.4.1.13315.3.1.2.2.2.1.6',
|
||||
'bcnDnsNotification' => '1.3.6.1.4.1.13315.3.1.2.3',
|
||||
'bcnDnsNotificationEvents' => '1.3.6.1.4.1.13315.3.1.2.3.0',
|
||||
'bcnDnsNotificationData' => '1.3.6.1.4.1.13315.3.1.2.3.1',
|
||||
'bcnDnsAlarmSeverity' => '1.3.6.1.4.1.13315.3.1.2.3.1.1',
|
||||
'bcnDnsAlarmInfo' => '1.3.6.1.4.1.13315.3.1.2.3.1.2',
|
||||
'bcnDnsConformance' => '1.3.6.1.4.1.13315.3.1.2.4',
|
||||
'bcnDnsServiceCompliances' => '1.3.6.1.4.1.13315.3.1.2.4.1',
|
||||
'bcnDnsServiceGroups' => '1.3.6.1.4.1.13315.3.1.2.4.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'BCN-DNS-MIB'} = {
|
||||
'bcnDnsSerOperState' => {
|
||||
'1' => 'running',
|
||||
'2' => 'notRunning',
|
||||
'3' => 'starting',
|
||||
'4' => 'stopping',
|
||||
'5' => 'fault',
|
||||
},
|
||||
'bcnDnsSerQueryLogging' => {
|
||||
'1' => 'on',
|
||||
'2' => 'off',
|
||||
},
|
||||
};
|
|
@ -0,0 +1,57 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::BCNSYSTEMMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'BCN-SYSTEM-MIB'} = {
|
||||
url => '',
|
||||
name => 'BCN-SYSTEM-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'BCN-SYSTEM-MIB'} =
|
||||
'1.3.6.1.4.1.13315.3.2.1';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'BCN-SYSTEM-MIB'} = {
|
||||
'bcnSystem' => '1.3.6.1.4.1.13315.3.2',
|
||||
'bcnSystemMIB' => '1.3.6.1.4.1.13315.3.2.1',
|
||||
'bcnSystemObjects' => '1.3.6.1.4.1.13315.3.2.2',
|
||||
'bcnSysIdentification' => '1.3.6.1.4.1.13315.3.2.2.1',
|
||||
'bcnSysIdProduct' => '1.3.6.1.4.1.13315.3.2.2.1.1',
|
||||
'bcnSysIdOSRelease' => '1.3.6.1.4.1.13315.3.2.2.1.2',
|
||||
'bcnSysIdSerial' => '1.3.6.1.4.1.13315.3.2.2.1.3',
|
||||
'bcnSysIdServiceTag' => '1.3.6.1.4.1.13315.3.2.2.1.4',
|
||||
'bcnSysIdPlatform' => '1.3.6.1.4.1.13315.3.2.2.1.5',
|
||||
'bcnSysIdVendorPlatform' => '1.3.6.1.4.1.13315.3.2.2.1.6',
|
||||
'bcnSysIdServicesTable' => '1.3.6.1.4.1.13315.3.2.2.1.7',
|
||||
'bcnSysIdServicesEntry' => '1.3.6.1.4.1.13315.3.2.2.1.7.1',
|
||||
'bcnSysIdServicesIndex' => '1.3.6.1.4.1.13315.3.2.2.1.7.1.1',
|
||||
'bcnSysIdServicesOID' => '1.3.6.1.4.1.13315.3.2.2.1.7.1.2',
|
||||
'bcnSysIdServicesStateTS' => '1.3.6.1.4.1.13315.3.2.2.1.7.1.3',
|
||||
'bcnSysServices' => '1.3.6.1.4.1.13315.3.2.2.2',
|
||||
'bcnSysServDNSService' => '1.3.6.1.4.1.13315.3.2.2.2.1',
|
||||
'bcnSysServDHCPService' => '1.3.6.1.4.1.13315.3.2.2.2.2',
|
||||
'bcnSysServTFTPService' => '1.3.6.1.4.1.13315.3.2.2.2.3',
|
||||
'bcnSysServLicensing' => '1.3.6.1.4.1.13315.3.2.2.2.4',
|
||||
'bcnSysServTFTP' => '1.3.6.1.4.1.13315.3.2.2.2.5',
|
||||
'bcnSysServNTP' => '1.3.6.1.4.1.13315.3.2.2.2.6',
|
||||
'bcnSysServPowerSupply' => '1.3.6.1.4.1.13315.3.2.2.2.7',
|
||||
'bcnSysServNetworkInterface' => '1.3.6.1.4.1.13315.3.2.2.2.8',
|
||||
'bcnSysServHighAvailability' => '1.3.6.1.4.1.13315.3.2.2.2.9',
|
||||
'bcnSysServReplication' => '1.3.6.1.4.1.13315.3.2.2.2.10',
|
||||
'bcnSysServSystem' => '1.3.6.1.4.1.13315.3.2.2.2.11',
|
||||
'bcnSystemNotification' => '1.3.6.1.4.1.13315.3.2.3',
|
||||
'bcnSysNotificationEvents' => '1.3.6.1.4.1.13315.3.2.3.0',
|
||||
'bcnSysNotificationData' => '1.3.6.1.4.1.13315.3.2.3.1',
|
||||
'bcnSysSerOperState' => '1.3.6.1.4.1.13315.3.2.3.1.1',
|
||||
'bcnSysSerOperStateDefinition' => 'BCN-SYSTEM-MIB::bcnSysSerOperState',
|
||||
'bcnSysAlarmSeverity' => '1.3.6.1.4.1.13315.3.2.3.1.2',
|
||||
'bcnSysAlarmInfo' => '1.3.6.1.4.1.13315.3.2.3.1.3',
|
||||
'bcnSystemConformance' => '1.3.6.1.4.1.13315.3.2.4',
|
||||
'bcnSysServliances' => '1.3.6.1.4.1.13315.3.2.4.1',
|
||||
'bcnSysGroups' => '1.3.6.1.4.1.13315.3.2.4.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'BCN-SYSTEM-MIB'} = {
|
||||
'bcnSysSerOperState' => {
|
||||
'1' => 'start',
|
||||
'2' => 'reboot',
|
||||
'3' => 'shutdown',
|
||||
},
|
||||
};
|
|
@ -0,0 +1,54 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::BGP4MIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'BGP4-MIB'} = {
|
||||
url => '',
|
||||
name => 'BGP4-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'BGP4-MIB'} = {
|
||||
'bgpVersion' => '1.3.6.1.2.1.15.1.0',
|
||||
'bgpLocalAs' => '1.3.6.1.2.1.15.2.0',
|
||||
'bgpPeerTable' => '1.3.6.1.2.1.15.3',
|
||||
'bgpPeerEntry' => '1.3.6.1.2.1.15.3.1',
|
||||
'bgpPeerIdentifier' => '1.3.6.1.2.1.15.3.1.1',
|
||||
'bgpPeerState' => '1.3.6.1.2.1.15.3.1.2',
|
||||
'bgpPeerStateDefinition' => {
|
||||
'1' => 'idle',
|
||||
'2' => 'connect',
|
||||
'3' => 'active',
|
||||
'4' => 'opensent',
|
||||
'5' => 'openconfirm',
|
||||
'6' => 'established',
|
||||
},
|
||||
'bgpPeerAdminStatus' => '1.3.6.1.2.1.15.3.1.3',
|
||||
'bgpPeerAdminStatusDefinition' => {
|
||||
'1' => 'stop',
|
||||
'2' => 'start',
|
||||
},
|
||||
'bgpPeerNegotiatedVersion' => '1.3.6.1.2.1.15.3.1.4',
|
||||
'bgpPeerLocalAddr' => '1.3.6.1.2.1.15.3.1.5',
|
||||
'bgpPeerLocalPort' => '1.3.6.1.2.1.15.3.1.6',
|
||||
'bgpPeerRemoteAddr' => '1.3.6.1.2.1.15.3.1.7',
|
||||
'bgpPeerRemotePort' => '1.3.6.1.2.1.15.3.1.8',
|
||||
'bgpPeerRemoteAs' => '1.3.6.1.2.1.15.3.1.9',
|
||||
'bgpPeerInUpdates' => '1.3.6.1.2.1.15.3.1.10',
|
||||
'bgpPeerOutUpdates' => '1.3.6.1.2.1.15.3.1.11',
|
||||
'bgpPeerInTotalMessages' => '1.3.6.1.2.1.15.3.1.12',
|
||||
'bgpPeerOutTotalMessages' => '1.3.6.1.2.1.15.3.1.13',
|
||||
'bgpPeerLastError' => '1.3.6.1.2.1.15.3.1.14',
|
||||
'bgpPeerFsmEstablishedTransitions' => '1.3.6.1.2.1.15.3.1.15',
|
||||
'bgpPeerFsmEstablishedTime' => '1.3.6.1.2.1.15.3.1.16',
|
||||
'bgpPeerConnectRetryInterval' => '1.3.6.1.2.1.15.3.1.17',
|
||||
'bgpPeerHoldTime' => '1.3.6.1.2.1.15.3.1.18',
|
||||
'bgpPeerKeepAlive' => '1.3.6.1.2.1.15.3.1.19',
|
||||
'bgpPeerHoldTimeConfigured' => '1.3.6.1.2.1.15.3.1.20',
|
||||
'bgpPeerKeepAliveConfigured' => '1.3.6.1.2.1.15.3.1.21',
|
||||
'bgpPeerMinASOriginationInterval' => '1.3.6.1.2.1.15.3.1.22',
|
||||
'bgpPeerMinRouteAdvertisementInterval' => '1.3.6.1.2.1.15.3.1.23',
|
||||
'bgpPeerInUpdateElapsedTime' => '1.3.6.1.2.1.15.3.1.24',
|
||||
};
|
||||
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
|
@ -0,0 +1,63 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::MIBRESOURCE;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'BIANCA-BRICK-MIBRES-MIB'} = {
|
||||
url => '',
|
||||
name => 'BIANCA-BRICK-MIBRES-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'BIANCA-BRICK-MIBRES-MIB'} =
|
||||
'1.3.6.1.4.1.272.4.17.4';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'BIANCA-BRICK-MIBRES-MIB'} = {
|
||||
resource => '1.3.6.1.4.1.272.4.17.4.255',
|
||||
cpuTable => '1.3.6.1.4.1.272.4.17.4.1',
|
||||
cpuEntry => '1.3.6.1.4.1.272.4.17.4.1.1',
|
||||
cpuNumber => '1.3.6.1.4.1.272.4.17.4.1.1.1',
|
||||
cpuDescr => '1.3.6.1.4.1.272.4.17.4.1.1.2',
|
||||
cpuTotalUser => '1.3.6.1.4.1.272.4.17.4.1.1.3',
|
||||
cpuTotalSystem => '1.3.6.1.4.1.272.4.17.4.1.1.4',
|
||||
cpuTotalStreams => '1.3.6.1.4.1.272.4.17.4.1.1.5',
|
||||
cpuTotalIdle => '1.3.6.1.4.1.272.4.17.4.1.1.6',
|
||||
cpuLoadUser => '1.3.6.1.4.1.272.4.17.4.1.1.7',
|
||||
cpuLoadSystem => '1.3.6.1.4.1.272.4.17.4.1.1.8',
|
||||
cpuLoadStreams => '1.3.6.1.4.1.272.4.17.4.1.1.9',
|
||||
cpuLoadIdle => '1.3.6.1.4.1.272.4.17.4.1.1.10',
|
||||
cpuLoadUser10s => '1.3.6.1.4.1.272.4.17.4.1.1.11',
|
||||
cpuLoadSystem10s => '1.3.6.1.4.1.272.4.17.4.1.1.12',
|
||||
cpuLoadStreams10s => '1.3.6.1.4.1.272.4.17.4.1.1.13',
|
||||
cpuLoadIdle10s => '1.3.6.1.4.1.272.4.17.4.1.1.14',
|
||||
cpuLoadUser60s => '1.3.6.1.4.1.272.4.17.4.1.1.15',
|
||||
cpuLoadSystem60s => '1.3.6.1.4.1.272.4.17.4.1.1.16',
|
||||
cpuLoadStreams60s => '1.3.6.1.4.1.272.4.17.4.1.1.17',
|
||||
cpuLoadIdle60s => '1.3.6.1.4.1.272.4.17.4.1.1.18',
|
||||
memoryTable => '1.3.6.1.4.1.272.4.17.4.2',
|
||||
memoryEntry => '1.3.6.1.4.1.272.4.17.4.2.1',
|
||||
memoryType => '1.3.6.1.4.1.272.4.17.4.2.1.1',
|
||||
memoryTypeDefinition => 'BIANCA-BRICK-MIBRES-MIB::memoryType',
|
||||
memoryDescr => '1.3.6.1.4.1.272.4.17.4.2.1.2',
|
||||
memoryBlockSize => '1.3.6.1.4.1.272.4.17.4.2.1.3',
|
||||
memoryTotal => '1.3.6.1.4.1.272.4.17.4.2.1.4',
|
||||
memoryInuse => '1.3.6.1.4.1.272.4.17.4.2.1.5',
|
||||
memoryDramUse => '1.3.6.1.4.1.272.4.17.4.2.1.6',
|
||||
memoryNAllocs => '1.3.6.1.4.1.272.4.17.4.2.1.7',
|
||||
memoryNFrees => '1.3.6.1.4.1.272.4.17.4.2.1.8',
|
||||
memoryNFails => '1.3.6.1.4.1.272.4.17.4.2.1.9',
|
||||
dspTable => '1.3.6.1.4.1.272.4.17.4.3',
|
||||
dspEntry => '1.3.6.1.4.1.272.4.17.4.3.1',
|
||||
dspSlot => '1.3.6.1.4.1.272.4.17.4.3.1.1',
|
||||
dspUnit => '1.3.6.1.4.1.272.4.17.4.3.1.2',
|
||||
dspDescr => '1.3.6.1.4.1.272.4.17.4.3.1.3',
|
||||
dspCapabilities => '1.3.6.1.4.1.272.4.17.4.3.1.4',
|
||||
dspTotalChannels => '1.3.6.1.4.1.272.4.17.4.3.1.5',
|
||||
dspUsedChannels => '1.3.6.1.4.1.272.4.17.4.3.1.6',
|
||||
resourceMIB => '1.3.6.1.4.1.272.4.17.4.255',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'BIANCA-BRICK-MIBRES-MIB'} = {
|
||||
memoryType => {
|
||||
'1' => 'flash',
|
||||
'2' => 'dram',
|
||||
'3' => 'dpool',
|
||||
},
|
||||
};
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::BLUECOATAVMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'BLUECOAT-AV-MIB'} = {
|
||||
url => '',
|
||||
name => 'BLUECOAT-AV-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'BLUECOAT-AV-MIB'} = {
|
||||
'avFilesScanned' => '1.3.6.1.4.1.3417.2.10.1.1.0',
|
||||
'avVirusesDetected' => '1.3.6.1.4.1.3417.2.10.1.2.0',
|
||||
'avPatternVersion' => '1.3.6.1.4.1.3417.2.10.1.3.0',
|
||||
'avPatternDateTime' => '1.3.6.1.4.1.3417.2.10.1.4.0',
|
||||
'avEngineVersion' => '1.3.6.1.4.1.3417.2.10.1.5.0',
|
||||
'avVendorName' => '1.3.6.1.4.1.3417.2.10.1.6.0',
|
||||
'avLicenseDaysRemaining' => '1.3.6.1.4.1.3417.2.10.1.7.0',
|
||||
'avPublishedFirmwareVersion' => '1.3.6.1.4.1.3417.2.10.1.8.0',
|
||||
'avInstalledFirmwareVersion' => '1.3.6.1.4.1.3417.2.10.1.9.0',
|
||||
'avSlowICAPConnections' => '1.3.6.1.4.1.3417.2.10.1.10.0',
|
||||
'avUpdateFailureReason' => '1.3.6.1.4.1.3417.2.10.2.1.0',
|
||||
'avUrl' => '1.3.6.1.4.1.3417.2.10.2.2.0',
|
||||
'avVirusName' => '1.3.6.1.4.1.3417.2.10.2.3.0',
|
||||
'avVirusDetails' => '1.3.6.1.4.1.3417.2.10.2.4.0',
|
||||
'avErrorCode' => '1.3.6.1.4.1.3417.2.10.2.5.0',
|
||||
'avErrorDetails' => '1.3.6.1.4.1.3417.2.10.2.6.0',
|
||||
'avPreviousFirmwareVersion' => '1.3.6.1.4.1.3417.2.10.2.7.0',
|
||||
'avICTMWarningReason' => '1.3.6.1.4.1.3417.2.10.2.8.0',
|
||||
};
|
||||
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
|
@ -0,0 +1,50 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::BLUECOATSGPROXYMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'BLUECOAT-SG-PROXY-MIB'} = {
|
||||
url => '',
|
||||
name => 'BLUECOAT-SG-PROXY-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'BLUECOAT-SG-PROXY-MIB'} = {
|
||||
'blueCoatMgmt' => '1.3.6.1.4.1.3417.2',
|
||||
'bluecoatSGProxyMIB' => '1.3.6.1.4.1.3417.2.11',
|
||||
'sgProxyConfig' => '1.3.6.1.4.1.3417.2.11.1',
|
||||
'sgProxySystem' => '1.3.6.1.4.1.3417.2.11.2',
|
||||
'sgProxyMemAvailable' => '1.3.6.1.4.1.3417.2.11.2.3.1.0',
|
||||
'sgProxyMemCacheUsage' => '1.3.6.1.4.1.3417.2.11.2.3.2.0',
|
||||
'sgProxyMemSysUsage' => '1.3.6.1.4.1.3417.2.11.2.3.3.0',
|
||||
'sgProxyMemPressure' => '1.3.6.1.4.1.3417.2.11.2.3.4.0',
|
||||
'sgProxyCpuCoreTable' => '1.3.6.1.4.1.3417.2.11.2.4',
|
||||
'sgProxyCpuCoreEntry' => '1.3.6.1.4.1.3417.2.11.2.4.1',
|
||||
'sgProxyCpuCoreIndex' => '1.3.6.1.4.1.3417.2.11.2.4.1.1',
|
||||
'sgProxyCpuCoreUpTime' => '1.3.6.1.4.1.3417.2.11.2.4.1.2',
|
||||
'sgProxyCpuCoreBusyTime' => '1.3.6.1.4.1.3417.2.11.2.4.1.3',
|
||||
'sgProxyCpuCoreIdleTime' => '1.3.6.1.4.1.3417.2.11.2.4.1.4',
|
||||
'sgProxyCpuCoreUpTimeSinceLastAccess' => '1.3.6.1.4.1.3417.2.11.2.4.1.5',
|
||||
'sgProxyCpuCoreBusyTimeSinceLastAccess' => '1.3.6.1.4.1.3417.2.11.2.4.1.6',
|
||||
'sgProxyCpuCoreIdleTimeSinceLastAccess' => '1.3.6.1.4.1.3417.2.11.2.4.1.7',
|
||||
'sgProxyCpuCoreBusyPerCent' => '1.3.6.1.4.1.3417.2.11.2.4.1.8',
|
||||
'sgProxyCpuCoreIdlePerCent' => '1.3.6.1.4.1.3417.2.11.2.4.1.9',
|
||||
'sgProxyHttp' => '1.3.6.1.4.1.3417.2.11.3',
|
||||
'sgProxyHttpPerf' => '1.3.6.1.4.1.3417.2.11.3.1',
|
||||
'sgProxyHttpClient' => '1.3.6.1.4.1.3417.2.11.3.1.1',
|
||||
'sgProxyHttpServer' => '1.3.6.1.4.1.3417.2.11.3.1.2',
|
||||
'sgProxyHttpConnections' => '1.3.6.1.4.1.3417.2.11.3.1.3',
|
||||
'sgProxyHttpClientConnections' => '1.3.6.1.4.1.3417.2.11.3.1.3.1',
|
||||
'sgProxyHttpClientConnectionsActive' => '1.3.6.1.4.1.3417.2.11.3.1.3.2',
|
||||
'sgProxyHttpClientConnectionsIdle' => '1.3.6.1.4.1.3417.2.11.3.1.3.3',
|
||||
'sgProxyHttpServerConnections' => '1.3.6.1.4.1.3417.2.11.3.1.3.4',
|
||||
'sgProxyHttpServerConnectionsActive' => '1.3.6.1.4.1.3417.2.11.3.1.3.5',
|
||||
'sgProxyHttpServerConnectionsIdle' => '1.3.6.1.4.1.3417.2.11.3.1.3.6',
|
||||
'sgProxyHttpResponse' => '1.3.6.1.4.1.3417.2.11.3.2',
|
||||
'sgProxyHttpResponseTime' => '1.3.6.1.4.1.3417.2.11.3.2.1',
|
||||
'sgProxyHttpResponseTimeAll' => '1.3.6.1.4.1.3417.2.11.3.2.1.1',
|
||||
'sgProxyHttpResponseFirstByte' => '1.3.6.1.4.1.3417.2.11.3.2.1.2',
|
||||
'sgProxyHttpResponseByteRate' => '1.3.6.1.4.1.3417.2.11.3.2.1.3',
|
||||
'sgProxyHttpResponseSize' => '1.3.6.1.4.1.3417.2.11.3.2.1.4',
|
||||
};
|
||||
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,199 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::CISCOBGP4MIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'CISCO-BGP4-MIB'} = {
|
||||
url => '',
|
||||
name => 'CISCO-BGP4-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mib_ids->{'CISCO-BGP4-MIB'} =
|
||||
'1.3.6.1.4.1.9.9.187';
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'CISCO-BGP4-MIB'} = {
|
||||
ciscoBgp4MIB => '1.3.6.1.4.1.9.9.187',
|
||||
ciscoBgp4NotifyPrefix => '1.3.6.1.4.1.9.9.187.0',
|
||||
ciscoBgp4MIBObjects => '1.3.6.1.4.1.9.9.187.1',
|
||||
cbgpRoute => '1.3.6.1.4.1.9.9.187.1.1',
|
||||
cbgpRouteTable => '1.3.6.1.4.1.9.9.187.1.1.1',
|
||||
cbgpRouteEntry => '1.3.6.1.4.1.9.9.187.1.1.1.1',
|
||||
cbgpRouteAfi => '1.3.6.1.4.1.9.9.187.1.1.1.1.1',
|
||||
cbgpRouteSafi => '1.3.6.1.4.1.9.9.187.1.1.1.1.2',
|
||||
cbgpRouteSafiDefinition => 'CISCO-BGP4-MIB::CbgpSafi',
|
||||
cbgpRoutePeerType => '1.3.6.1.4.1.9.9.187.1.1.1.1.3',
|
||||
cbgpRoutePeer => '1.3.6.1.4.1.9.9.187.1.1.1.1.4',
|
||||
cbgpRouteAddrPrefix => '1.3.6.1.4.1.9.9.187.1.1.1.1.5',
|
||||
cbgpRouteAddrPrefixLen => '1.3.6.1.4.1.9.9.187.1.1.1.1.6',
|
||||
cbgpRouteOrigin => '1.3.6.1.4.1.9.9.187.1.1.1.1.7',
|
||||
cbgpRouteOriginDefinition => 'CISCO-BGP4-MIB::cbgpRouteOrigin',
|
||||
cbgpRouteASPathSegment => '1.3.6.1.4.1.9.9.187.1.1.1.1.8',
|
||||
cbgpRouteNextHop => '1.3.6.1.4.1.9.9.187.1.1.1.1.9',
|
||||
cbgpRouteMedPresent => '1.3.6.1.4.1.9.9.187.1.1.1.1.10',
|
||||
cbgpRouteMultiExitDisc => '1.3.6.1.4.1.9.9.187.1.1.1.1.11',
|
||||
cbgpRouteLocalPrefPresent => '1.3.6.1.4.1.9.9.187.1.1.1.1.12',
|
||||
cbgpRouteLocalPref => '1.3.6.1.4.1.9.9.187.1.1.1.1.13',
|
||||
cbgpRouteAtomicAggregate => '1.3.6.1.4.1.9.9.187.1.1.1.1.14',
|
||||
cbgpRouteAtomicAggregateDefinition => 'CISCO-BGP4-MIB::cbgpRouteAtomicAggregate',
|
||||
cbgpRouteAggregatorAS => '1.3.6.1.4.1.9.9.187.1.1.1.1.15',
|
||||
cbgpRouteAggregatorAddrType => '1.3.6.1.4.1.9.9.187.1.1.1.1.16',
|
||||
cbgpRouteAggregatorAddr => '1.3.6.1.4.1.9.9.187.1.1.1.1.17',
|
||||
cbgpRouteBest => '1.3.6.1.4.1.9.9.187.1.1.1.1.18',
|
||||
cbgpRouteUnknownAttr => '1.3.6.1.4.1.9.9.187.1.1.1.1.19',
|
||||
cbgpPeer => '1.3.6.1.4.1.9.9.187.1.2',
|
||||
cbgpPeerTable => '1.3.6.1.4.1.9.9.187.1.2.1',
|
||||
cbgpPeerEntry => '1.3.6.1.4.1.9.9.187.1.2.1.1',
|
||||
cbgpPeerPrefixAccepted => '1.3.6.1.4.1.9.9.187.1.2.1.1.1',
|
||||
cbgpPeerPrefixDenied => '1.3.6.1.4.1.9.9.187.1.2.1.1.2',
|
||||
cbgpPeerPrefixLimit => '1.3.6.1.4.1.9.9.187.1.2.1.1.3',
|
||||
cbgpPeerPrefixAdvertised => '1.3.6.1.4.1.9.9.187.1.2.1.1.4',
|
||||
cbgpPeerPrefixSuppressed => '1.3.6.1.4.1.9.9.187.1.2.1.1.5',
|
||||
cbgpPeerPrefixWithdrawn => '1.3.6.1.4.1.9.9.187.1.2.1.1.6',
|
||||
cbgpPeerLastErrorTxt => '1.3.6.1.4.1.9.9.187.1.2.1.1.7',
|
||||
cbgpPeerPrevState => '1.3.6.1.4.1.9.9.187.1.2.1.1.8',
|
||||
cbgpPeerPrevStateDefinition => 'CISCO-BGP4-MIB::cbgpPeerPrevState',
|
||||
cbgpPeerCapsTable => '1.3.6.1.4.1.9.9.187.1.2.2',
|
||||
cbgpPeerCapsEntry => '1.3.6.1.4.1.9.9.187.1.2.2.1',
|
||||
cbgpPeerCapCode => '1.3.6.1.4.1.9.9.187.1.2.2.1.1',
|
||||
cbgpPeerCapCodeDefinition => 'CISCO-BGP4-MIB::cbgpPeerCapCode',
|
||||
cbgpPeerCapIndex => '1.3.6.1.4.1.9.9.187.1.2.2.1.2',
|
||||
cbgpPeerCapValue => '1.3.6.1.4.1.9.9.187.1.2.2.1.3',
|
||||
cbgpPeerAddrFamilyTable => '1.3.6.1.4.1.9.9.187.1.2.3',
|
||||
cbgpPeerAddrFamilyEntry => '1.3.6.1.4.1.9.9.187.1.2.3.1',
|
||||
cbgpPeerAddrFamilyAfi => '1.3.6.1.4.1.9.9.187.1.2.3.1.1',
|
||||
cbgpPeerAddrFamilySafi => '1.3.6.1.4.1.9.9.187.1.2.3.1.2',
|
||||
cbgpPeerAddrFamilySafiDefinition => 'CISCO-BGP4-MIB::CbgpSafi',
|
||||
cbgpPeerAddrFamilyName => '1.3.6.1.4.1.9.9.187.1.2.3.1.3',
|
||||
cbgpPeerAddrFamilyPrefixTable => '1.3.6.1.4.1.9.9.187.1.2.4',
|
||||
cbgpPeerAddrFamilyPrefixEntry => '1.3.6.1.4.1.9.9.187.1.2.4.1',
|
||||
cbgpPeerAcceptedPrefixes => '1.3.6.1.4.1.9.9.187.1.2.4.1.1',
|
||||
cbgpPeerDeniedPrefixes => '1.3.6.1.4.1.9.9.187.1.2.4.1.2',
|
||||
cbgpPeerPrefixAdminLimit => '1.3.6.1.4.1.9.9.187.1.2.4.1.3',
|
||||
cbgpPeerPrefixThreshold => '1.3.6.1.4.1.9.9.187.1.2.4.1.4',
|
||||
cbgpPeerPrefixClearThreshold => '1.3.6.1.4.1.9.9.187.1.2.4.1.5',
|
||||
cbgpPeerAdvertisedPrefixes => '1.3.6.1.4.1.9.9.187.1.2.4.1.6',
|
||||
cbgpPeerSuppressedPrefixes => '1.3.6.1.4.1.9.9.187.1.2.4.1.7',
|
||||
cbgpPeerWithdrawnPrefixes => '1.3.6.1.4.1.9.9.187.1.2.4.1.8',
|
||||
cbgpPeer2Table => '1.3.6.1.4.1.9.9.187.1.2.5',
|
||||
cbgpPeer2Entry => '1.3.6.1.4.1.9.9.187.1.2.5.1',
|
||||
cbgpPeer2Type => '1.3.6.1.4.1.9.9.187.1.2.5.1.1',
|
||||
cbgpPeer2RemoteAddr => '1.3.6.1.4.1.9.9.187.1.2.5.1.2',
|
||||
cbgpPeer2State => '1.3.6.1.4.1.9.9.187.1.2.5.1.3',
|
||||
cbgpPeer2StateDefinition => 'CISCO-BGP4-MIB::cbgpPeer2State',
|
||||
cbgpPeer2AdminStatus => '1.3.6.1.4.1.9.9.187.1.2.5.1.4',
|
||||
cbgpPeer2AdminStatusDefinition => 'CISCO-BGP4-MIB::cbgpPeer2AdminStatus',
|
||||
cbgpPeer2NegotiatedVersion => '1.3.6.1.4.1.9.9.187.1.2.5.1.5',
|
||||
cbgpPeer2LocalAddr => '1.3.6.1.4.1.9.9.187.1.2.5.1.6',
|
||||
cbgpPeer2LocalPort => '1.3.6.1.4.1.9.9.187.1.2.5.1.7',
|
||||
cbgpPeer2LocalAs => '1.3.6.1.4.1.9.9.187.1.2.5.1.8',
|
||||
cbgpPeer2LocalIdentifier => '1.3.6.1.4.1.9.9.187.1.2.5.1.9',
|
||||
cbgpPeer2RemotePort => '1.3.6.1.4.1.9.9.187.1.2.5.1.10',
|
||||
cbgpPeer2RemoteAs => '1.3.6.1.4.1.9.9.187.1.2.5.1.11',
|
||||
cbgpPeer2RemoteIdentifier => '1.3.6.1.4.1.9.9.187.1.2.5.1.12',
|
||||
cbgpPeer2InUpdates => '1.3.6.1.4.1.9.9.187.1.2.5.1.13',
|
||||
cbgpPeer2OutUpdates => '1.3.6.1.4.1.9.9.187.1.2.5.1.14',
|
||||
cbgpPeer2InTotalMessages => '1.3.6.1.4.1.9.9.187.1.2.5.1.15',
|
||||
cbgpPeer2OutTotalMessages => '1.3.6.1.4.1.9.9.187.1.2.5.1.16',
|
||||
cbgpPeer2LastError => '1.3.6.1.4.1.9.9.187.1.2.5.1.17',
|
||||
cbgpPeer2FsmEstablishedTransitions => '1.3.6.1.4.1.9.9.187.1.2.5.1.18',
|
||||
cbgpPeer2FsmEstablishedTime => '1.3.6.1.4.1.9.9.187.1.2.5.1.19',
|
||||
cbgpPeer2ConnectRetryInterval => '1.3.6.1.4.1.9.9.187.1.2.5.1.20',
|
||||
cbgpPeer2HoldTime => '1.3.6.1.4.1.9.9.187.1.2.5.1.21',
|
||||
cbgpPeer2KeepAlive => '1.3.6.1.4.1.9.9.187.1.2.5.1.22',
|
||||
cbgpPeer2HoldTimeConfigured => '1.3.6.1.4.1.9.9.187.1.2.5.1.23',
|
||||
cbgpPeer2KeepAliveConfigured => '1.3.6.1.4.1.9.9.187.1.2.5.1.24',
|
||||
cbgpPeer2MinASOriginationInterval => '1.3.6.1.4.1.9.9.187.1.2.5.1.25',
|
||||
cbgpPeer2MinRouteAdvertisementInterval => '1.3.6.1.4.1.9.9.187.1.2.5.1.26',
|
||||
cbgpPeer2InUpdateElapsedTime => '1.3.6.1.4.1.9.9.187.1.2.5.1.27',
|
||||
cbgpPeer2LastErrorTxt => '1.3.6.1.4.1.9.9.187.1.2.5.1.28',
|
||||
cbgpPeer2PrevState => '1.3.6.1.4.1.9.9.187.1.2.5.1.29',
|
||||
cbgpPeer2PrevStateDefinition => 'CISCO-BGP4-MIB::cbgpPeer2PrevState',
|
||||
cbgpPeer2CapsTable => '1.3.6.1.4.1.9.9.187.1.2.6',
|
||||
cbgpPeer2CapsEntry => '1.3.6.1.4.1.9.9.187.1.2.6.1',
|
||||
cbgpPeer2CapCode => '1.3.6.1.4.1.9.9.187.1.2.6.1.1',
|
||||
cbgpPeer2CapCodeDefinition => 'CISCO-BGP4-MIB::cbgpPeer2CapCode',
|
||||
cbgpPeer2CapIndex => '1.3.6.1.4.1.9.9.187.1.2.6.1.2',
|
||||
cbgpPeer2CapValue => '1.3.6.1.4.1.9.9.187.1.2.6.1.3',
|
||||
cbgpPeer2AddrFamilyTable => '1.3.6.1.4.1.9.9.187.1.2.7',
|
||||
cbgpPeer2AddrFamilyEntry => '1.3.6.1.4.1.9.9.187.1.2.7.1',
|
||||
cbgpPeer2AddrFamilyAfi => '1.3.6.1.4.1.9.9.187.1.2.7.1.1',
|
||||
cbgpPeer2AddrFamilySafi => '1.3.6.1.4.1.9.9.187.1.2.7.1.2',
|
||||
cbgpPeer2AddrFamilySafiDefinition => 'CISCO-BGP4-MIB::CbgpSafi',
|
||||
cbgpPeer2AddrFamilyName => '1.3.6.1.4.1.9.9.187.1.2.7.1.3',
|
||||
cbgpPeer2AddrFamilyPrefixTable => '1.3.6.1.4.1.9.9.187.1.2.8',
|
||||
cbgpPeer2AddrFamilyPrefixEntry => '1.3.6.1.4.1.9.9.187.1.2.8.1',
|
||||
cbgpPeer2AcceptedPrefixes => '1.3.6.1.4.1.9.9.187.1.2.8.1.1',
|
||||
cbgpPeer2DeniedPrefixes => '1.3.6.1.4.1.9.9.187.1.2.8.1.2',
|
||||
cbgpPeer2PrefixAdminLimit => '1.3.6.1.4.1.9.9.187.1.2.8.1.3',
|
||||
cbgpPeer2PrefixThreshold => '1.3.6.1.4.1.9.9.187.1.2.8.1.4',
|
||||
cbgpPeer2PrefixClearThreshold => '1.3.6.1.4.1.9.9.187.1.2.8.1.5',
|
||||
cbgpPeer2AdvertisedPrefixes => '1.3.6.1.4.1.9.9.187.1.2.8.1.6',
|
||||
cbgpPeer2SuppressedPrefixes => '1.3.6.1.4.1.9.9.187.1.2.8.1.7',
|
||||
cbgpPeer2WithdrawnPrefixes => '1.3.6.1.4.1.9.9.187.1.2.8.1.8',
|
||||
cbgpGlobal => '1.3.6.1.4.1.9.9.187.1.3',
|
||||
cbgpNotifsEnable => '1.3.6.1.4.1.9.9.187.1.3.1',
|
||||
cbgpLocalAs => '1.3.6.1.4.1.9.9.187.1.3.2',
|
||||
ciscoBgp4NotificationPrefix => '1.3.6.1.4.1.9.9.187.2',
|
||||
ciscoBgp4MIBConformance => '1.3.6.1.4.1.9.9.187.3',
|
||||
ciscoBgp4MIBCompliances => '1.3.6.1.4.1.9.9.187.3.1',
|
||||
ciscoBgp4MIBGroups => '1.3.6.1.4.1.9.9.187.3.2',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::definitions->{'CISCO-BGP4-MIB'} = {
|
||||
cbgpPeerCapCode => {
|
||||
'1' => 'multiProtocol',
|
||||
'2' => 'routeRefresh',
|
||||
'64' => 'gracefulRestart',
|
||||
'128' => 'routeRefreshOld',
|
||||
},
|
||||
cbgpPeer2State => {
|
||||
'1' => 'idle',
|
||||
'2' => 'connect',
|
||||
'3' => 'active',
|
||||
'4' => 'opensent',
|
||||
'5' => 'openconfirm',
|
||||
'6' => 'established',
|
||||
},
|
||||
CbgpSafi => {
|
||||
'1' => 'unicast',
|
||||
'2' => 'multicast',
|
||||
'3' => 'unicastAndMulticast',
|
||||
'128' => 'vpn',
|
||||
},
|
||||
cbgpRouteOrigin => {
|
||||
'1' => 'igp',
|
||||
'2' => 'egp',
|
||||
'3' => 'incomplete',
|
||||
},
|
||||
cbgpPeer2CapCode => {
|
||||
'1' => 'multiProtocol',
|
||||
'2' => 'routeRefresh',
|
||||
'64' => 'gracefulRestart',
|
||||
'65' => 'fourByteAs',
|
||||
'69' => 'addPath',
|
||||
'128' => 'routeRefreshOld',
|
||||
},
|
||||
cbgpPeerPrevState => {
|
||||
'0' => 'none',
|
||||
'1' => 'idle',
|
||||
'2' => 'connect',
|
||||
'3' => 'active',
|
||||
'4' => 'opensent',
|
||||
'5' => 'openconfirm',
|
||||
'6' => 'established',
|
||||
},
|
||||
cbgpRouteAtomicAggregate => {
|
||||
'1' => 'lessSpecificRouteNotSelected',
|
||||
'2' => 'lessSpecificRouteSelected',
|
||||
},
|
||||
cbgpPeer2AdminStatus => {
|
||||
'1' => 'stop',
|
||||
'2' => 'start',
|
||||
},
|
||||
cbgpPeer2PrevState => {
|
||||
'0' => 'none',
|
||||
'1' => 'idle',
|
||||
'2' => 'connect',
|
||||
'3' => 'active',
|
||||
'4' => 'opensent',
|
||||
'5' => 'openconfirm',
|
||||
'6' => 'established',
|
||||
},
|
||||
};
|
|
@ -0,0 +1,437 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::CISCOCCMMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'CISCO-CCM-MIB'} = {
|
||||
url => '',
|
||||
name => 'CISCO-CCM-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'CISCO-CCM-MIB'} = {
|
||||
'org' => '1.3',
|
||||
'dod' => '1.3.6',
|
||||
'internet' => '1.3.6.1',
|
||||
'directory' => '1.3.6.1.1',
|
||||
'mgmt' => '1.3.6.1.2',
|
||||
'experimental' => '1.3.6.1.3',
|
||||
'private' => '1.3.6.1.4',
|
||||
'enterprises' => '1.3.6.1.4.1',
|
||||
'cisco' => '1.3.6.1.4.1.9',
|
||||
'ciscoMgmt' => '1.3.6.1.4.1.9.9',
|
||||
'ciscoCcmMIB' => '1.3.6.1.4.1.9.9.156',
|
||||
'ciscoCcmMIBObjects' => '1.3.6.1.4.1.9.9.156.1',
|
||||
'ccmGeneralInfo' => '1.3.6.1.4.1.9.9.156.1.1',
|
||||
'ccmGroupTable' => '1.3.6.1.4.1.9.9.156.1.1.1',
|
||||
'ccmGroupEntry' => '1.3.6.1.4.1.9.9.156.1.1.1.1',
|
||||
'ccmGroupIndex' => '1.3.6.1.4.1.9.9.156.1.1.1.1.1',
|
||||
'ccmGroupName' => '1.3.6.1.4.1.9.9.156.1.1.1.1.2',
|
||||
'ccmGroupTftpDefault' => '1.3.6.1.4.1.9.9.156.1.1.1.1.3',
|
||||
'ccmTable' => '1.3.6.1.4.1.9.9.156.1.1.2',
|
||||
'ccmEntry' => '1.3.6.1.4.1.9.9.156.1.1.2.1',
|
||||
'ccmIndex' => '1.3.6.1.4.1.9.9.156.1.1.2.1.1',
|
||||
'ccmName' => '1.3.6.1.4.1.9.9.156.1.1.2.1.2',
|
||||
'ccmDescription' => '1.3.6.1.4.1.9.9.156.1.1.2.1.3',
|
||||
'ccmVersion' => '1.3.6.1.4.1.9.9.156.1.1.2.1.4',
|
||||
'ccmStatus' => '1.3.6.1.4.1.9.9.156.1.1.2.1.5',
|
||||
'ccmStatusDefinition' => {
|
||||
'1' => 'unknown',
|
||||
'2' => 'up',
|
||||
'3' => 'down',
|
||||
},
|
||||
'ccmInetAddressType' => '1.3.6.1.4.1.9.9.156.1.1.2.1.6',
|
||||
'ccmInetAddress' => '1.3.6.1.4.1.9.9.156.1.1.2.1.7',
|
||||
'ccmClusterId' => '1.3.6.1.4.1.9.9.156.1.1.2.1.8',
|
||||
'ccmInetAddress2Type' => '1.3.6.1.4.1.9.9.156.1.1.2.1.9',
|
||||
'ccmInetAddress2' => '1.3.6.1.4.1.9.9.156.1.1.2.1.10',
|
||||
'ccmGroupMappingTable' => '1.3.6.1.4.1.9.9.156.1.1.3',
|
||||
'ccmGroupMappingEntry' => '1.3.6.1.4.1.9.9.156.1.1.3.1',
|
||||
'ccmCMGroupMappingCMPriority' => '1.3.6.1.4.1.9.9.156.1.1.3.1.1',
|
||||
'ccmRegionTable' => '1.3.6.1.4.1.9.9.156.1.1.4',
|
||||
'ccmRegionEntry' => '1.3.6.1.4.1.9.9.156.1.1.4.1',
|
||||
'ccmRegionIndex' => '1.3.6.1.4.1.9.9.156.1.1.4.1.1',
|
||||
'ccmRegionName' => '1.3.6.1.4.1.9.9.156.1.1.4.1.2',
|
||||
'ccmRegionPairTable' => '1.3.6.1.4.1.9.9.156.1.1.5',
|
||||
'ccmRegionPairEntry' => '1.3.6.1.4.1.9.9.156.1.1.5.1',
|
||||
'ccmRegionSrcIndex' => '1.3.6.1.4.1.9.9.156.1.1.5.1.1',
|
||||
'ccmRegionDestIndex' => '1.3.6.1.4.1.9.9.156.1.1.5.1.2',
|
||||
'ccmRegionAvailableBandWidth' => '1.3.6.1.4.1.9.9.156.1.1.5.1.3',
|
||||
'ccmTimeZoneTable' => '1.3.6.1.4.1.9.9.156.1.1.6',
|
||||
'ccmTimeZoneEntry' => '1.3.6.1.4.1.9.9.156.1.1.6.1',
|
||||
'ccmTimeZoneIndex' => '1.3.6.1.4.1.9.9.156.1.1.6.1.1',
|
||||
'ccmTimeZoneName' => '1.3.6.1.4.1.9.9.156.1.1.6.1.2',
|
||||
'ccmTimeZoneOffset' => '1.3.6.1.4.1.9.9.156.1.1.6.1.3',
|
||||
'ccmTimeZoneOffsetHours' => '1.3.6.1.4.1.9.9.156.1.1.6.1.4',
|
||||
'ccmTimeZoneOffsetMinutes' => '1.3.6.1.4.1.9.9.156.1.1.6.1.5',
|
||||
'ccmDevicePoolTable' => '1.3.6.1.4.1.9.9.156.1.1.7',
|
||||
'ccmDevicePoolEntry' => '1.3.6.1.4.1.9.9.156.1.1.7.1',
|
||||
'ccmDevicePoolIndex' => '1.3.6.1.4.1.9.9.156.1.1.7.1.1',
|
||||
'ccmDevicePoolName' => '1.3.6.1.4.1.9.9.156.1.1.7.1.2',
|
||||
'ccmDevicePoolRegionIndex' => '1.3.6.1.4.1.9.9.156.1.1.7.1.3',
|
||||
'ccmDevicePoolTimeZoneIndex' => '1.3.6.1.4.1.9.9.156.1.1.7.1.4',
|
||||
'ccmDevicePoolGroupIndex' => '1.3.6.1.4.1.9.9.156.1.1.7.1.5',
|
||||
'ccmProductTypeTable' => '1.3.6.1.4.1.9.9.156.1.1.8',
|
||||
'ccmProductTypeEntry' => '1.3.6.1.4.1.9.9.156.1.1.8.1',
|
||||
'ccmProductTypeIndex' => '1.3.6.1.4.1.9.9.156.1.1.8.1.1',
|
||||
'ccmProductType' => '1.3.6.1.4.1.9.9.156.1.1.8.1.2',
|
||||
'ccmProductName' => '1.3.6.1.4.1.9.9.156.1.1.8.1.3',
|
||||
'ccmProductCategory' => '1.3.6.1.4.1.9.9.156.1.1.8.1.4',
|
||||
'ccmPhoneInfo' => '1.3.6.1.4.1.9.9.156.1.2',
|
||||
'ccmPhoneTable' => '1.3.6.1.4.1.9.9.156.1.2.1',
|
||||
'ccmPhoneEntry' => '1.3.6.1.4.1.9.9.156.1.2.1.1',
|
||||
'ccmPhoneIndex' => '1.3.6.1.4.1.9.9.156.1.2.1.1.1',
|
||||
'ccmPhonePhysicalAddress' => '1.3.6.1.4.1.9.9.156.1.2.1.1.2',
|
||||
'ccmPhoneType' => '1.3.6.1.4.1.9.9.156.1.2.1.1.3',
|
||||
'ccmPhoneDescription' => '1.3.6.1.4.1.9.9.156.1.2.1.1.4',
|
||||
'ccmPhoneUserName' => '1.3.6.1.4.1.9.9.156.1.2.1.1.5',
|
||||
'ccmPhoneIpAddress' => '1.3.6.1.4.1.9.9.156.1.2.1.1.6',
|
||||
'ccmPhoneStatus' => '1.3.6.1.4.1.9.9.156.1.2.1.1.7',
|
||||
'ccmPhoneTimeLastRegistered' => '1.3.6.1.4.1.9.9.156.1.2.1.1.8',
|
||||
'ccmPhoneE911Location' => '1.3.6.1.4.1.9.9.156.1.2.1.1.9',
|
||||
'ccmPhoneLoadID' => '1.3.6.1.4.1.9.9.156.1.2.1.1.10',
|
||||
'ccmPhoneLastError' => '1.3.6.1.4.1.9.9.156.1.2.1.1.11',
|
||||
'ccmPhoneTimeLastError' => '1.3.6.1.4.1.9.9.156.1.2.1.1.12',
|
||||
'ccmPhoneDevicePoolIndex' => '1.3.6.1.4.1.9.9.156.1.2.1.1.13',
|
||||
'ccmPhoneInetAddressType' => '1.3.6.1.4.1.9.9.156.1.2.1.1.14',
|
||||
'ccmPhoneInetAddress' => '1.3.6.1.4.1.9.9.156.1.2.1.1.15',
|
||||
'ccmPhoneStatusReason' => '1.3.6.1.4.1.9.9.156.1.2.1.1.16',
|
||||
'ccmPhoneTimeLastStatusUpdt' => '1.3.6.1.4.1.9.9.156.1.2.1.1.17',
|
||||
'ccmPhoneProductTypeIndex' => '1.3.6.1.4.1.9.9.156.1.2.1.1.18',
|
||||
'ccmPhoneProtocol' => '1.3.6.1.4.1.9.9.156.1.2.1.1.19',
|
||||
'ccmPhoneName' => '1.3.6.1.4.1.9.9.156.1.2.1.1.20',
|
||||
'ccmPhoneInetAddressIPv4' => '1.3.6.1.4.1.9.9.156.1.2.1.1.21',
|
||||
'ccmPhoneInetAddressIPv6' => '1.3.6.1.4.1.9.9.156.1.2.1.1.22',
|
||||
'ccmPhoneIPv4Attribute' => '1.3.6.1.4.1.9.9.156.1.2.1.1.23',
|
||||
'ccmPhoneIPv6Attribute' => '1.3.6.1.4.1.9.9.156.1.2.1.1.24',
|
||||
'ccmPhoneActiveLoadID' => '1.3.6.1.4.1.9.9.156.1.2.1.1.25',
|
||||
'ccmPhoneUnregReason' => '1.3.6.1.4.1.9.9.156.1.2.1.1.26',
|
||||
'ccmPhoneRegFailReason' => '1.3.6.1.4.1.9.9.156.1.2.1.1.27',
|
||||
'ccmPhoneExtensionTable' => '1.3.6.1.4.1.9.9.156.1.2.2',
|
||||
'ccmPhoneExtensionEntry' => '1.3.6.1.4.1.9.9.156.1.2.2.1',
|
||||
'ccmPhoneExtensionIndex' => '1.3.6.1.4.1.9.9.156.1.2.2.1.1',
|
||||
'ccmPhoneExtension' => '1.3.6.1.4.1.9.9.156.1.2.2.1.2',
|
||||
'ccmPhoneExtensionIpAddress' => '1.3.6.1.4.1.9.9.156.1.2.2.1.3',
|
||||
'ccmPhoneExtensionMultiLines' => '1.3.6.1.4.1.9.9.156.1.2.2.1.4',
|
||||
'ccmPhoneExtensionInetAddressType' => '1.3.6.1.4.1.9.9.156.1.2.2.1.5',
|
||||
'ccmPhoneExtensionInetAddress' => '1.3.6.1.4.1.9.9.156.1.2.2.1.6',
|
||||
'ccmPhoneFailedTable' => '1.3.6.1.4.1.9.9.156.1.2.3',
|
||||
'ccmPhoneFailedEntry' => '1.3.6.1.4.1.9.9.156.1.2.3.1',
|
||||
'ccmPhoneFailedIndex' => '1.3.6.1.4.1.9.9.156.1.2.3.1.1',
|
||||
'ccmPhoneFailedTime' => '1.3.6.1.4.1.9.9.156.1.2.3.1.2',
|
||||
'ccmPhoneFailedName' => '1.3.6.1.4.1.9.9.156.1.2.3.1.3',
|
||||
'ccmPhoneFailedInetAddressType' => '1.3.6.1.4.1.9.9.156.1.2.3.1.4',
|
||||
'ccmPhoneFailedInetAddress' => '1.3.6.1.4.1.9.9.156.1.2.3.1.5',
|
||||
'ccmPhoneFailCauseCode' => '1.3.6.1.4.1.9.9.156.1.2.3.1.6',
|
||||
'ccmPhoneFailedMacAddress' => '1.3.6.1.4.1.9.9.156.1.2.3.1.7',
|
||||
'ccmPhoneFailedInetAddressIPv4' => '1.3.6.1.4.1.9.9.156.1.2.3.1.8',
|
||||
'ccmPhoneFailedInetAddressIPv6' => '1.3.6.1.4.1.9.9.156.1.2.3.1.9',
|
||||
'ccmPhoneFailedIPv4Attribute' => '1.3.6.1.4.1.9.9.156.1.2.3.1.10',
|
||||
'ccmPhoneFailedIPv6Attribute' => '1.3.6.1.4.1.9.9.156.1.2.3.1.11',
|
||||
'ccmPhoneFailedRegFailReason' => '1.3.6.1.4.1.9.9.156.1.2.3.1.12',
|
||||
'ccmPhoneStatusUpdateTable' => '1.3.6.1.4.1.9.9.156.1.2.4',
|
||||
'ccmPhoneStatusUpdateEntry' => '1.3.6.1.4.1.9.9.156.1.2.4.1',
|
||||
'ccmPhoneStatusUpdateIndex' => '1.3.6.1.4.1.9.9.156.1.2.4.1.1',
|
||||
'ccmPhoneStatusPhoneIndex' => '1.3.6.1.4.1.9.9.156.1.2.4.1.2',
|
||||
'ccmPhoneStatusUpdateTime' => '1.3.6.1.4.1.9.9.156.1.2.4.1.3',
|
||||
'ccmPhoneStatusUpdateType' => '1.3.6.1.4.1.9.9.156.1.2.4.1.4',
|
||||
'ccmPhoneStatusUpdateReason' => '1.3.6.1.4.1.9.9.156.1.2.4.1.5',
|
||||
'ccmPhoneStatusUnregReason' => '1.3.6.1.4.1.9.9.156.1.2.4.1.6',
|
||||
'ccmPhoneStatusRegFailReason' => '1.3.6.1.4.1.9.9.156.1.2.4.1.7',
|
||||
'ccmPhoneExtnTable' => '1.3.6.1.4.1.9.9.156.1.2.5',
|
||||
'ccmPhoneExtnEntry' => '1.3.6.1.4.1.9.9.156.1.2.5.1',
|
||||
'ccmPhoneExtnIndex' => '1.3.6.1.4.1.9.9.156.1.2.5.1.1',
|
||||
'ccmPhoneExtn' => '1.3.6.1.4.1.9.9.156.1.2.5.1.2',
|
||||
'ccmPhoneExtnMultiLines' => '1.3.6.1.4.1.9.9.156.1.2.5.1.3',
|
||||
'ccmPhoneExtnInetAddressType' => '1.3.6.1.4.1.9.9.156.1.2.5.1.4',
|
||||
'ccmPhoneExtnInetAddress' => '1.3.6.1.4.1.9.9.156.1.2.5.1.5',
|
||||
'ccmPhoneExtnStatus' => '1.3.6.1.4.1.9.9.156.1.2.5.1.6',
|
||||
'ccmGatewayInfo' => '1.3.6.1.4.1.9.9.156.1.3',
|
||||
'ccmGatewayTable' => '1.3.6.1.4.1.9.9.156.1.3.1',
|
||||
'ccmGatewayEntry' => '1.3.6.1.4.1.9.9.156.1.3.1.1',
|
||||
'ccmGatewayIndex' => '1.3.6.1.4.1.9.9.156.1.3.1.1.1',
|
||||
'ccmGatewayName' => '1.3.6.1.4.1.9.9.156.1.3.1.1.2',
|
||||
'ccmGatewayType' => '1.3.6.1.4.1.9.9.156.1.3.1.1.3',
|
||||
'ccmGatewayDescription' => '1.3.6.1.4.1.9.9.156.1.3.1.1.4',
|
||||
'ccmGatewayStatus' => '1.3.6.1.4.1.9.9.156.1.3.1.1.5',
|
||||
'ccmGatewayDevicePoolIndex' => '1.3.6.1.4.1.9.9.156.1.3.1.1.6',
|
||||
'ccmGatewayInetAddressType' => '1.3.6.1.4.1.9.9.156.1.3.1.1.7',
|
||||
'ccmGatewayInetAddress' => '1.3.6.1.4.1.9.9.156.1.3.1.1.8',
|
||||
'ccmGatewayProductId' => '1.3.6.1.4.1.9.9.156.1.3.1.1.9',
|
||||
'ccmGatewayStatusReason' => '1.3.6.1.4.1.9.9.156.1.3.1.1.10',
|
||||
'ccmGatewayTimeLastStatusUpdt' => '1.3.6.1.4.1.9.9.156.1.3.1.1.11',
|
||||
'ccmGatewayTimeLastRegistered' => '1.3.6.1.4.1.9.9.156.1.3.1.1.12',
|
||||
'ccmGatewayDChannelStatus' => '1.3.6.1.4.1.9.9.156.1.3.1.1.13',
|
||||
'ccmGatewayDChannelNumber' => '1.3.6.1.4.1.9.9.156.1.3.1.1.14',
|
||||
'ccmGatewayProductTypeIndex' => '1.3.6.1.4.1.9.9.156.1.3.1.1.15',
|
||||
'ccmGatewayUnregReason' => '1.3.6.1.4.1.9.9.156.1.3.1.1.16',
|
||||
'ccmGatewayRegFailReason' => '1.3.6.1.4.1.9.9.156.1.3.1.1.17',
|
||||
'ccmGatewayTrunkInfo' => '1.3.6.1.4.1.9.9.156.1.4',
|
||||
'ccmGatewayTrunkTable' => '1.3.6.1.4.1.9.9.156.1.4.1',
|
||||
'ccmGatewayTrunkEntry' => '1.3.6.1.4.1.9.9.156.1.4.1.1',
|
||||
'ccmGatewayTrunkIndex' => '1.3.6.1.4.1.9.9.156.1.4.1.1.1',
|
||||
'ccmGatewayTrunkType' => '1.3.6.1.4.1.9.9.156.1.4.1.1.2',
|
||||
'ccmGatewayTrunkName' => '1.3.6.1.4.1.9.9.156.1.4.1.1.3',
|
||||
'ccmTrunkGatewayIndex' => '1.3.6.1.4.1.9.9.156.1.4.1.1.4',
|
||||
'ccmGatewayTrunkStatus' => '1.3.6.1.4.1.9.9.156.1.4.1.1.5',
|
||||
'ccmGlobalInfo' => '1.3.6.1.4.1.9.9.156.1.5',
|
||||
'ccmActivePhones' => '1.3.6.1.4.1.9.9.156.1.5.1',
|
||||
'ccmInActivePhones' => '1.3.6.1.4.1.9.9.156.1.5.2',
|
||||
'ccmActiveGateways' => '1.3.6.1.4.1.9.9.156.1.5.3',
|
||||
'ccmInActiveGateways' => '1.3.6.1.4.1.9.9.156.1.5.4',
|
||||
'ccmRegisteredPhones' => '1.3.6.1.4.1.9.9.156.1.5.5',
|
||||
'ccmUnregisteredPhones' => '1.3.6.1.4.1.9.9.156.1.5.6',
|
||||
'ccmRejectedPhones' => '1.3.6.1.4.1.9.9.156.1.5.7',
|
||||
'ccmRegisteredGateways' => '1.3.6.1.4.1.9.9.156.1.5.8',
|
||||
'ccmUnregisteredGateways' => '1.3.6.1.4.1.9.9.156.1.5.9',
|
||||
'ccmRejectedGateways' => '1.3.6.1.4.1.9.9.156.1.5.10',
|
||||
'ccmRegisteredMediaDevices' => '1.3.6.1.4.1.9.9.156.1.5.11',
|
||||
'ccmUnregisteredMediaDevices' => '1.3.6.1.4.1.9.9.156.1.5.12',
|
||||
'ccmRejectedMediaDevices' => '1.3.6.1.4.1.9.9.156.1.5.13',
|
||||
'ccmRegisteredCTIDevices' => '1.3.6.1.4.1.9.9.156.1.5.14',
|
||||
'ccmUnregisteredCTIDevices' => '1.3.6.1.4.1.9.9.156.1.5.15',
|
||||
'ccmRejectedCTIDevices' => '1.3.6.1.4.1.9.9.156.1.5.16',
|
||||
'ccmRegisteredVoiceMailDevices' => '1.3.6.1.4.1.9.9.156.1.5.17',
|
||||
'ccmUnregisteredVoiceMailDevices' => '1.3.6.1.4.1.9.9.156.1.5.18',
|
||||
'ccmRejectedVoiceMailDevices' => '1.3.6.1.4.1.9.9.156.1.5.19',
|
||||
'ccmCallManagerStartTime' => '1.3.6.1.4.1.9.9.156.1.5.20',
|
||||
'ccmPhoneTableStateId' => '1.3.6.1.4.1.9.9.156.1.5.21',
|
||||
'ccmPhoneExtensionTableStateId' => '1.3.6.1.4.1.9.9.156.1.5.22',
|
||||
'ccmPhoneStatusUpdateTableStateId' => '1.3.6.1.4.1.9.9.156.1.5.23',
|
||||
'ccmGatewayTableStateId' => '1.3.6.1.4.1.9.9.156.1.5.24',
|
||||
'ccmCTIDeviceTableStateId' => '1.3.6.1.4.1.9.9.156.1.5.25',
|
||||
'ccmCTIDeviceDirNumTableStateId' => '1.3.6.1.4.1.9.9.156.1.5.26',
|
||||
'ccmPhStatUpdtTblLastAddedIndex' => '1.3.6.1.4.1.9.9.156.1.5.27',
|
||||
'ccmPhFailedTblLastAddedIndex' => '1.3.6.1.4.1.9.9.156.1.5.28',
|
||||
'ccmSystemVersion' => '1.3.6.1.4.1.9.9.156.1.5.29',
|
||||
'ccmInstallationId' => '1.3.6.1.4.1.9.9.156.1.5.30',
|
||||
'ccmPartiallyRegisteredPhones' => '1.3.6.1.4.1.9.9.156.1.5.31',
|
||||
'ccmH323TableEntries' => '1.3.6.1.4.1.9.9.156.1.5.32',
|
||||
'ccmSIPTableEntries' => '1.3.6.1.4.1.9.9.156.1.5.33',
|
||||
'ccmMediaDeviceInfo' => '1.3.6.1.4.1.9.9.156.1.6',
|
||||
'ccmMediaDeviceTable' => '1.3.6.1.4.1.9.9.156.1.6.1',
|
||||
'ccmMediaDeviceEntry' => '1.3.6.1.4.1.9.9.156.1.6.1.1',
|
||||
'ccmMediaDeviceIndex' => '1.3.6.1.4.1.9.9.156.1.6.1.1.1',
|
||||
'ccmMediaDeviceName' => '1.3.6.1.4.1.9.9.156.1.6.1.1.2',
|
||||
'ccmMediaDeviceType' => '1.3.6.1.4.1.9.9.156.1.6.1.1.3',
|
||||
'ccmMediaDeviceDescription' => '1.3.6.1.4.1.9.9.156.1.6.1.1.4',
|
||||
'ccmMediaDeviceStatus' => '1.3.6.1.4.1.9.9.156.1.6.1.1.5',
|
||||
'ccmMediaDeviceDevicePoolIndex' => '1.3.6.1.4.1.9.9.156.1.6.1.1.6',
|
||||
'ccmMediaDeviceInetAddressType' => '1.3.6.1.4.1.9.9.156.1.6.1.1.7',
|
||||
'ccmMediaDeviceInetAddress' => '1.3.6.1.4.1.9.9.156.1.6.1.1.8',
|
||||
'ccmMediaDeviceStatusReason' => '1.3.6.1.4.1.9.9.156.1.6.1.1.9',
|
||||
'ccmMediaDeviceTimeLastStatusUpdt' => '1.3.6.1.4.1.9.9.156.1.6.1.1.10',
|
||||
'ccmMediaDeviceTimeLastRegistered' => '1.3.6.1.4.1.9.9.156.1.6.1.1.11',
|
||||
'ccmMediaDeviceProductTypeIndex' => '1.3.6.1.4.1.9.9.156.1.6.1.1.12',
|
||||
'ccmMediaDeviceInetAddressIPv4' => '1.3.6.1.4.1.9.9.156.1.6.1.1.13',
|
||||
'ccmMediaDeviceInetAddressIPv6' => '1.3.6.1.4.1.9.9.156.1.6.1.1.14',
|
||||
'ccmMediaDeviceUnregReason' => '1.3.6.1.4.1.9.9.156.1.6.1.1.15',
|
||||
'ccmMediaDeviceRegFailReason' => '1.3.6.1.4.1.9.9.156.1.6.1.1.16',
|
||||
'ccmGatekeeperInfo' => '1.3.6.1.4.1.9.9.156.1.7',
|
||||
'ccmGatekeeperTable' => '1.3.6.1.4.1.9.9.156.1.7.1',
|
||||
'ccmGatekeeperEntry' => '1.3.6.1.4.1.9.9.156.1.7.1.1',
|
||||
'ccmGatekeeperIndex' => '1.3.6.1.4.1.9.9.156.1.7.1.1.1',
|
||||
'ccmGatekeeperName' => '1.3.6.1.4.1.9.9.156.1.7.1.1.2',
|
||||
'ccmGatekeeperType' => '1.3.6.1.4.1.9.9.156.1.7.1.1.3',
|
||||
'ccmGatekeeperDescription' => '1.3.6.1.4.1.9.9.156.1.7.1.1.4',
|
||||
'ccmGatekeeperStatus' => '1.3.6.1.4.1.9.9.156.1.7.1.1.5',
|
||||
'ccmGatekeeperDevicePoolIndex' => '1.3.6.1.4.1.9.9.156.1.7.1.1.6',
|
||||
'ccmGatekeeperInetAddressType' => '1.3.6.1.4.1.9.9.156.1.7.1.1.7',
|
||||
'ccmGatekeeperInetAddress' => '1.3.6.1.4.1.9.9.156.1.7.1.1.8',
|
||||
'ccmCTIDeviceInfo' => '1.3.6.1.4.1.9.9.156.1.8',
|
||||
'ccmCTIDeviceTable' => '1.3.6.1.4.1.9.9.156.1.8.1',
|
||||
'ccmCTIDeviceEntry' => '1.3.6.1.4.1.9.9.156.1.8.1.1',
|
||||
'ccmCTIDeviceIndex' => '1.3.6.1.4.1.9.9.156.1.8.1.1.1',
|
||||
'ccmCTIDeviceName' => '1.3.6.1.4.1.9.9.156.1.8.1.1.2',
|
||||
'ccmCTIDeviceType' => '1.3.6.1.4.1.9.9.156.1.8.1.1.3',
|
||||
'ccmCTIDeviceDescription' => '1.3.6.1.4.1.9.9.156.1.8.1.1.4',
|
||||
'ccmCTIDeviceStatus' => '1.3.6.1.4.1.9.9.156.1.8.1.1.5',
|
||||
'ccmCTIDevicePoolIndex' => '1.3.6.1.4.1.9.9.156.1.8.1.1.6',
|
||||
'ccmCTIDeviceInetAddressType' => '1.3.6.1.4.1.9.9.156.1.8.1.1.7',
|
||||
'ccmCTIDeviceInetAddress' => '1.3.6.1.4.1.9.9.156.1.8.1.1.8',
|
||||
'ccmCTIDeviceAppInfo' => '1.3.6.1.4.1.9.9.156.1.8.1.1.9',
|
||||
'ccmCTIDeviceStatusReason' => '1.3.6.1.4.1.9.9.156.1.8.1.1.10',
|
||||
'ccmCTIDeviceTimeLastStatusUpdt' => '1.3.6.1.4.1.9.9.156.1.8.1.1.11',
|
||||
'ccmCTIDeviceTimeLastRegistered' => '1.3.6.1.4.1.9.9.156.1.8.1.1.12',
|
||||
'ccmCTIDeviceProductTypeIndex' => '1.3.6.1.4.1.9.9.156.1.8.1.1.13',
|
||||
'ccmCTIDeviceInetAddressIPv4' => '1.3.6.1.4.1.9.9.156.1.8.1.1.14',
|
||||
'ccmCTIDeviceInetAddressIPv6' => '1.3.6.1.4.1.9.9.156.1.8.1.1.15',
|
||||
'ccmCTIDeviceUnregReason' => '1.3.6.1.4.1.9.9.156.1.8.1.1.16',
|
||||
'ccmCTIDeviceRegFailReason' => '1.3.6.1.4.1.9.9.156.1.8.1.1.17',
|
||||
'ccmCTIDeviceDirNumTable' => '1.3.6.1.4.1.9.9.156.1.8.2',
|
||||
'ccmCTIDeviceDirNumEntry' => '1.3.6.1.4.1.9.9.156.1.8.2.1',
|
||||
'ccmCTIDeviceDirNumIndex' => '1.3.6.1.4.1.9.9.156.1.8.2.1.1',
|
||||
'ccmCTIDeviceDirNum' => '1.3.6.1.4.1.9.9.156.1.8.2.1.2',
|
||||
'ccmAlarmConfigInfo' => '1.3.6.1.4.1.9.9.156.1.9',
|
||||
'ccmCallManagerAlarmEnable' => '1.3.6.1.4.1.9.9.156.1.9.1',
|
||||
'ccmPhoneFailedAlarmInterval' => '1.3.6.1.4.1.9.9.156.1.9.2',
|
||||
'ccmPhoneFailedStorePeriod' => '1.3.6.1.4.1.9.9.156.1.9.3',
|
||||
'ccmPhoneStatusUpdateAlarmInterv' => '1.3.6.1.4.1.9.9.156.1.9.4',
|
||||
'ccmPhoneStatusUpdateStorePeriod' => '1.3.6.1.4.1.9.9.156.1.9.5',
|
||||
'ccmGatewayAlarmEnable' => '1.3.6.1.4.1.9.9.156.1.9.6',
|
||||
'ccmMaliciousCallAlarmEnable' => '1.3.6.1.4.1.9.9.156.1.9.7',
|
||||
'ccmNotificationsInfo' => '1.3.6.1.4.1.9.9.156.1.10',
|
||||
'ccmAlarmSeverity' => '1.3.6.1.4.1.9.9.156.1.10.1',
|
||||
'ccmFailCauseCode' => '1.3.6.1.4.1.9.9.156.1.10.2',
|
||||
'ccmPhoneFailures' => '1.3.6.1.4.1.9.9.156.1.10.3',
|
||||
'ccmPhoneUpdates' => '1.3.6.1.4.1.9.9.156.1.10.4',
|
||||
'ccmGatewayFailCauseCode' => '1.3.6.1.4.1.9.9.156.1.10.5',
|
||||
'ccmMediaResourceType' => '1.3.6.1.4.1.9.9.156.1.10.6',
|
||||
'ccmMediaResourceListName' => '1.3.6.1.4.1.9.9.156.1.10.7',
|
||||
'ccmRouteListName' => '1.3.6.1.4.1.9.9.156.1.10.8',
|
||||
'ccmGatewayPhysIfIndex' => '1.3.6.1.4.1.9.9.156.1.10.9',
|
||||
'ccmGatewayPhysIfL2Status' => '1.3.6.1.4.1.9.9.156.1.10.10',
|
||||
'ccmMaliCallCalledPartyName' => '1.3.6.1.4.1.9.9.156.1.10.11',
|
||||
'ccmMaliCallCalledPartyNumber' => '1.3.6.1.4.1.9.9.156.1.10.12',
|
||||
'ccmMaliCallCalledDeviceName' => '1.3.6.1.4.1.9.9.156.1.10.13',
|
||||
'ccmMaliCallCallingPartyName' => '1.3.6.1.4.1.9.9.156.1.10.14',
|
||||
'ccmMaliCallCallingPartyNumber' => '1.3.6.1.4.1.9.9.156.1.10.15',
|
||||
'ccmMaliCallCallingDeviceName' => '1.3.6.1.4.1.9.9.156.1.10.16',
|
||||
'ccmMaliCallTime' => '1.3.6.1.4.1.9.9.156.1.10.17',
|
||||
'ccmQualityRprtSourceDevName' => '1.3.6.1.4.1.9.9.156.1.10.18',
|
||||
'ccmQualityRprtClusterId' => '1.3.6.1.4.1.9.9.156.1.10.19',
|
||||
'ccmQualityRprtCategory' => '1.3.6.1.4.1.9.9.156.1.10.20',
|
||||
'ccmQualityRprtReasonCode' => '1.3.6.1.4.1.9.9.156.1.10.21',
|
||||
'ccmQualityRprtTime' => '1.3.6.1.4.1.9.9.156.1.10.22',
|
||||
'ccmTLSDevName' => '1.3.6.1.4.1.9.9.156.1.10.23',
|
||||
'ccmTLSDevInetAddressType' => '1.3.6.1.4.1.9.9.156.1.10.24',
|
||||
'ccmTLSDevInetAddress' => '1.3.6.1.4.1.9.9.156.1.10.25',
|
||||
'ccmTLSConnFailTime' => '1.3.6.1.4.1.9.9.156.1.10.26',
|
||||
'ccmTLSConnectionFailReasonCode' => '1.3.6.1.4.1.9.9.156.1.10.27',
|
||||
'ccmGatewayRegFailCauseCode' => '1.3.6.1.4.1.9.9.156.1.10.28',
|
||||
'ccmH323DeviceInfo' => '1.3.6.1.4.1.9.9.156.1.11',
|
||||
'ccmH323DeviceTable' => '1.3.6.1.4.1.9.9.156.1.11.1',
|
||||
'ccmH323DeviceEntry' => '1.3.6.1.4.1.9.9.156.1.11.1.1',
|
||||
'ccmH323DevIndex' => '1.3.6.1.4.1.9.9.156.1.11.1.1.1',
|
||||
'ccmH323DevName' => '1.3.6.1.4.1.9.9.156.1.11.1.1.2',
|
||||
'ccmH323DevProductId' => '1.3.6.1.4.1.9.9.156.1.11.1.1.3',
|
||||
'ccmH323DevDescription' => '1.3.6.1.4.1.9.9.156.1.11.1.1.4',
|
||||
'ccmH323DevInetAddressType' => '1.3.6.1.4.1.9.9.156.1.11.1.1.5',
|
||||
'ccmH323DevInetAddress' => '1.3.6.1.4.1.9.9.156.1.11.1.1.6',
|
||||
'ccmH323DevCnfgGKInetAddressType' => '1.3.6.1.4.1.9.9.156.1.11.1.1.7',
|
||||
'ccmH323DevCnfgGKInetAddress' => '1.3.6.1.4.1.9.9.156.1.11.1.1.8',
|
||||
'ccmH323DevAltGK1InetAddressType' => '1.3.6.1.4.1.9.9.156.1.11.1.1.9',
|
||||
'ccmH323DevAltGK1InetAddress' => '1.3.6.1.4.1.9.9.156.1.11.1.1.10',
|
||||
'ccmH323DevAltGK2InetAddressType' => '1.3.6.1.4.1.9.9.156.1.11.1.1.11',
|
||||
'ccmH323DevAltGK2InetAddress' => '1.3.6.1.4.1.9.9.156.1.11.1.1.12',
|
||||
'ccmH323DevAltGK3InetAddressType' => '1.3.6.1.4.1.9.9.156.1.11.1.1.13',
|
||||
'ccmH323DevAltGK3InetAddress' => '1.3.6.1.4.1.9.9.156.1.11.1.1.14',
|
||||
'ccmH323DevAltGK4InetAddressType' => '1.3.6.1.4.1.9.9.156.1.11.1.1.15',
|
||||
'ccmH323DevAltGK4InetAddress' => '1.3.6.1.4.1.9.9.156.1.11.1.1.16',
|
||||
'ccmH323DevAltGK5InetAddressType' => '1.3.6.1.4.1.9.9.156.1.11.1.1.17',
|
||||
'ccmH323DevAltGK5InetAddress' => '1.3.6.1.4.1.9.9.156.1.11.1.1.18',
|
||||
'ccmH323DevActGKInetAddressType' => '1.3.6.1.4.1.9.9.156.1.11.1.1.19',
|
||||
'ccmH323DevActGKInetAddress' => '1.3.6.1.4.1.9.9.156.1.11.1.1.20',
|
||||
'ccmH323DevStatus' => '1.3.6.1.4.1.9.9.156.1.11.1.1.21',
|
||||
'ccmH323DevStatusReason' => '1.3.6.1.4.1.9.9.156.1.11.1.1.22',
|
||||
'ccmH323DevTimeLastStatusUpdt' => '1.3.6.1.4.1.9.9.156.1.11.1.1.23',
|
||||
'ccmH323DevTimeLastRegistered' => '1.3.6.1.4.1.9.9.156.1.11.1.1.24',
|
||||
'ccmH323DevRmtCM1InetAddressType' => '1.3.6.1.4.1.9.9.156.1.11.1.1.25',
|
||||
'ccmH323DevRmtCM1InetAddress' => '1.3.6.1.4.1.9.9.156.1.11.1.1.26',
|
||||
'ccmH323DevRmtCM2InetAddressType' => '1.3.6.1.4.1.9.9.156.1.11.1.1.27',
|
||||
'ccmH323DevRmtCM2InetAddress' => '1.3.6.1.4.1.9.9.156.1.11.1.1.28',
|
||||
'ccmH323DevRmtCM3InetAddressType' => '1.3.6.1.4.1.9.9.156.1.11.1.1.29',
|
||||
'ccmH323DevRmtCM3InetAddress' => '1.3.6.1.4.1.9.9.156.1.11.1.1.30',
|
||||
'ccmH323DevProductTypeIndex' => '1.3.6.1.4.1.9.9.156.1.11.1.1.31',
|
||||
'ccmH323DevUnregReason' => '1.3.6.1.4.1.9.9.156.1.11.1.1.32',
|
||||
'ccmH323DevRegFailReason' => '1.3.6.1.4.1.9.9.156.1.11.1.1.33',
|
||||
'ccmVoiceMailDeviceInfo' => '1.3.6.1.4.1.9.9.156.1.12',
|
||||
'ccmVoiceMailDeviceTable' => '1.3.6.1.4.1.9.9.156.1.12.1',
|
||||
'ccmVoiceMailDeviceEntry' => '1.3.6.1.4.1.9.9.156.1.12.1.1',
|
||||
'ccmVMailDevIndex' => '1.3.6.1.4.1.9.9.156.1.12.1.1.1',
|
||||
'ccmVMailDevName' => '1.3.6.1.4.1.9.9.156.1.12.1.1.2',
|
||||
'ccmVMailDevProductId' => '1.3.6.1.4.1.9.9.156.1.12.1.1.3',
|
||||
'ccmVMailDevDescription' => '1.3.6.1.4.1.9.9.156.1.12.1.1.4',
|
||||
'ccmVMailDevStatus' => '1.3.6.1.4.1.9.9.156.1.12.1.1.5',
|
||||
'ccmVMailDevInetAddressType' => '1.3.6.1.4.1.9.9.156.1.12.1.1.6',
|
||||
'ccmVMailDevInetAddress' => '1.3.6.1.4.1.9.9.156.1.12.1.1.7',
|
||||
'ccmVMailDevStatusReason' => '1.3.6.1.4.1.9.9.156.1.12.1.1.8',
|
||||
'ccmVMailDevTimeLastStatusUpdt' => '1.3.6.1.4.1.9.9.156.1.12.1.1.9',
|
||||
'ccmVMailDevTimeLastRegistered' => '1.3.6.1.4.1.9.9.156.1.12.1.1.10',
|
||||
'ccmVMailDevProductTypeIndex' => '1.3.6.1.4.1.9.9.156.1.12.1.1.11',
|
||||
'ccmVMailDevUnregReason' => '1.3.6.1.4.1.9.9.156.1.12.1.1.12',
|
||||
'ccmVMailDevRegFailReason' => '1.3.6.1.4.1.9.9.156.1.12.1.1.13',
|
||||
'ccmVoiceMailDeviceDirNumTable' => '1.3.6.1.4.1.9.9.156.1.12.2',
|
||||
'ccmVoiceMailDeviceDirNumEntry' => '1.3.6.1.4.1.9.9.156.1.12.2.1',
|
||||
'ccmVMailDevDirNumIndex' => '1.3.6.1.4.1.9.9.156.1.12.2.1.1',
|
||||
'ccmVMailDevDirNum' => '1.3.6.1.4.1.9.9.156.1.12.2.1.2',
|
||||
'ccmQualityReportAlarmConfigInfo' => '1.3.6.1.4.1.9.9.156.1.13',
|
||||
'ccmQualityReportAlarmEnable' => '1.3.6.1.4.1.9.9.156.1.13.1',
|
||||
'ccmSIPDeviceInfo' => '1.3.6.1.4.1.9.9.156.1.14',
|
||||
'ccmSIPDeviceTable' => '1.3.6.1.4.1.9.9.156.1.14.1',
|
||||
'ccmSIPDeviceEntry' => '1.3.6.1.4.1.9.9.156.1.14.1.1',
|
||||
'ccmSIPDevIndex' => '1.3.6.1.4.1.9.9.156.1.14.1.1.1',
|
||||
'ccmSIPDevName' => '1.3.6.1.4.1.9.9.156.1.14.1.1.2',
|
||||
'ccmSIPDevProductTypeIndex' => '1.3.6.1.4.1.9.9.156.1.14.1.1.3',
|
||||
'ccmSIPDevDescription' => '1.3.6.1.4.1.9.9.156.1.14.1.1.4',
|
||||
'ccmSIPDevInetAddressType' => '1.3.6.1.4.1.9.9.156.1.14.1.1.5',
|
||||
'ccmSIPDevInetAddress' => '1.3.6.1.4.1.9.9.156.1.14.1.1.6',
|
||||
'ccmSIPInTransportProtocolType' => '1.3.6.1.4.1.9.9.156.1.14.1.1.7',
|
||||
'ccmSIPInPortNumber' => '1.3.6.1.4.1.9.9.156.1.14.1.1.8',
|
||||
'ccmSIPOutTransportProtocolType' => '1.3.6.1.4.1.9.9.156.1.14.1.1.9',
|
||||
'ccmSIPOutPortNumber' => '1.3.6.1.4.1.9.9.156.1.14.1.1.10',
|
||||
'ccmSIPDevInetAddressIPv4' => '1.3.6.1.4.1.9.9.156.1.14.1.1.11',
|
||||
'ccmSIPDevInetAddressIPv6' => '1.3.6.1.4.1.9.9.156.1.14.1.1.12',
|
||||
'ccmMIBNotificationPrefix' => '1.3.6.1.4.1.9.9.156.2',
|
||||
'ccmMIBNotifications' => '1.3.6.1.4.1.9.9.156.2',
|
||||
'ciscoCcmMIBConformance' => '1.3.6.1.4.1.9.9.156.3',
|
||||
'ciscoCcmMIBCompliances' => '1.3.6.1.4.1.9.9.156.3.1',
|
||||
'ciscoCcmMIBCompliance' => '1.3.6.1.4.1.9.9.156.3.1.1',
|
||||
'ciscoCcmMIBComplianceRev1' => '1.3.6.1.4.1.9.9.156.3.1.2',
|
||||
'ciscoCcmMIBComplianceRev2' => '1.3.6.1.4.1.9.9.156.3.1.3',
|
||||
'ciscoCcmMIBComplianceRev3' => '1.3.6.1.4.1.9.9.156.3.1.4',
|
||||
'ciscoCcmMIBComplianceRev4' => '1.3.6.1.4.1.9.9.156.3.1.5',
|
||||
'ciscoCcmMIBComplianceRev5' => '1.3.6.1.4.1.9.9.156.3.1.6',
|
||||
'ciscoCcmMIBComplianceRev6' => '1.3.6.1.4.1.9.9.156.3.1.7',
|
||||
'ciscoCcmMIBComplianceRev7' => '1.3.6.1.4.1.9.9.156.3.1.8',
|
||||
'ciscoCcmMIBGroups' => '1.3.6.1.4.1.9.9.156.3.2',
|
||||
'ccmInfoGroup' => '1.3.6.1.4.1.9.9.156.3.2.1',
|
||||
'ccmPhoneInfoGroup' => '1.3.6.1.4.1.9.9.156.3.2.2',
|
||||
'ccmGatewayInfoGroup' => '1.3.6.1.4.1.9.9.156.3.2.3',
|
||||
'ccmInfoGroupRev1' => '1.3.6.1.4.1.9.9.156.3.2.4',
|
||||
'ccmPhoneInfoGroupRev1' => '1.3.6.1.4.1.9.9.156.3.2.5',
|
||||
'ccmGatewayInfoGroupRev1' => '1.3.6.1.4.1.9.9.156.3.2.6',
|
||||
'ccmMediaDeviceInfoGroup' => '1.3.6.1.4.1.9.9.156.3.2.7',
|
||||
'ccmGatekeeperInfoGroup' => '1.3.6.1.4.1.9.9.156.3.2.8',
|
||||
'ccmCTIDeviceInfoGroup' => '1.3.6.1.4.1.9.9.156.3.2.9',
|
||||
'ccmNotificationsInfoGroup' => '1.3.6.1.4.1.9.9.156.3.2.10',
|
||||
'ccmNotificationsGroup' => '1.3.6.1.4.1.9.9.156.3.2.11',
|
||||
'ccmInfoGroupRev2' => '1.3.6.1.4.1.9.9.156.3.2.12',
|
||||
'ccmPhoneInfoGroupRev2' => '1.3.6.1.4.1.9.9.156.3.2.13',
|
||||
'ccmGatewayInfoGroupRev2' => '1.3.6.1.4.1.9.9.156.3.2.14',
|
||||
'ccmMediaDeviceInfoGroupRev1' => '1.3.6.1.4.1.9.9.156.3.2.15',
|
||||
'ccmCTIDeviceInfoGroupRev1' => '1.3.6.1.4.1.9.9.156.3.2.16',
|
||||
'ccmH323DeviceInfoGroup' => '1.3.6.1.4.1.9.9.156.3.2.17',
|
||||
'ccmVoiceMailDeviceInfoGroup' => '1.3.6.1.4.1.9.9.156.3.2.18',
|
||||
'ccmNotificationsInfoGroupRev1' => '1.3.6.1.4.1.9.9.156.3.2.19',
|
||||
'ccmInfoGroupRev3' => '1.3.6.1.4.1.9.9.156.3.2.20',
|
||||
'ccmNotificationsInfoGroupRev2' => '1.3.6.1.4.1.9.9.156.3.2.21',
|
||||
'ccmNotificationsGroupRev1' => '1.3.6.1.4.1.9.9.156.3.2.22',
|
||||
'ccmSIPDeviceInfoGroup' => '1.3.6.1.4.1.9.9.156.3.2.23',
|
||||
'ccmPhoneInfoGroupRev3' => '1.3.6.1.4.1.9.9.156.3.2.24',
|
||||
'ccmGatewayInfoGroupRev3' => '1.3.6.1.4.1.9.9.156.3.2.25',
|
||||
'ccmMediaDeviceInfoGroupRev2' => '1.3.6.1.4.1.9.9.156.3.2.26',
|
||||
'ccmCTIDeviceInfoGroupRev2' => '1.3.6.1.4.1.9.9.156.3.2.27',
|
||||
'ccmH323DeviceInfoGroupRev1' => '1.3.6.1.4.1.9.9.156.3.2.28',
|
||||
'ccmVoiceMailDeviceInfoGroupRev1' => '1.3.6.1.4.1.9.9.156.3.2.29',
|
||||
'ccmPhoneInfoGroupRev4' => '1.3.6.1.4.1.9.9.156.3.2.30',
|
||||
'ccmSIPDeviceInfoGroupRev1' => '1.3.6.1.4.1.9.9.156.3.2.31',
|
||||
'ccmNotificationsInfoGroupRev3' => '1.3.6.1.4.1.9.9.156.3.2.32',
|
||||
'ccmNotificationsGroupRev2' => '1.3.6.1.4.1.9.9.156.3.2.33',
|
||||
'ccmInfoGroupRev4' => '1.3.6.1.4.1.9.9.156.3.2.34',
|
||||
'ccmPhoneInfoGroupRev5' => '1.3.6.1.4.1.9.9.156.3.2.35',
|
||||
'ccmMediaDeviceInfoGroupRev3' => '1.3.6.1.4.1.9.9.156.3.2.36',
|
||||
'ccmSIPDeviceInfoGroupRev2' => '1.3.6.1.4.1.9.9.156.3.2.37',
|
||||
'ccmNotificationsInfoGroupRev4' => '1.3.6.1.4.1.9.9.156.3.2.38',
|
||||
'ccmH323DeviceInfoGroupRev2' => '1.3.6.1.4.1.9.9.156.3.2.39',
|
||||
'ccmCTIDeviceInfoGroupRev3' => '1.3.6.1.4.1.9.9.156.3.2.40',
|
||||
'ccmPhoneInfoGroupRev6' => '1.3.6.1.4.1.9.9.156.3.2.41',
|
||||
'ccmNotificationsInfoGroupRev5' => '1.3.6.1.4.1.9.9.156.3.2.42',
|
||||
'ccmGatewayInfoGroupRev4' => '1.3.6.1.4.1.9.9.156.3.2.43',
|
||||
'ccmMediaDeviceInfoGroupRev4' => '1.3.6.1.4.1.9.9.156.3.2.44',
|
||||
'ccmCTIDeviceInfoGroupRev4' => '1.3.6.1.4.1.9.9.156.3.2.45',
|
||||
'ccmH323DeviceInfoGroupRev3' => '1.3.6.1.4.1.9.9.156.3.2.46',
|
||||
'ccmVoiceMailDeviceInfoGroupRev2' => '1.3.6.1.4.1.9.9.156.3.2.47',
|
||||
'ccmNotificationsGroupRev3' => '1.3.6.1.4.1.9.9.156.3.2.48',
|
||||
};
|
||||
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
|
@ -0,0 +1,24 @@
|
|||
package Monitoring::GLPlugin::SNMP::MibsAndOids::CISCOCONFIGMANMIB;
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::origin->{'CISCO-CONFIG-MAN-MIB'} = {
|
||||
url => '',
|
||||
name => 'CISCO-CONFIG-MAN-MIB',
|
||||
};
|
||||
|
||||
$Monitoring::GLPlugin::SNMP::MibsAndOids::mibs_and_oids->{'CISCO-CONFIG-MAN-MIB'} = {
|
||||
'ciscoConfigManMIBObjects' => '1.3.6.1.4.1.9.9.43.1',
|
||||
'ccmHistory' => '1.3.6.1.4.1.9.9.43.1.1',
|
||||
'ccmHistoryRunningLastChanged' => '1.3.6.1.4.1.9.9.43.1.1.1.0',
|
||||
'ccmHistoryRunningLastSaved' => '1.3.6.1.4.1.9.9.43.1.1.2.0',
|
||||
'ccmHistoryStartupLastChanged' => '1.3.6.1.4.1.9.9.43.1.1.3.0',
|
||||
'ccmHistoryMaxEventEntries' => '1.3.6.1.4.1.9.9.43.1.1.4.0',
|
||||
'ccmHistoryEventEntriesBumped' => '1.3.6.1.4.1.9.9.43.1.1.5.0',
|
||||
'ccmCLIHistory' => '1.3.6.1.4.1.9.9.43.1.2',
|
||||
'ccmCLICfg' => '1.3.6.1.4.1.9.9.43.1.3',
|
||||
'ccmCTIDObjects' => '1.3.6.1.4.1.9.9.43.1.4',
|
||||
};
|
||||
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue