├── .gitignore ├── LICENSE ├── README.md ├── zbx-agent ├── README.md ├── zabbix_agent-2.0.6_installer.exe ├── zabbix_agent-2.0.7_installer.exe └── zabbix_agent-2.0.9_installer.exe ├── zbx-scripts ├── README.md ├── as.name │ ├── README.md │ └── as.name ├── discovery_update │ ├── README.md │ ├── discovery_update │ └── discovery_update.conf ├── echo.something │ ├── README.md │ └── echo.something ├── gandi.check │ ├── README.md │ └── gandi.check ├── hosts_update │ ├── hosts_update.rb │ └── hosts_update.yml ├── if.count │ ├── README.md │ └── if.count ├── if.speed │ ├── README.md │ └── if.speed ├── if.vdom │ ├── README.md │ └── if.vdom ├── ift.ldmode │ ├── README.md │ └── ift.ldmode ├── ift.ldsize │ ├── README.md │ └── ift.ldsize ├── ift.ldstatus │ ├── README.md │ └── ift.ldstatus ├── nmsupdate │ ├── nmsupdate │ └── nmsupdate.conf ├── powerconnect.optical │ ├── README.md │ └── powerconnect.optical ├── rbl.check │ ├── README.md │ └── rbl.check ├── vcloud.check │ └── vcloud.check └── vpn.vdom │ ├── README.md │ └── vpn.vdom └── zbx-templates ├── README.md ├── zbx-apc ├── README.md └── zbx-apc-ups.xml ├── zbx-audiocodes └── zbx-audiocodes-interfaces │ ├── README.md │ └── zbx-audiocodes-interfaces.xml ├── zbx-brocade ├── README.md ├── zbx-brocade-fc-envmon │ ├── README.md │ └── zbx-brocade-fc-envmon.xml └── zbx-brocade-fc-port │ ├── README.md │ └── zbx-brocade-fc-port.xml ├── zbx-cisco ├── README.md ├── zbx-cisco-bgp4 │ ├── README.md │ └── zbx-cisco-bgp4.xml ├── zbx-cisco-cdp │ ├── README.md │ └── zbx-cisco-cdp.xml ├── zbx-cisco-envmon │ ├── README.md │ └── zbx-cisco-envmon.xml ├── zbx-cisco-hardware │ ├── README.md │ └── zbx-cisco-hardware.xml ├── zbx-cisco-hsrp │ ├── README.md │ └── zbx-cisco-hsrp.xml ├── zbx-cisco-interfaces │ ├── README.md │ └── zbx-cisco-interfaces.xml ├── zbx-cisco-mpls │ ├── README.md │ └── zbx-cisco-mpls.xml ├── zbx-cisco-optical-monitoring │ ├── README.md │ └── zbx-cisco-optical-monitoring.xml ├── zbx-cisco-pseudowire │ ├── README.md │ └── zbx-cisco-pseudowire.xml ├── zbx-cisco-vpdn │ ├── README.md │ └── zbx-cisco-vpdn.xml └── zbx-cisco-xdsl │ ├── README.md │ └── zbx-cisco-xdsl.xml ├── zbx-datacore ├── Get-DcsAlert.ps1 ├── Get-DcsPhysicalDisk.ps1 ├── Get-DcsPoolDisk.ps1 ├── Get-DcsPort.ps1 ├── Get-DcsServer.ps1 ├── Get-DcsVirtualDisk.ps1 ├── README.md ├── zbx-datacore-ssv.xml └── zbx-dcs.conf ├── zbx-dell-compellent ├── README.md └── zbx-dell-compellent.xml ├── zbx-dell-powerconnect ├── README.md ├── zbx-dell-powerconnect-envmon │ ├── README.md │ └── zbx-dell-powerconnect-envmon.xml ├── zbx-dell-powerconnect-hardware │ ├── README.md │ └── zbx-dell-powerconnect-hardware.xml └── zbx-dell-powerconnect-interfaces │ ├── README.md │ └── zbx-dell-powerconnect-interfaces.xml ├── zbx-drbd ├── README.md ├── userparameter_drbd.conf └── zbx-drbd.xml ├── zbx-eaton ├── README.md └── zbx-powerware-ups.xml ├── zbx-fortinet ├── README.md ├── zbx-fortinet-antivirus │ ├── README.md │ └── zbx-fortinet-antivirus.xml ├── zbx-fortinet-cpu │ ├── README.md │ └── zbx-fortinet-cpu.xml ├── zbx-fortinet-envmon │ ├── README.md │ └── zbx-fortinet-envmon.xml ├── zbx-fortinet-ha │ ├── README.md │ └── zbx-fortinet-ha.xml ├── zbx-fortinet-hardware │ ├── README.md │ └── zbx-fortinet-hardware.xml ├── zbx-fortinet-hwsensors │ ├── README.md │ └── zbx-fortinet-hwsensors.xml ├── zbx-fortinet-ids │ ├── README.md │ └── zbx-fortinet-ids.xml ├── zbx-fortinet-interfaces │ ├── README.md │ └── zbx-fortinet-interfaces.xml ├── zbx-fortinet-memory │ ├── README.md │ └── zbx-fortinet-memory.xml ├── zbx-fortinet-session │ ├── README.md │ └── zbx-fortinet-session.xml ├── zbx-fortinet-vdom │ ├── README.md │ └── zbx-fortinet-vdom.xml └── zbx-fortinet-vpn │ ├── README.md │ └── zbx-fortinet-vpn.xml ├── zbx-gandi ├── README.md └── zbx-gandi.xml ├── zbx-icewarp ├── README.md └── zbx-icewarp-server.xml ├── zbx-infortrend ├── README.md └── zbx-ift-sa.xml ├── zbx-linux ├── README.md └── zbx-linux-envmon │ ├── README.md │ └── zbx-linux-envmon.xml ├── zbx-netopia ├── README.md ├── zbx-netopia-envmon │ ├── README.md │ └── zbx-netopia-envmon.xml ├── zbx-netopia-interfaces │ ├── README.md │ └── zbx-netopia-interfaces.xml └── zbx-netopia-xdsl │ ├── README.md │ └── zbx-cisco-xdsl.xml ├── zbx-rblcheck ├── README.md └── zbx-rblcheck.xml ├── zbx-smstools ├── README.md └── zbx-smstools.xml ├── zbx-veeam ├── README.md ├── zabbix_vbr_job.ps1 └── zbx-veeam-backup.xml ├── zbx-vmware ├── README.md └── zbx-vmware.xml └── zbx-windows ├── README.md ├── zbx-windows-envmon ├── README.md ├── zabbix_boot_time.vbs ├── zabbix_server_dns_config.vbs ├── zabbix_server_role.vbs ├── zabbix_server_serialnumber.vbs ├── zabbix_user_domain.vbs ├── zabbix_win_quota.vbs ├── zabbix_win_system_discovery.vbs ├── zabbix_wus_update_all.vbs ├── zabbix_wus_update_crit.vbs └── zbx-windows-envmon.xml ├── zbx-windows-exch2007 └── zbx-windows-exch2007.xml ├── zbx-windows-exch2010 └── zbx-windows-exch2010.xml ├── zbx-windows-iis ├── README.md └── zbx-windows-iis.xml └── zbx-windows-mssql ├── README.md ├── zabbix_mssql_version.vbs └── zbx-windows-mssql.xml /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | zbx-scripts/.idea/zbx-scripts.iml 3 | 4 | zbx-scripts/.idea/workspace.xml 5 | 6 | zbx-scripts/.idea/vcs.xml 7 | 8 | zbx-scripts/.idea/scopes/scope_settings.xml 9 | 10 | zbx-scripts/.idea/modules.xml 11 | 12 | zbx-scripts/.idea/misc.xml 13 | 14 | zbx-scripts/.idea/encodings.xml 15 | 16 | zbx-scripts/.idea/.name 17 | 18 | *.tmproj 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ZABBIX COLLECTION 2 | ================= 3 | 4 | A great collection of Zabbix scripts and templates 5 | -------------------------------------------------------------------------------- /zbx-agent/README.md: -------------------------------------------------------------------------------- 1 | ZABBIX AGENT INSTALLER 2 | ====================== 3 | 4 | This package is made for installing Zabbix agent (compiled by ZABBIX SIA) on windows environement. 5 | 6 | Installation 7 | ------------ 8 | 9 | zabbix_agent-_installer.exe [/server=ZabbixServerIPAddress] [/lport=ListenPort] [/serveractive=List IP:Port] [/rmtcmd=1] [/S][/D=InstallPath] 10 | 11 | where: 12 | * /server=ZabbixServerIPAddress : IP address of the ZABBIX server 13 | * /lport=listenPort : Agent will listen on this port for connections from the server 14 | * /rmtcmd=1 : 1 to enable remote commands, 0 to disable remote command 15 | * /serveractive=List IP:Port : list of Zabbix server for active checks Comma delimited 16 | * /S : Silent mode. If not indicated on the command line, the install GUI will prompt for confirmation of the indicated parameters (server and rmtcmd). 17 | * /D=InstallPath :sets the default installation directory. It must be the last parameter used in the command line and must not contain any quotes, even if the path contains spaces. 18 | 19 | Requirements 20 | ------------ 21 | 22 | No requirements. 23 | 24 | Credits 25 | ------- 26 | 27 | * **Vincent Besançon** - NSIS wizard. Thank's to nullsoft NSIS magic 28 | * **ZABBIX SIA** of course 29 | 30 | License 31 | ------- 32 | 33 | This scripts are distributed 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. 34 | 35 | ### Copyright 36 | 37 | Copyright (c) Jean-Jacques Martrès 38 | 39 | ### Authors 40 | 41 | Jean-Jacques Martrès 42 | (jjmartres |at| gmail |dot| com) 43 | -------------------------------------------------------------------------------- /zbx-agent/zabbix_agent-2.0.6_installer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjmartres/Zabbix/bd693723723cd8e01c9041070d254b9b58bdc4e8/zbx-agent/zabbix_agent-2.0.6_installer.exe -------------------------------------------------------------------------------- /zbx-agent/zabbix_agent-2.0.7_installer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjmartres/Zabbix/bd693723723cd8e01c9041070d254b9b58bdc4e8/zbx-agent/zabbix_agent-2.0.7_installer.exe -------------------------------------------------------------------------------- /zbx-agent/zabbix_agent-2.0.9_installer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jjmartres/Zabbix/bd693723723cd8e01c9041070d254b9b58bdc4e8/zbx-agent/zabbix_agent-2.0.9_installer.exe -------------------------------------------------------------------------------- /zbx-scripts/README.md: -------------------------------------------------------------------------------- 1 | ZABBIX SCRIPTS 2 | ============== 3 | 4 | A collection scripts to be used with Zabbix. 5 | 6 | Scripts 7 | ------- 8 | 9 | * [echo.something](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) => simply echo a string. 10 | * [if.speed](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.speed) => script to query the speed of an interface using the ifSpeed and ifHighSpeed OID and return the right speed value for an interface. 11 | * [if.count](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.count) => script query ifType and count interface matching a regexp. 12 | * [discovery.add](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/discovery.add) => script extend discovery rules, by adding discoverd devices to specified group, with specified template. 13 | * [powerconnect.optical](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/powerconnect.optical) => script query optical transceiver on Dell PowerConnect switches. 14 | * [if.vdom](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.vdom) => script to get associated VDOM for an interface on Fortinet devices. 15 | * [vpn.vdom](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/vpn.vdom) => script show asssociated VDOM for a VPN tunnel using SNMP on Fortinet device. 16 | * [as.name](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/as.name) => script to query **whois.cymru.com** server to get AS Name associated to the IP address. 17 | * [ift.ldmode](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/lft.ldmode) => script query ldOpModes OID from the Infortrend MIB (IFT-SNMP-MIB) to get the logical drive operating mode. 18 | * [ift.ldstatus](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/lft.ldstatus) => script query ldStatus OID from the Infortrend MIB (IFT-SNMP-MIB) to get the logical drive status. 19 | * [ift.ldsize](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/lft.ldsize) => script query ldSize OID from the Infortrend MIB (IFT-SNMP-MIB) to get the logical drive size. 20 | * [rbl.check](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/rbl.check) => script queries DNS Blacklists for listings. 21 | * [gandi.check](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/gandi.check) => script query Gandi API to manage domain and certificate. 22 | * [vsphere.check](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/vsphere.check) => script query vSphere API to manage VMWARE Infrastructure. 23 | 24 | Requirements 25 | ------------ 26 | 27 | All this scripts were tested for Zabbix 2.0.0 and higher. Please see individual README for requirements. 28 | 29 | License 30 | ------- 31 | 32 | This scripts are distributed 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. 33 | 34 | ### Copyright 35 | 36 | Copyright (c) Jean-Jacques Martrès 37 | 38 | ### Authors 39 | 40 | Jean-Jacques Martrès 41 | (jjmartres |at| gmail |dot| com) 42 | -------------------------------------------------------------------------------- /zbx-scripts/as.name/README.md: -------------------------------------------------------------------------------- 1 | as.name 2 | ======== 3 | 4 | Query whois.cymru.com server to get AS Name associated to the IP address 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `as.name` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Make sure you have the whois client installed on your Zabbix server and/or proxy. 11 | 3. Then chmod a+x `as.name` 12 | 13 | ### Requirements 14 | 15 | This script was tested for Zabbix 2.0.0 or higher. 16 | 17 | ###### [Ruby](http://www.ruby-lang.org/en/downloads/) 1.8.7 18 | 19 | This script require Ruby 1.8.7 or higher. 20 | 21 | ###### [RubyGems](http://rubygems.org) 1.8 22 | 23 | This script require RubyGems 1.8 or higher. 24 | 25 | Usage 26 | ----- 27 | 28 | ### As a script 29 | ./as.name [OPTIONS] 30 | 31 | where OPTIONS are : 32 | -h, --help Display this help message 33 | -p, --peer BGP_PEER_IP_ADDRESS BGP peer IP address discovered by Zabbix 34 | 35 | ### As an item 36 | Use `as.name` like an **External Check** item in Zabbix. So, when creating an item, select **External Check**. In the **Key** field, you specify: 37 | 38 | as.name["-p","BGP_PEER_IP_ADDRESS"] 39 | 40 | Version 41 | ------- 42 | 43 | Version 1.0 44 | 45 | License 46 | ------- 47 | 48 | This script is distributed 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. 49 | 50 | ### Copyright 51 | 52 | Copyright (c) 2012 Jean-Jacques Martrès 53 | 54 | ### Authors 55 | 56 | Jean-Jacques Martrès 57 | (jjmartres |at| gmail |dot| com) 58 | -------------------------------------------------------------------------------- /zbx-scripts/as.name/as.name: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | =begin 4 | Script: as.name 5 | Version: 1.0 6 | Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com) 7 | Description: Query whois.cymru.com server to get AS Name associated to the IP address 8 | License: GPL2 9 | 10 | This script is intended for use with Zabbix > 2.0 11 | 12 | USAGE: 13 | as a script: as.name [options] 14 | as an item: as.name["-p","BGP_PEER_IP_ADDRESS"] 15 | 16 | OPTIONS 17 | -h, --help Display this help message 18 | -p, --peer BGP_PEER_IP_ADDRESS BGP peer IP address discovered by Zabbix 19 | =end 20 | require 'rubygems' 21 | require 'optparse' 22 | 23 | version="0.0.1" 24 | 25 | # Howto use it..quiet simple 26 | OPTIONS = {} 27 | mandatory_options=[:peer] 28 | optparse = OptionParser.new do |opts| 29 | opts.banner = "Usage: #{$0} [options]" 30 | opts.separator "" 31 | opts.separator "Options" 32 | opts.on("-h", "--help", "Display this help message") do 33 | puts opts 34 | exit(-1) 35 | end 36 | opts.on('-p', '--peer BGP_PEER_IP_ADDRESS', String, 'BGP peer IP address discovered by Zabbix') { |v| OPTIONS[:peer] = v } 37 | opts.separator "" 38 | end 39 | 40 | # Show usage when no args pass 41 | if ARGV.empty? 42 | puts optparse 43 | exit(-1) 44 | end 45 | 46 | # Validate that mandatory parameters are specified 47 | begin 48 | optparse.parse!(ARGV) 49 | missing = mandatory_options.select{|p| OPTIONS[p].nil? } 50 | if not missing.empty? 51 | puts "Missing options: #{missing.join(', ')}" 52 | puts optparse 53 | exit(-1) 54 | end 55 | rescue OptionParser::ParseError,OptionParser::InvalidArgument,OptionParser::InvalidOption 56 | puts $!.to_s 57 | exit(-1) 58 | end 59 | 60 | # Query whois server whois.cymru.com 61 | t = Thread.new { `whois -h whois.cymru.com " -f #{OPTIONS[:peer]}"` } 62 | whois = t.value.chomp.gsub(/\s+\|\s+/,"|").split("|") 63 | 64 | # Return AS Name 65 | if whois[2].match("NA") 66 | puts "N/A" 67 | else 68 | puts whois[2] 69 | end 70 | 71 | exit(-1) 72 | -------------------------------------------------------------------------------- /zbx-scripts/discovery_update/README.md: -------------------------------------------------------------------------------- 1 | discovery_update 2 | ================ 3 | 4 | This extend the capabilites of Zabbix dicovery process for SNMP device. 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `discovery_update` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Then `chmod a+x discovery_update` 11 | 3. Install SNMP gem `gem install snmp` 12 | 4. Install SNMP gem `gem install rubix` 13 | 5. Configure your Discovery rules 14 | 6. Create Actions rules that match your Discovery rules and add your discovered hosts to a specified group, remove from the Discovered hosts and disable the host. 15 | 7. Create a configuration file like this : 16 | api: 17 | url: "zabbix api url" 18 | login: "zabbix username" 19 | password: "zabbix password" 20 | 21 | your-proxy-name: 22 | group: "host group name" 23 | snmp_community: "device SNMP community" 24 | rules: "[['TEMPLATE_NAME_1','regex1'],['TEMPLATE_NAME_2','regex2']]" 25 | 26 | ### Requirements 27 | 28 | This script was tested for Zabbix 2.0.0 or higher. 29 | 30 | ###### [Ruby](http://www.ruby-lang.org/en/downloads/) 1.8.7 31 | 32 | This script require Ruby 1.8.7 or higher. 33 | 34 | ###### [RubyGems](http://rubygems.org) 1.8 35 | 36 | This script require RubyGems 1.8 or higher. 37 | 38 | ###### [SNMP](http://rubygems.org/gems/snmp) 1.1.0 39 | 40 | This script require SNMP gem 1.1.0 or higher. 41 | 42 | ###### [RUBIX](http://rubygems.org/gems/rubix) 0.5.14 43 | 44 | This script require RUBIX gem 0.5.14 or higher 45 | 46 | ###### [Net-Ping](http://rubygems.org/gems/net-ping) 1.5.3 47 | 48 | This script require net-ping gem 1.5.3 or higher 49 | 50 | 51 | Usage 52 | ----- 53 | 54 | ### As a script 55 | ./discovery_update [OPTIONS] 56 | 57 | OPTIONS 58 | -h, --help Display this help message 59 | -c, --config CONFIG_FILE Configuration file 60 | 61 | Version 62 | ------- 63 | 64 | Version 1.0 65 | 66 | License 67 | ------- 68 | 69 | This script is distributed 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. 70 | 71 | ### Copyright 72 | 73 | Copyright (c) 2012 Jean-Jacques Martrès 74 | 75 | ### Authors 76 | 77 | Jean-Jacques Martrès 78 | (jjmartres |at| gmail |dot| com) 79 | -------------------------------------------------------------------------------- /zbx-scripts/discovery_update/discovery_update.conf: -------------------------------------------------------------------------------- 1 | api: 2 | url: "zabbix api url" 3 | login: "zabbix username" 4 | password: "zabbix password" 5 | 6 | your-proxy-name: 7 | group: "host group name" 8 | snmp_community: "device SNMP community" 9 | rules: "[['TEMPLATE_NAME_1','regex1'],['TEMPLATE_NAME_2','regex2']]" 10 | -------------------------------------------------------------------------------- /zbx-scripts/echo.something/README.md: -------------------------------------------------------------------------------- 1 | echo.something 2 | ============== 3 | 4 | This script echo a string. 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `echo.something` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Then chmod a+x `echo.something` 11 | 12 | ### Requirements 13 | 14 | This script was tested for Zabbix 2.0.0 or higher. 15 | 16 | Usage 17 | ----- 18 | 19 | ### As a script 20 | ./echo.something "some string" 21 | 22 | ### As an item 23 | Use `echo.something` like an **External Check** item in Zabbix. So, when creating an item, select **External Check**. In the **Key** field, you specify: 24 | 25 | echo.something["ARGUMENT"] 26 | 27 | Version 28 | ------- 29 | 30 | Version 2.0 31 | 32 | License 33 | ------- 34 | 35 | This script is distributed 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. 36 | 37 | ### Copyright 38 | 39 | Copyright (c) Jean-Jacques Martrès 40 | 41 | ### Authors 42 | 43 | Jean-Jacques Martrès 44 | (jjmartres |at| gmail |dot| com) 45 | -------------------------------------------------------------------------------- /zbx-scripts/echo.something/echo.something: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | #begin 4 | #Script: echo.something 5 | #Version: 2.0 6 | #Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com) 7 | #Description: This script echo a string 8 | #License: GPL2 9 | # 10 | #This script is intended for use with Zabbix > 2.0 11 | # 12 | #USAGE: 13 | # as a script: echo.somthing "some string" 14 | # as an item: echo.something["some string"] 15 | 16 | [ -z "$@" ] && exit 1 17 | echo "$@" 18 | -------------------------------------------------------------------------------- /zbx-scripts/gandi.check/README.md: -------------------------------------------------------------------------------- 1 | gandi.check 2 | =========== 3 | 4 | This script query [Gandi](https://www.gandi.net) API to manage domain and certificate. 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `gandi.check` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Then chmod a+x `rbl.check` 11 | 3. Install gem dependencies `gem install hashie` 12 | 13 | ### Requirements 14 | 15 | This script was tested for Zabbix 2.0.0 or higher. 16 | 17 | ###### [Ruby](http://www.ruby-lang.org/en/downloads/) 1.8.7 18 | 19 | This script require Ruby 1.8.7 or higher. 20 | 21 | ###### [RubyGems](http://rubygems.org) 1.8 22 | 23 | This script require RubyGems 1.8 or higher. 24 | 25 | ###### [Hashie](https://github.com/intridea/hashie) 2.0.5 26 | 27 | This script require Hashie gem 2.0.5 or higher. 28 | 29 | Usage 30 | ----- 31 | 32 | ### As a script 33 | ./gandi.check [OPTIONS] 34 | 35 | where OPTIONS are : 36 | -h, --help Display this help message 37 | -q, --query QUEYRY_FLAG DOMAIN_LIST, DOMAIN_COUNT, DOMAIN_EXPIRY, CERT_LIST, CERT_COUNT, CERT_EXPIRY 38 | -k, --apikey API_KEY 24-character API key 39 | -i, --item ITEM Domain name or certificate id 40 | 41 | ### As an item 42 | Use `gandi.check` like an **External Check** item in Zabbix. So, when creating an item, select **External Check**. In the **Key** field, you specify: 43 | 44 | gandi.check["-q","QUEYRY_FLAG","-k","API_KEY","-i","ITEM"] 45 | 46 | Version 47 | ------- 48 | 49 | Version 2.0.5 50 | 51 | License 52 | ------- 53 | 54 | This script is distributed 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. 55 | 56 | ### Copyright 57 | 58 | Copyright (c) Jean-Jacques Martrès 59 | 60 | ### Authors 61 | 62 | Jean-Jacques Martrès 63 | (jjmartres |at| gmail |dot| com) 64 | -------------------------------------------------------------------------------- /zbx-scripts/hosts_update/hosts_update.rb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | =begin 4 | Script: discovery_update 5 | Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com) 6 | Description: Discovery update extend the discovery capabilities of Zabbix 7 | License: GPL2 8 | 9 | This script is intended for use with Zabbix > 2.0 10 | 11 | USAGE: 12 | 13 | as a script: discovery_update [options] 14 | 15 | OPTIONS 16 | -h, --help Display this help message 17 | -c, --config CONFIG_FILE Configuration file 18 | 19 | CONFIG FILE FORMAT 20 | 21 | url: "zabbix api url" 22 | login: "zabbix username" 23 | password: "zabbix password" 24 | folders: "[['host group name 1','snmp_community_1'],['host group name 2','snmp_community_2']]" 25 | rules: "[['TEMPLATE_NAME_1','regex1','class1'],['TEMPLATE_NAME_2','regex2','class2']]" 26 | =end 27 | require 'rubygems' 28 | require 'optparse' 29 | require 'rubix' 30 | require 'snmp' 31 | require 'logger' 32 | #require 'YAML' 33 | require 'net/ping/external' 34 | 35 | # Howto use it ... quiet simple 36 | OPTIONS = {} 37 | mandatory_options=[:config] 38 | optparse = OptionParser.new do |opts| 39 | opts.banner = "Usage: #{$0} [options]" 40 | opts.separator "" 41 | opts.separator "Options" 42 | opts.on("-h", "--help", "Display this help message") do 43 | puts opts 44 | exit(-1) 45 | end 46 | opts.on('-c', '--config CONFIG_FILE',String, 'Configuration file') { |v| OPTIONS[:config] = v } 47 | opts.separator "" 48 | end 49 | 50 | 51 | # Show usage when no args pass 52 | if ARGV.empty? 53 | puts optparse 54 | exit(-1) 55 | end 56 | 57 | # Validate that mandatory parameters are specified 58 | begin 59 | optparse.parse!(ARGV) 60 | missing = mandatory_options.select{|p| OPTIONS[p].nil? } 61 | if not missing.empty? 62 | puts "Missing options: #{missing.join(', ')}" 63 | puts optparse 64 | exit(-1) 65 | end 66 | rescue OptionParser::ParseError,OptionParser::InvalidArgument,OptionParser::InvalidOption 67 | puts $!.to_s 68 | exit(-1) 69 | end 70 | 71 | # Log each events 72 | log = Logger.new(STDOUT) 73 | 74 | # Start logger 75 | log.level = Logger::DEBUG 76 | log.debug "" 77 | log.debug "Starting configuring OXIDIZED from NMS" 78 | log.debug "" 79 | 80 | # Read file config 81 | if File.exist?(OPTIONS[:config]) 82 | cnf = YAML::load(File.open(OPTIONS[:config])) 83 | else 84 | log.error "File #{OPTIONS[:config]} doesn't exist !" 85 | exit(-1) 86 | end 87 | 88 | # Read router.db file 89 | if File.exist?(File.expand_path(cnf["devices"])) 90 | DevicesList = File.readlines(File.expand_path(cnf["devices"])) 91 | else 92 | log.warn "File #{cnf["devices"]} doesn't exist" 93 | DevicesList = [] 94 | end 95 | 96 | # Read hosts file 97 | if File.exist?(File.expand_path(cnf["hosts"])) 98 | HostsList = File.readlines(File.expand_path(cnf["hosts"])) 99 | else 100 | log.warn "File #{cnf["hosts"]} doesn't exist" 101 | HostsList = [] 102 | HostsList.insert(-1,cnf["headers"]) 103 | end 104 | 105 | # Connect to the Zabbix API 106 | Rubix.connect(cnf["node"]["url"],cnf["node"]["username"],cnf["node"]["password"]) 107 | 108 | # Define FOLDERS 109 | FOLDERS = cnf["folders"] 110 | 111 | # Define RULES 112 | RULES = cnf["rules"] 113 | 114 | FOLDERS.each do |folder| 115 | 116 | # We need to ensure that provided group exist 117 | group = Rubix.connection.request('hostgroup.get', 'filter' => { 'name' => folder }) 118 | if group.has_data? 119 | group = group.result.reduce Hash.new, :merge 120 | else 121 | log.error "Host group #{folder} doesn't exist !" 122 | exit(-1) 123 | end 124 | 125 | RULES.each do |rule| 126 | 127 | log.info "Working on #{folder} on template #{rule["name"]}" 128 | 129 | # Get template list 130 | template = Rubix.connection.request('template.get', 'filter' => {'name' => rule["name"] }) 131 | if template.has_data? 132 | template = template.result.reduce Hash.new, :merge 133 | 134 | # Get hosts list 135 | hosts = Rubix.connection.request('host.get', 'groupids' => group["groupid"], 'templateids' => template["templateid"] ) 136 | hosts = hosts.result 137 | if hosts.count.to_i.zero? 138 | log.error "No hosts to update on this group" 139 | else 140 | log.info "We need to update #{hosts.count} hosts" 141 | end 142 | 143 | count = 0 144 | 145 | while count < hosts.count do 146 | host_id = hosts.fetch(count)["hostid"] 147 | host = Rubix.connection.request('host.getobjects', 'hostid'=> host_id ) 148 | host = host.result.reduce Hash.new, :merge 149 | 150 | # append router.db 151 | DevicesList.insert(-1, "#{host["name"].downcase}:#{rule["type"].downcase}:#{folder.upcase}:#{rule["username"]}:#{rule["password"]}\n") 152 | 153 | # append hosts 154 | HostsList.insert(-1, "#{host["host"]}\t\t\t#{host["name"].downcase}\n") 155 | 156 | count = count + 1 157 | 158 | end 159 | 160 | else 161 | log.error "Template #{template} doesn't exist !" 162 | end 163 | end 164 | end 165 | 166 | # Write router.db 167 | begin 168 | file = File.open(File.expand_path(cnf["devices"]),"w") 169 | file.puts(DevicesList.uniq) 170 | rescue IOError => e 171 | ensure 172 | file.close unless file == nil 173 | end 174 | 175 | # Write hosts 176 | begin 177 | file = File.open(File.expand_path(cnf["hosts"]),"w") 178 | file.puts(HostsList.uniq) 179 | rescue IOError => e 180 | ensure 181 | file.close unless file == nil 182 | end 183 | 184 | 185 | -------------------------------------------------------------------------------- /zbx-scripts/hosts_update/hosts_update.yml: -------------------------------------------------------------------------------- 1 | --- 2 | node: 3 | url: URL 4 | username: USERNAME 5 | password: PASSWORD 6 | devices: ~/Downloads/HostUpdate/router.db 7 | hosts: ~/Downloads/HostUpdate/hosts 8 | folders: 9 | - 00_KHP-NETWORK-CE 10 | - 00_KHP-NETWORK-BACKBONE 11 | - 00_KHP-NETWORK-BACKBONE-IAAS-PLR 12 | - 00_KHP-NETWORK-BACKBONE-IAAS-VLZ 13 | - 00_KHP-SAN 14 | rules: 15 | - { name: KHP-TEMPLATE-NETWORK-DEVICE-CISCO, type: cisco, username: rancid, password: rancidkheops } 16 | - { name: KHP-TEMPLATE-NETWORK-DEVICE-DELL, type: dell, username: rancid, password: rancidkheops } 17 | - { name: KHP-TEMPLATE-STORAGE-DEVICE-BROCADE, type: brocade, username: admin, password: oFOUyey2i } 18 | - { name: KHP-TEMPLATE-NETWORK-DEVICE-FORTINET, type: fortinet, username: rancid, password: rancidkheops } 19 | headers: [ "127.0.0.1\t\tlocalhost\n", "192.168.200.200\t\tkhp-nms-srv-01.kheops-network.info\n", "::1\t\tlocalhost ip6-localhost ip6-localhost\n", "fe00::0 ip6-localnet\n", "ff00::0 ip6-mcastprefix\n", "ff02::1 ip6-allnodes\n", "ff02::2 ip6-allrouters\n", "ff02::3 ip6-allhosts\n\n\n\n"] 20 | -------------------------------------------------------------------------------- /zbx-scripts/if.count/README.md: -------------------------------------------------------------------------------- 1 | if.count 2 | ======== 3 | 4 | This script query ifType and count interface matching a regexp. 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `if.count` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Then chmod a+x `if.count` 11 | 3. Install SNMP gem `gem install snmp` 12 | 13 | ### Requirements 14 | 15 | This script was tested for Zabbix 2.0.0 or higher. 16 | 17 | ###### [Ruby](http://www.ruby-lang.org/en/downloads/) 1.8.7 18 | 19 | This script require Ruby 1.8.7 or higher. 20 | 21 | ###### [RubyGems](http://rubygems.org) 1.8 22 | 23 | This script require RubyGems 1.8 or higher. 24 | 25 | ###### [SNMP](http://rubygems.org/gems/snmp) 1.1.0 26 | 27 | This script require SNMP gem 1.1.0 or higher. 28 | 29 | Usage 30 | ----- 31 | 32 | ### As a script 33 | ./if.count [OPTIONS] 34 | 35 | where OPTIONS are : 36 | -h, --help Display this help message 37 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 38 | -c, --community SNMP_COMMUNITY SNMP community used for the device 39 | -r, --regex REGEX Interface regexp 40 | 41 | ### As an item 42 | Use `if.count` like an **External Check** item in Zabbix. So, when creating an item, select **External Check**. In the **Key** field, you specify: 43 | 44 | if.count["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-r","REGEXP"] 45 | 46 | Version 47 | ------- 48 | 49 | Version 1.0 50 | 51 | License 52 | ------- 53 | 54 | This script is distributed 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. 55 | 56 | ### Copyright 57 | 58 | Copyright (c) 2012 Jean-Jacques Martrès 59 | 60 | ### Authors 61 | 62 | Jean-Jacques Martrès 63 | (jjmartres |at| gmail |dot| com) 64 | -------------------------------------------------------------------------------- /zbx-scripts/if.count/if.count: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | =begin 4 | Script: if.count 5 | Version: 1.0 6 | Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com) 7 | Description: This script query ifType and count interface matching a regexp 8 | License: GPL2 9 | 10 | This script is intended for use with Zabbix > 2.0 11 | 12 | USAGE: 13 | as a script: if.count [options] 14 | as an item: if.count["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-r","REGEXP"] 15 | 16 | OPTIONS 17 | -h, --help Display this help message 18 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 19 | -c, --community SNMP_COMMUNITY SNMP community used for the device 20 | -r, --regex REGEX Interface regexp 21 | =end 22 | require 'rubygems' 23 | require 'optparse' 24 | require 'snmp' 25 | 26 | version="0.0.1" 27 | 28 | # Howto use it..quiet simple 29 | OPTIONS = {} 30 | mandatory_options=[:deviceip, :community, :regex] 31 | optparse = OptionParser.new do |opts| 32 | opts.banner = "Usage: #{$0} [options]" 33 | opts.separator "" 34 | opts.separator "Options" 35 | opts.on("-h", "--help", "Display this help message") do 36 | puts opts 37 | exit(-1) 38 | end 39 | opts.on('-d', '--device IP_ADDRESS', String, 'Device IP address discovered by Zabbix') { |v| OPTIONS[:deviceip] = v } 40 | opts.on('-c', '--community SNMP_COMMUNITY',String, 'SNMP community used for the device') { |v| OPTIONS[:community] = v } 41 | opts.on('-r', '--regex REGEX', String, 'Interface regexp') { |v| OPTIONS[:regex] = v } 42 | opts.separator "" 43 | end 44 | 45 | # Show usage when no args pass 46 | if ARGV.empty? 47 | puts optparse 48 | exit(-1) 49 | end 50 | 51 | # Validate that mandatory parameters are specified 52 | begin 53 | optparse.parse!(ARGV) 54 | missing = mandatory_options.select{|p| OPTIONS[p].nil? } 55 | if not missing.empty? 56 | puts "Missing options: #{missing.join(', ')}" 57 | puts optparse 58 | exit(-1) 59 | end 60 | rescue OptionParser::ParseError,OptionParser::InvalidArgument,OptionParser::InvalidOption 61 | puts $!.to_s 62 | exit(-1) 63 | end 64 | 65 | # Query SNMP OID ifName 66 | if_table_columns = ["ifName"] 67 | count = 0 68 | SNMP::Manager.open(:host => OPTIONS[:deviceip], :community => OPTIONS[:community], :version => :SNMPv2c) do |manager| 69 | manager.walk(if_table_columns) do |row| 70 | row.each do |vb| 71 | if vb.value.match(OPTIONS[:regex]) 72 | count = count + 1 73 | end 74 | end 75 | end 76 | end 77 | puts count if count > 0 78 | exit(-1) 79 | -------------------------------------------------------------------------------- /zbx-scripts/if.speed/README.md: -------------------------------------------------------------------------------- 1 | if.speed 2 | ======== 3 | 4 | This script quey the speed of an interface using the ifSpeed and ifHighSpeed OID and return the right speed value for an interface. 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `if.speed` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Then chmod a+x `if.speed` 11 | 3. Install SNMP gem `gem install snmp` 12 | 13 | ### Requirements 14 | 15 | This script was tested for Zabbix 2.0.0 or higher. 16 | 17 | ###### [Ruby](http://www.ruby-lang.org/en/downloads/) 1.8.7 18 | 19 | This script require Ruby 1.8.7 or higher. 20 | 21 | ###### [RubyGems](http://rubygems.org) 1.8 22 | 23 | This script require RubyGems 1.8 or higher. 24 | 25 | ###### [SNMP](http://rubygems.org/gems/snmp) 1.1.0 26 | 27 | This script require SNMP gem 1.1.0 or higher. 28 | 29 | Usage 30 | ----- 31 | 32 | ### As a script 33 | ./if.speed [OPTIONS] 34 | 35 | where OPTIONS are : 36 | -h, --help Display this help message 37 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 38 | -c, --community SNMP_COMMUNITY SNMP community used for the device 39 | -s, --snmpindex SNMP_INDEX SNMP index 40 | 41 | ### As an item 42 | Use `if.speed` like an **External Check** item in Zabbix. So, when creating an item, select **External Check**. In the **Key** field, you specify: 43 | 44 | if.speed["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-s","SNMPINDEX"] 45 | 46 | Version 47 | ------- 48 | 49 | Version 1.0 50 | 51 | License 52 | ------- 53 | 54 | This script is distributed 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. 55 | 56 | ### Copyright 57 | 58 | Copyright (c) 2012 Jean-Jacques Martrès 59 | 60 | ### Authors 61 | 62 | Jean-Jacques Martrès 63 | (jjmartres |at| gmail |dot| com) 64 | -------------------------------------------------------------------------------- /zbx-scripts/if.speed/if.speed: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | =begin 4 | Script: if.speed 5 | Version: 1.0 6 | Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com) 7 | Description: This script quey the speed of an interface using the ifSpeed and ifHighSpeed OID and return the right speed value for an interface. 8 | License: GPL2 9 | 10 | This script is intended for use with Zabbix > 2.0 11 | 12 | USAGE: 13 | as a script: if.speed [options] 14 | as an item: if.speed["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-s","SNMPINDEX"] 15 | 16 | OPTIONS 17 | -h, --help Display this help message 18 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 19 | -c, --community SNMP_COMMUNITY SNMP community used for the device 20 | -s, --snmpindex SNMP_INDEX SNMP index 21 | =end 22 | require 'rubygems' 23 | require 'optparse' 24 | require 'snmp' 25 | 26 | version="0.0.1" 27 | 28 | # Howto use it..quiet simple 29 | OPTIONS = {} 30 | mandatory_options=[:deviceip, :community, :snmpindex] 31 | optparse = OptionParser.new do |opts| 32 | opts.banner = "Usage: #{$0} [options]" 33 | opts.separator "" 34 | opts.separator "Options" 35 | opts.on("-h", "--help", "Display this help message") do 36 | puts opts 37 | exit(-1) 38 | end 39 | opts.on('-d', '--device IP_ADDRESS', String, 'Device IP address discovered by Zabbix') { |v| OPTIONS[:deviceip] = v } 40 | opts.on('-c', '--community SNMP_COMMUNITY',String, 'SNMP community used for the device') { |v| OPTIONS[:community] = v } 41 | opts.on('-s', '--snmpindex SNMP_INDEX', Integer, 'SNMP index') { |v| OPTIONS[:snmpindex] = v } 42 | opts.separator "" 43 | end 44 | 45 | # Show usage when no args pass 46 | if ARGV.empty? 47 | puts optparse 48 | exit(-1) 49 | end 50 | 51 | # Validate that mandatory parameters are specified 52 | begin 53 | optparse.parse!(ARGV) 54 | missing = mandatory_options.select{|p| OPTIONS[p].nil? } 55 | if not missing.empty? 56 | puts "Missing options: #{missing.join(', ')}" 57 | puts optparse 58 | exit(-1) 59 | end 60 | rescue OptionParser::ParseError,OptionParser::InvalidArgument,OptionParser::InvalidOption 61 | puts $!.to_s 62 | exit(-1) 63 | end 64 | 65 | # Query SNMP OID ifSpeed and ifHighSpeed 66 | if_speed = Array.new 67 | SNMP::Manager.open(:host => OPTIONS[:deviceip], :community => OPTIONS[:community], :version => :SNMPv2c) do |manager| 68 | response = manager.get(["IF-MIB::ifSpeed.#{OPTIONS[:snmpindex]}","IF-MIB::ifHighSpeed.#{OPTIONS[:snmpindex]}"]) 69 | response.each_varbind do |vb| 70 | if_speed.push(vb.value.to_s) 71 | end 72 | end 73 | 74 | if if_speed.any? 75 | ifSpeed = if_speed[0].to_i 76 | ifHighSpeed = (if_speed[1].to_i)*1000000 77 | if ifSpeed < 4294967294 78 | puts ifSpeed 79 | exit(-1) 80 | else 81 | puts ifHighSpeed 82 | exit(-1) 83 | end 84 | else 85 | puts "-- ERROR -- : No response receive from #{OPTIONS[:deviceip]} !" 86 | exit(-1) 87 | end 88 | 89 | -------------------------------------------------------------------------------- /zbx-scripts/if.vdom/README.md: -------------------------------------------------------------------------------- 1 | if.vdom 2 | ======== 3 | 4 | This script show associated VDOM for an interface using SNMP on FortiNet device. 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `if.vdom` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Then chmod a+x `if.vdom` 11 | 3. Install SNMP gem `gem install snmp` 12 | 13 | ### Requirements 14 | 15 | This script was tested for Zabbix 2.0.0 or higher. 16 | 17 | ###### [Ruby](http://www.ruby-lang.org/en/downloads/) 1.8.7 18 | 19 | This script require Ruby 1.8.7 or higher. 20 | 21 | ###### [RubyGems](http://rubygems.org) 1.8 22 | 23 | This script require RubyGems 1.8 or higher. 24 | 25 | ###### [SNMP](http://rubygems.org/gems/snmp) 1.1.0 26 | 27 | This script require SNMP gem 1.1.0 or higher. 28 | 29 | Usage 30 | ----- 31 | 32 | ### As a script 33 | ./if.vdom [OPTIONS] 34 | 35 | where OPTIONS are : 36 | -h, --help Display this help message 37 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 38 | -c, --community SNMP_COMMUNITY SNMP community used for the device 39 | -s, --snmpindex SNMP_INDEX SNMP index 40 | 41 | ### As an item 42 | Use `if.vdom` like an **External Check** item in Zabbix. So, when creating an item, select **External Check**. In the **Key** field, you specify: 43 | 44 | if.vdom["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-s","SNMPINDEX"] 45 | 46 | Version 47 | ------- 48 | 49 | Version 1.0 50 | 51 | License 52 | ------- 53 | 54 | This script is distributed 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. 55 | 56 | ### Copyright 57 | 58 | Copyright (c) 2012 Jean-Jacques Martrès 59 | 60 | ### Authors 61 | 62 | Jean-Jacques Martrès 63 | (jjmartres |at| gmail |dot| com) 64 | -------------------------------------------------------------------------------- /zbx-scripts/if.vdom/if.vdom: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | =begin 4 | Script: if.vdom 5 | Version: 1.0 6 | Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com) 7 | Description: This script show asssociated VDOM for an interface using SNMP on FortiNet device. 8 | License: GPL2 9 | 10 | This script is intended for use with Zabbix > 2.0 11 | 12 | USAGE: 13 | as a script: if.vdom [options] 14 | as an item: if.vdom["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-s","SNMPINDEX"] 15 | 16 | OPTIONS 17 | -h, --help Display this help message 18 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 19 | -c, --community SNMP_COMMUNITY SNMP community used for the device 20 | -s, --snmpindex SNMP_INDEX SNMP index 21 | =end 22 | require 'rubygems' 23 | require 'optparse' 24 | require 'snmp' 25 | 26 | version="0.0.1" 27 | 28 | # Howto use it..quiet simple 29 | OPTIONS = {} 30 | mandatory_options=[:deviceip, :community, :snmpindex] 31 | optparse = OptionParser.new do |opts| 32 | opts.banner = "Usage: #{$0} [options]" 33 | opts.separator "" 34 | opts.separator "Options" 35 | opts.on("-h", "--help", "Display this help message") do 36 | puts opts 37 | exit(-1) 38 | end 39 | opts.on('-d', '--device IP_ADDRESS', String, 'Device IP address discovered by Zabbix') { |v| OPTIONS[:deviceip] = v } 40 | opts.on('-c', '--community SNMP_COMMUNITY',String, 'SNMP community used for the device') { |v| OPTIONS[:community] = v } 41 | opts.on('-s', '--snmpindex SNMP_INDEX', Integer, 'SNMP index') { |v| OPTIONS[:snmpindex] = v } 42 | opts.separator "" 43 | end 44 | 45 | # Show usage when no args pass 46 | if ARGV.empty? 47 | puts optparse 48 | exit(-1) 49 | end 50 | 51 | # Validate that mandatory parameters are specified 52 | begin 53 | optparse.parse!(ARGV) 54 | missing = mandatory_options.select{|p| OPTIONS[p].nil? } 55 | if not missing.empty? 56 | puts "Missing options: #{missing.join(', ')}" 57 | puts optparse 58 | exit(-1) 59 | end 60 | rescue OptionParser::ParseError,OptionParser::InvalidArgument,OptionParser::InvalidOption 61 | puts $!.to_s 62 | exit(-1) 63 | end 64 | 65 | # Query SNMP OID ifSpeed and ifHighSpeed 66 | if_vdom = Array.new 67 | 68 | SNMP::Manager.open(:host => OPTIONS[:deviceip], :community => OPTIONS[:community], :version => :SNMPv2c) do |manager| 69 | response = manager.get(["1.3.6.1.4.1.12356.101.7.2.1.1.1.#{OPTIONS[:snmpindex]}"]) 70 | response.each_varbind do |vb| 71 | if_vdom.push(vb.value.to_s) 72 | end 73 | end 74 | 75 | if if_vdom.any? 76 | ifIndex = if_vdom[0].to_i 77 | SNMP::Manager.open(:host => OPTIONS[:deviceip], :community => OPTIONS[:community], :version => :SNMPv2c) do |manager| 78 | response = manager.get(["1.3.6.1.4.1.12356.101.3.2.1.1.2.#{ifIndex}"]) 79 | response.each_varbind do |vb| 80 | puts vb.value.to_s 81 | end 82 | end 83 | exit(-1) 84 | else 85 | puts "-- ERROR -- : No response receive from #{OPTIONS[:deviceip]} !" 86 | exit(-1) 87 | end 88 | 89 | -------------------------------------------------------------------------------- /zbx-scripts/ift.ldmode/README.md: -------------------------------------------------------------------------------- 1 | ift.ldmode 2 | ========== 3 | 4 | This script query ldOpModes OID from the Infortrend MIB (IFT-SNMP-MIB) to get the logical drive operating mode. 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `ift.ldmode` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Then chmod a+x `ift.ldmode` 11 | 3. Install SNMP gem `gem install snmp` 12 | 13 | ### Requirements 14 | 15 | This script was tested for Zabbix 2.0.0 or higher. 16 | 17 | ###### [Ruby](http://www.ruby-lang.org/en/downloads/) 1.8.7 18 | 19 | This script require Ruby 1.8.7 or higher. 20 | 21 | ###### [RubyGems](http://rubygems.org) 1.8 22 | 23 | This script require RubyGems 1.8 or higher. 24 | 25 | ###### [SNMP](http://rubygems.org/gems/snmp) 1.1.0 26 | 27 | This script require SNMP gem 1.1.0 or higher. 28 | 29 | Usage 30 | ----- 31 | 32 | ### As a script 33 | ./ift.ldmode [OPTIONS] 34 | 35 | where OPTIONS are : 36 | -h, --help Display this help message 37 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 38 | -c, --community SNMP_COMMUNITY SNMP community used for the device 39 | -i, --id LD_INDEX Logical drive index 40 | 41 | ### As an item 42 | Use `ift.ldmode` like an **External Check** item in Zabbix. So, when creating an item, select **External Check**. In the **Key** field, you specify: 43 | 44 | ift.ldmode["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-i","LD_INDEX"] 45 | 46 | Version 47 | ------- 48 | 49 | Version 1.0 50 | 51 | License 52 | ------- 53 | 54 | This script is distributed 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. 55 | 56 | ### Copyright 57 | 58 | Copyright (c) 2012 Jean-Jacques Martrès 59 | 60 | ### Authors 61 | 62 | Jean-Jacques Martrès 63 | (jjmartres |at| gmail |dot| com) 64 | -------------------------------------------------------------------------------- /zbx-scripts/ift.ldmode/ift.ldmode: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | =begin 4 | Script: ift.ldmode 5 | Version: 1.0 6 | Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com) 7 | Description: This script query ldOpModes OID from the Infortrend MIB (IFT-SNMP-MIB) to get the logical drive operating mode 8 | License: GPL2 9 | 10 | This script is intended for use with Zabbix > 2.0 11 | 12 | USAGE: 13 | as a script: ift.ldmode [options] 14 | as an item: ift.ldmode["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-i","LD_INDEX"] 15 | 16 | OPTIONS 17 | -h, --help Display this help message 18 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 19 | -c, --community SNMP_COMMUNITY SNMP community used for the device 20 | -i, --id LD_INDEX Logical drive index 21 | =end 22 | require 'rubygems' 23 | require 'optparse' 24 | require 'snmp' 25 | 26 | version="0.0.1" 27 | 28 | # Howto use it..quiet simple 29 | OPTIONS = {} 30 | mandatory_options=[:deviceip, :community, :id] 31 | optparse = OptionParser.new do |opts| 32 | opts.banner = "Usage: #{$0} [options]" 33 | opts.separator "" 34 | opts.separator "Options" 35 | opts.on("-h", "--help", "Display this help message") do 36 | puts opts 37 | exit(-1) 38 | end 39 | opts.on('-d', '--device IP_ADDRESS', String, 'Device IP address discovered by Zabbix') { |v| OPTIONS[:deviceip] = v } 40 | opts.on('-c', '--community SNMP_COMMUNITY',String, 'SNMP community used for the device') { |v| OPTIONS[:community] = v } 41 | opts.on('-i', '--id LD_INDEX', Integer, 'Logical drive index') { |v| OPTIONS[:id] = v } 42 | opts.separator "" 43 | end 44 | 45 | # Show usage when no args pass 46 | if ARGV.empty? 47 | puts optparse 48 | exit(-1) 49 | end 50 | 51 | # Validate that mandatory parameters are specified 52 | begin 53 | optparse.parse!(ARGV) 54 | missing = mandatory_options.select{|p| OPTIONS[p].nil? } 55 | if not missing.empty? 56 | puts "Missing options: #{missing.join(', ')}" 57 | puts optparse 58 | exit(-1) 59 | end 60 | rescue OptionParser::ParseError,OptionParser::InvalidArgument,OptionParser::InvalidOption 61 | puts $!.to_s 62 | exit(-1) 63 | end 64 | 65 | # Query SNMP OID ldOpModes 66 | oid_value = Array.new 67 | 68 | SNMP::Manager.open(:host => OPTIONS[:deviceip], :community => OPTIONS[:community], :version => :SNMPv2c) do |manager| 69 | response = manager.get(["1.3.6.1.4.1.1714.1.1.2.1.5.#{OPTIONS[:id]}"]) 70 | response.each_varbind do |vb| 71 | oid_value.push(vb.value.to_s) 72 | end 73 | end 74 | 75 | if oid_value.any? 76 | if oid_value[0].match('noSuchInstance') 77 | puts "-- ERROR -- : No such instance !" 78 | else 79 | # We need to read BITS 0-3 to get RAID LEVEL 80 | # 0 (0000 in binary): Single drive 81 | # 1 (0001 in binary): NON-RAID 82 | # 2 (0010 in binary): RAID0 83 | # 3 (0011 in binary): RAID1 84 | # 4 (0100 in binary): RAID3 85 | # 5 (0101 in binary): RAID4 86 | # 6 (0110 in binary): RAID5 87 | # 7 (0111 in binary): RAID6 88 | oid_value = oid_value[0].to_i 89 | ldOpMode = oid_value.to_s(2).to_s.split('').reverse 90 | ldOpMode = ldOpMode[0..3].reverse.to_s 91 | puts ldOpMode.to_i 92 | exit(-1) 93 | end 94 | else 95 | puts "-- ERROR -- : No response receive from #{OPTIONS[:deviceip]} !" 96 | exit(-1) 97 | end 98 | -------------------------------------------------------------------------------- /zbx-scripts/ift.ldsize/README.md: -------------------------------------------------------------------------------- 1 | ift.ldsize 2 | ========== 3 | 4 | This script query ldSize OID from the Infortrend MIB (IFT-SNMP-MIB) to get the logical drive size. 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `ift.ldsize` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Then chmod a+x `ift.ldsize` 11 | 3. Install SNMP gem `gem install snmp` 12 | 13 | ### Requirements 14 | 15 | This script was tested for Zabbix 2.0.0 or higher. 16 | 17 | ###### [Ruby](http://www.ruby-lang.org/en/downloads/) 1.8.7 18 | 19 | This script require Ruby 1.8.7 or higher. 20 | 21 | ###### [RubyGems](http://rubygems.org) 1.8 22 | 23 | This script require RubyGems 1.8 or higher. 24 | 25 | ###### [SNMP](http://rubygems.org/gems/snmp) 1.1.0 26 | 27 | This script require SNMP gem 1.1.0 or higher. 28 | 29 | Usage 30 | ----- 31 | 32 | ### As a script 33 | ./ift.ldsize [OPTIONS] 34 | 35 | where OPTIONS are : 36 | -h, --help Display this help message 37 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 38 | -c, --community SNMP_COMMUNITY SNMP community used for the device 39 | -i, --id LD_INDEX Logical drive index 40 | -b, --block BLOCK_SIZE Block size value 41 | 42 | ### As an item 43 | Use `ift.ldsize` like an **External Check** item in Zabbix. So, when creating an item, select **External Check**. In the **Key** field, you specify: 44 | 45 | ift.ldsize["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-i","LD_INDEX","-b","BLOCK_SIZE"] 46 | 47 | Version 48 | ------- 49 | 50 | Version 1.0 51 | 52 | License 53 | ------- 54 | 55 | This script is distributed 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. 56 | 57 | ### Copyright 58 | 59 | Copyright (c) 2012 Jean-Jacques Martrès 60 | 61 | ### Authors 62 | 63 | Jean-Jacques Martrès 64 | (jjmartres |at| gmail |dot| com) 65 | -------------------------------------------------------------------------------- /zbx-scripts/ift.ldsize/ift.ldsize: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | =begin 4 | Script: ift.ldsize 5 | Version: 1.0 6 | Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com) 7 | Description: This script query ldSize OID from the Infortrend MIB (IFT-SNMP-MIB) to get the logical drive size. 8 | License: GPL2 9 | 10 | This script is intended for use with Zabbix > 2.0 11 | 12 | USAGE: 13 | as a script: ift.ldsize [options] 14 | as an item: ift.ldsize["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-i","LD_INDEX","-b","BLOCK_SIZE"] 15 | 16 | OPTIONS 17 | -h, --help Display this help message 18 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 19 | -c, --community SNMP_COMMUNITY SNMP community used for the device 20 | -i, --id LD_INDEX Logical drive index 21 | -b, --block BLOCK_SIZE Block size value 22 | =end 23 | require 'rubygems' 24 | require 'optparse' 25 | require 'snmp' 26 | 27 | version="0.0.1" 28 | 29 | # Howto use it..quiet simple 30 | OPTIONS = {} 31 | mandatory_options=[:deviceip, :community, :id] 32 | optparse = OptionParser.new do |opts| 33 | opts.banner = "Usage: #{$0} [options]" 34 | opts.separator "" 35 | opts.separator "Options" 36 | opts.on("-h", "--help", "Display this help message") do 37 | puts opts 38 | exit(-1) 39 | end 40 | opts.on('-d', '--device IP_ADDRESS', String, 'Device IP address discovered by Zabbix') { |v| OPTIONS[:deviceip] = v } 41 | opts.on('-c', '--community SNMP_COMMUNITY',String, 'SNMP community used for the device') { |v| OPTIONS[:community] = v } 42 | opts.on('-i', '--id LD_INDEX', Integer, 'Logical drive index') { |v| OPTIONS[:id] = v } 43 | opts.on('-b', '--block BLOCK_SIZE', Integer, 'Block size value') { |v| OPTIONS[:blocksize] = v } 44 | opts.separator "" 45 | end 46 | 47 | # Show usage when no args pass 48 | if ARGV.empty? 49 | puts optparse 50 | exit(-1) 51 | end 52 | 53 | # Validate that mandatory parameters are specified 54 | begin 55 | optparse.parse!(ARGV) 56 | missing = mandatory_options.select{|p| OPTIONS[p].nil? } 57 | if not missing.empty? 58 | puts "Missing options: #{missing.join(', ')}" 59 | puts optparse 60 | exit(-1) 61 | end 62 | rescue OptionParser::ParseError,OptionParser::InvalidArgument,OptionParser::InvalidOption 63 | puts $!.to_s 64 | exit(-1) 65 | end 66 | 67 | # Query SNMP OID ldSize 68 | oid_value = Array.new 69 | 70 | SNMP::Manager.open(:host => OPTIONS[:deviceip], :community => OPTIONS[:community], :version => :SNMPv2c) do |manager| 71 | response = manager.get(["1.3.6.1.4.1.1714.1.1.2.1.3.#{OPTIONS[:id]}"]) 72 | response.each_varbind do |vb| 73 | oid_value.push(vb.value.to_s) 74 | end 75 | end 76 | 77 | if oid_value.any? 78 | if oid_value[0].match('noSuchInstance') 79 | puts "-- ERROR -- : No such instance !" 80 | else 81 | size = oid_value[0].hex * OPTIONS[:blocksize].to_i 82 | puts size 83 | exit(-1) 84 | end 85 | else 86 | puts "-- ERROR -- : No response receive from #{OPTIONS[:deviceip]} !" 87 | exit(-1) 88 | end 89 | -------------------------------------------------------------------------------- /zbx-scripts/ift.ldstatus/README.md: -------------------------------------------------------------------------------- 1 | ift.ldstatus 2 | ============ 3 | 4 | This script query ldStatus OID from the Infortrend MIB (IFT-SNMP-MIB) to get the logical drive status. 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `ift.ldstatus` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Then chmod a+x `ift.ldstatus` 11 | 3. Install SNMP gem `gem install snmp` 12 | 13 | ### Requirements 14 | 15 | This script was tested for Zabbix 2.0.0 or higher. 16 | 17 | ###### [Ruby](http://www.ruby-lang.org/en/downloads/) 1.8.7 18 | 19 | This script require Ruby 1.8.7 or higher. 20 | 21 | ###### [RubyGems](http://rubygems.org) 1.8 22 | 23 | This script require RubyGems 1.8 or higher. 24 | 25 | ###### [SNMP](http://rubygems.org/gems/snmp) 1.1.0 26 | 27 | This script require SNMP gem 1.1.0 or higher. 28 | 29 | Usage 30 | ----- 31 | 32 | ### As a script 33 | ./ift.ldstatus [OPTIONS] 34 | 35 | where OPTIONS are : 36 | -h, --help Display this help message 37 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 38 | -c, --community SNMP_COMMUNITY SNMP community used for the device 39 | -i, --id LD_INDEX Logical drive index 40 | 41 | ### As an item 42 | Use `ift.ldstatus` like an **External Check** item in Zabbix. So, when creating an item, select **External Check**. In the **Key** field, you specify: 43 | 44 | ift.ldstatus["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-i","LD_INDEX"] 45 | 46 | Version 47 | ------- 48 | 49 | Version 1.0 50 | 51 | License 52 | ------- 53 | 54 | This script is distributed 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. 55 | 56 | ### Copyright 57 | 58 | Copyright (c) 2012 Jean-Jacques Martrès 59 | 60 | ### Authors 61 | 62 | Jean-Jacques Martrès 63 | (jjmartres |at| gmail |dot| com) 64 | -------------------------------------------------------------------------------- /zbx-scripts/ift.ldstatus/ift.ldstatus: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | =begin 4 | Script: ift.ldstatus 5 | Version: 1.0 6 | Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com) 7 | Description: This script query ldStatus OID from the Infortrend MIB (IFT-SNMP-MIB) to get the logical drive status. 8 | License: GPL2 9 | 10 | This script is intended for use with Zabbix > 2.0 11 | 12 | USAGE: 13 | as a script: ift.ldstatus [options] 14 | as an item: ift.ldstatus["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-i","LD_INDEX"] 15 | 16 | OPTIONS 17 | -h, --help Display this help message 18 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 19 | -c, --community SNMP_COMMUNITY SNMP community used for the device 20 | -i, --id LD_INDEX Logical drive index 21 | =end 22 | require 'rubygems' 23 | require 'optparse' 24 | require 'snmp' 25 | 26 | version="0.0.1" 27 | 28 | # Howto use it..quiet simple 29 | OPTIONS = {} 30 | mandatory_options=[:deviceip, :community, :id] 31 | optparse = OptionParser.new do |opts| 32 | opts.banner = "Usage: #{$0} [options]" 33 | opts.separator "" 34 | opts.separator "Options" 35 | opts.on("-h", "--help", "Display this help message") do 36 | puts opts 37 | exit(-1) 38 | end 39 | opts.on('-d', '--device IP_ADDRESS', String, 'Device IP address discovered by Zabbix') { |v| OPTIONS[:deviceip] = v } 40 | opts.on('-c', '--community SNMP_COMMUNITY',String, 'SNMP community used for the device') { |v| OPTIONS[:community] = v } 41 | opts.on('-i', '--id LD_INDEX', Integer, 'Logical drive index') { |v| OPTIONS[:id] = v } 42 | opts.separator "" 43 | end 44 | 45 | # Show usage when no args pass 46 | if ARGV.empty? 47 | puts optparse 48 | exit(-1) 49 | end 50 | 51 | # Validate that mandatory parameters are specified 52 | begin 53 | optparse.parse!(ARGV) 54 | missing = mandatory_options.select{|p| OPTIONS[p].nil? } 55 | if not missing.empty? 56 | puts "Missing options: #{missing.join(', ')}" 57 | puts optparse 58 | exit(-1) 59 | end 60 | rescue OptionParser::ParseError,OptionParser::InvalidArgument,OptionParser::InvalidOption 61 | puts $!.to_s 62 | exit(-1) 63 | end 64 | 65 | # Query SNMP OID ldStatus 66 | oid_value = Array.new 67 | 68 | SNMP::Manager.open(:host => OPTIONS[:deviceip], :community => OPTIONS[:community], :version => :SNMPv2c) do |manager| 69 | response = manager.get(["1.3.6.1.4.1.1714.1.1.2.1.6.#{OPTIONS[:id]}"]) 70 | response.each_varbind do |vb| 71 | oid_value.push(vb.value.to_s) 72 | end 73 | end 74 | 75 | if oid_value.any? 76 | if oid_value[0].match('noSuchInstance') 77 | puts "-- ERROR -- : No such instance !" 78 | else 79 | # We need to read BITS 0-2 to get Logical Drive Status 80 | # 0 (0000 in binary): GOOD 81 | # 1 (0001 in binary): REBUILDING 82 | # 2 (0010 in binary): INITIALIZING 83 | # 3 (0011 in binary): DEGRADEED 84 | # 4 (0100 in binary): DEAD 85 | # 5 (0101 in binary): INVALID 86 | # 6 (0110 in binary): INCOMPLETE 87 | # 7 (0111 in binary): DRIVE MISSING 88 | oid_value = oid_value[0].to_i 89 | ldStatus = oid_value.to_s(2).to_s.split('').reverse 90 | ldStatus = ldStatus[0..2].to_s.reverse 91 | puts ldStatus.to_i 92 | exit(-1) 93 | end 94 | else 95 | puts "-- ERROR -- : No response receive from #{OPTIONS[:deviceip]} !" 96 | exit(-1) 97 | end 98 | -------------------------------------------------------------------------------- /zbx-scripts/nmsupdate/nmsupdate.conf: -------------------------------------------------------------------------------- 1 | url: "zabbix api url" 2 | login: "zabbix username" 3 | password: "zabbix password" 4 | folders: "[['host group name 1','snmp_community_1'],['host group name 2','snmp_community_2']]" 5 | rules: "[['TEMPLATE_NAME_1','regex1','class1'],['TEMPLATE_NAME_2','regex2','class2']]" 6 | headers: "some headers" 7 | 8 | -------------------------------------------------------------------------------- /zbx-scripts/powerconnect.optical/README.md: -------------------------------------------------------------------------------- 1 | powerconnect.optical 2 | ==================== 3 | 4 | This script query optical transceiver on Dell PowerConnect switches. 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `powerconnect.optical` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Then chmod a+x `powerconnect.optical` 11 | 12 | ### Requirements 13 | 14 | This script was tested for Zabbix 2.0.0 or higher. 15 | 16 | ###### [Ruby](http://www.ruby-lang.org/en/downloads/) 1.8.7 17 | 18 | This script require Ruby 1.8.7 or higher. 19 | 20 | ###### [RubyGems](http://rubygems.org) 1.8 21 | 22 | This script require RubyGems 1.8 or higher. 23 | 24 | Usage 25 | ----- 26 | 27 | ### As a script 28 | ./powerconnect.optical [OPTIONS] 29 | 30 | OPTIONS 31 | -h, --help Display this help message 32 | -a, --address IP_ADDRESS IP address to query 33 | -u, --user USERNAME Username used to telnet the host 34 | -p, --password PASSWORD Username associated password 35 | -i, --interface INTERFACE Transceiver interface to query 36 | -q, --query FLAG Flag: TEMP|VOLTAGE|CURRENT|OUTPUTPOWER|INPUTPOWER|TXFAULT|LOS 37 | TEMP - Internally measured transceiver temperatures. 38 | VOLTAGE - Internally measured supply voltage. 39 | CURRENT - Measured TX bias current. 40 | OUTPUTPOWER - Measured optical output power relative to 1mW. 41 | INPUTPOWER - Measured optical power received relative to 1mW. 42 | TXFAULT - Transmitter fault: if Yes return 1, if No return 2 43 | LOS - Loss of signal: if Yes return 1, if No return 2 44 | -d, --debug Set debug flag 45 | 46 | ### As an item 47 | Use `powerconect.optical` like an **External Check** item in Zabbix. So, when creating an item, select **External Check**. In the **Key** field, you specify: 48 | 49 | powerconnect.optical["-a","IP_ADDRESS","-u","USERNAME","-p","PASSWORD","-i","INTERFACE","-q","FLAG"] 50 | 51 | Version 52 | ------- 53 | 54 | Version 1.0 55 | 56 | License 57 | ------- 58 | 59 | This script is distributed 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. 60 | 61 | ### Copyright 62 | 63 | Copyright (c) 2012 Jean-Jacques Martrès 64 | 65 | ### Authors 66 | 67 | Jean-Jacques Martrès 68 | (jjmartres |at| gmail |dot| com) 69 | -------------------------------------------------------------------------------- /zbx-scripts/rbl.check/README.md: -------------------------------------------------------------------------------- 1 | rbl.check 2 | ========= 3 | 4 | This script queries DNS Blacklists for listings. 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `rbl.check` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Then chmod a+x `rbl.check` 11 | 3. Install DNSBL-Client gem `gem install dnsbl-client` 12 | 13 | ### Requirements 14 | 15 | This script was tested for Zabbix 2.0.0 or higher. 16 | 17 | ###### [Ruby](http://www.ruby-lang.org/en/downloads/) 1.8.7 18 | 19 | This script require Ruby 1.8.7 or higher. 20 | 21 | ###### [RubyGems](http://rubygems.org) 1.8 22 | 23 | This script require RubyGems 1.8 or higher. 24 | 25 | ###### [DNSBL::Client](https://github.com/chrislee35/dnsbl-client) 1.0.0 26 | 27 | This script require DNSBL::Client gem 1.0.0 or higher. 28 | 29 | Usage 30 | ----- 31 | 32 | ### As a script 33 | ./rbl.check [OPTIONS] 34 | 35 | where OPTIONS are : 36 | -h, --help Display this help message 37 | -q, --query Flag Flag: RBLS or IP_ADDRESS 38 | 39 | ### As an item 40 | Use `rbl.check` like an **External Check** item in Zabbix. So, when creating an item, select **External Check**. In the **Key** field, you specify: 41 | 42 | rbl.check["-q","RBLS|IP_ADDRESS"] 43 | 44 | ### Supported RBLS 45 | VIRBL => virbl.dnsbl.bit.nl 46 | SPAMHAUS => zen.spamhaus.org 47 | URIBL => multi.uribl.com 48 | SURBL => multi.surbl.org 49 | NJABL => dnsbl.njabl.org 50 | SPAMCOP => bl.spamcop.net 51 | SORBS => dnsbl.sorbs.net 52 | DRONEBL => dnsbl.dronebl.org 53 | BARRACUDA => b.barracudacentral.org 54 | DRONE_ABUSE_CH => drone.abuse.ch 55 | HTTPBL_ABUSE_CH => httpbl.abuse.ch 56 | SPAM_ABUSE_CH => spam.abuse.ch 57 | MAILSHELL => dnsbl.mailshell.net 58 | CBL => cbl.abuseat.org 59 | FIVETENSG => blackholes.five-ten-sg.com 60 | INPS => dnsbl.inps.de 61 | MANITU => ix.dnsbl.manitu.net 62 | NOMOREFUN => no-more-funn.moensted.dk 63 | SPAMCANNIBAL => bl.spamcannibal.org 64 | UCEPROTECT1 => dnsbl-1.uceprotect.net 65 | UCEPROTECT2 => dnsbl-2.uceprotect.net 66 | UCEPROTECT3 => dnsbl-3.uceprotect.net 67 | WHITELIST => ips.whitelisted.org 68 | BACKSCATTERER => ips.backscatterer.org 69 | PROJECTHONEYPOT => dnsbl.httpbl.org 70 | TOREXITNODE => torexit.dan.me.uk 71 | UNSUBSCORE => ubl.unsubscore.com 72 | DYNA_SPAMRATS => dyna.spamrats.com 73 | NOPTR_SPAMRATS => noptr.spamrats.com 74 | SPAM_SPAMRATS => spam.spamrats.com 75 | CBL_ANTISPAM_ORG_CN => cbl.anti-spam.org.cn 76 | CDL_ANTISPAM_ORG_CN => cdl.anti-spam.org.cn 77 | SURRIEL => psbl.surriel.com 78 | SPAMLAB => rbl.spamlab.com 79 | BOGONS_CYMRU => bogons.cymru.com 80 | RFC-IGNORANT => dsn.bl.rfc-ignorant.de 81 | 82 | Version 83 | ------- 84 | 85 | Version 1.1 86 | 87 | License 88 | ------- 89 | 90 | This script is distributed 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. 91 | 92 | ### Copyright 93 | 94 | Copyright (c) Jean-Jacques Martrès 95 | 96 | ### Authors 97 | 98 | Jean-Jacques Martrès 99 | (jjmartres |at| gmail |dot| com) 100 | -------------------------------------------------------------------------------- /zbx-scripts/rbl.check/rbl.check: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | =begin 4 | Script: rbl.check 5 | Version: 1.0 6 | Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com) 7 | Description: This script queries DNS Blacklists for listings 8 | License: GPL2 9 | 10 | This script is intended for use with Zabbix > 2.0 11 | 12 | Supported RBLs are : 13 | VIRBL => virbl.dnsbl.bit.nl 14 | SPAMHAUS => zen.spamhaus.org 15 | URIBL => multi.uribl.com 16 | SURBL => multi.surbl.org 17 | NJABL => dnsbl.njabl.org 18 | SPAMCOP => bl.spamcop.net 19 | SORBS => dnsbl.sorbs.net 20 | DRONEBL => dnsbl.dronebl.org 21 | BARRACUDA => b.barracudacentral.org 22 | DRONE_ABUSE_CH => drone.abuse.ch 23 | HTTPBL_ABUSE_CH => httpbl.abuse.ch 24 | SPAM_ABUSE_CH => spam.abuse.ch 25 | MAILSHELL => dnsbl.mailshell.net 26 | CBL => cbl.abuseat.org 27 | FIVETENSG => blackholes.five-ten-sg.com 28 | INPS => dnsbl.inps.de 29 | MANITU => ix.dnsbl.manitu.net 30 | NOMOREFUN => no-more-funn.moensted.dk 31 | SPAMCANNIBAL => bl.spamcannibal.org 32 | UCEPROTECT1 => dnsbl-1.uceprotect.net 33 | UCEPROTECT2 => dnsbl-2.uceprotect.net 34 | UCEPROTECT3 => dnsbl-3.uceprotect.net 35 | WHITELIST => ips.whitelisted.org 36 | BACKSCATTERER => ips.backscatterer.org 37 | PROJECTHONEYPOT => dnsbl.httpbl.org 38 | TOREXITNODE => torexit.dan.me.uk 39 | UNSUBSCORE => ubl.unsubscore.com 40 | DYNA_SPAMRATS => dyna.spamrats.com 41 | NOPTR_SPAMRATS => noptr.spamrats.com 42 | SPAM_SPAMRATS => spam.spamrats.com 43 | CBL_ANTISPAM_ORG_CN => cbl.anti-spam.org.cn 44 | CDL_ANTISPAM_ORG_CN => cdl.anti-spam.org.cn 45 | SURRIEL => psbl.surriel.com 46 | SPAMLAB => rbl.spamlab.com 47 | BOGONS_CYMRU => bogons.cymru.com 48 | RFC-IGNORANT => dsn.bl.rfc-ignorant.de 49 | 50 | USAGE: 51 | as a script: rbl.check [options] 52 | as an item: rbl.check["-q","RBLS|IP_ADDRESS"] 53 | 54 | OPTIONS 55 | -h, --help Display this help message 56 | -q, --query Flag Flag: RBLS or IP_ADDRESS 57 | =end 58 | require 'rubygems' 59 | require 'optparse' 60 | require 'dnsbl/client' 61 | 62 | version="0.1.1" 63 | 64 | # Howto use it..quiet simple 65 | OPTIONS = {} 66 | mandatory_options=[:query] 67 | optparse = OptionParser.new do |opts| 68 | opts.banner = "Usage: #{$0} [options]" 69 | opts.separator "" 70 | opts.separator "Options" 71 | opts.on("-h", "--help", "Display this help message") do 72 | puts opts 73 | exit(-1) 74 | end 75 | opts.on('-q', '--query FLAG', String, 'Flag: RBLS|IP_ADDRESS') { |v| OPTIONS[:query] = v } 76 | opts.separator "" 77 | end 78 | 79 | # Show usage when no args pass 80 | if ARGV.empty? 81 | puts optparse 82 | exit(-1) 83 | end 84 | 85 | # Validate that mandatory parameters are specified 86 | begin 87 | optparse.parse!(ARGV) 88 | missing = mandatory_options.select{|p| OPTIONS[p].nil? } 89 | if not missing.empty? 90 | puts "Missing options: #{missing.join(', ')}" 91 | puts optparse 92 | exit(-1) 93 | end 94 | rescue OptionParser::ParseError,OptionParser::InvalidArgument,OptionParser::InvalidOption 95 | puts $!.to_s 96 | exit(-1) 97 | end 98 | 99 | # Rewrite dnsbls function 100 | module DNSBL 101 | class Client 102 | def dnsbls 103 | @dnsbls 104 | end 105 | end 106 | end 107 | 108 | # Initialize 109 | c = DNSBL::Client.new 110 | 111 | # Add more RBL server 112 | c.add_dnsbl("UNSUBSCORE", "ubl.unsubscore.com",'ip',{"0"=>"OK","127.0.0.2"=>"Blacklisted"}) 113 | c.add_dnsbl("DYNA_SPAMRATS","dyna.spamrats.com",'ip',{"0"=>"OK","127.0.0.36"=>"Blacklisted"}) 114 | c.add_dnsbl("NOPTR_SPAMRATS","noptr.spamrats.com",'ip',{"0"=>"OK","127.0.0.37"=>"Blacklisted"}) 115 | c.add_dnsbl("SPAM_SPAMRATS","spam.spamrats.com",'ip',{"0"=>"OK","127.0.0.38"=>"Blacklisted"}) 116 | c.add_dnsbl("CBL_ANTISPAM_ORG_CN","cbl.anti-spam.org.cn",'ip',{"0"=>"OK","127.0.8.2"=>"Blacklisted"}) 117 | c.add_dnsbl("CDL_ANTISPAM_ORG_CN","cdl.anti-spam.org.cn",'ip',{"0"=>"OK","127.0.8.4"=>"Blacklisted"}) 118 | c.add_dnsbl("SURRIEL","psbl.surriel.com",'ip',{"0"=>"OK","127.0.0.2"=>"Blacklisted"}) 119 | c.add_dnsbl("SPAMLAB","rbl.spamlab.com",'ip',{"0"=>"OK","127.0.0.2"=>"Blacklisted"}) 120 | c.add_dnsbl("BOGONS_CYMRU","bogons.cymru.com",'ip',{"0"=>"OK","127.0.0.2"=>"Blacklisted"}) 121 | c.add_dnsbl("RFC-IGNORANT","dsn.bl.rfc-ignorant.de",'ip',{"0"=>"OK","127.0.0.2"=>"Blacklisted"}) 122 | 123 | # Create @RBLs list 124 | @rbls = c.dnsbls 125 | 126 | case OPTIONS[:query].upcase 127 | # List @RBLs 128 | when "RBLS" 129 | @rbls.keys.each { |key| puts "#{key} => #{@rbls[key]['domain']}" } 130 | exit(-1) 131 | # Lookup @RBLs for the specified IP address 132 | when /^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$/ 133 | lookup = c.lookup(OPTIONS[:query]) 134 | message = "" 135 | if lookup.empty? 136 | message = message + "Not listed" 137 | else 138 | lookup.each_with_index { |obj, index| message = message + "#{obj.dnsbl} (#{@rbls[obj.dnsbl]['domain']})\n" } 139 | end 140 | puts message 141 | exit(-1) 142 | else 143 | exit(-1) 144 | end 145 | -------------------------------------------------------------------------------- /zbx-scripts/vpn.vdom/README.md: -------------------------------------------------------------------------------- 1 | vpn.vdom 2 | ======== 3 | 4 | This script show asssociated VDOM for a VPN tunnel using SNMP on FortiNet device. 5 | 6 | Installation 7 | ------------ 8 | 9 | 1. Install `vpn.vdom` in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 10 | 2. Then chmod a+x `vpn.vdom` 11 | 3. Install SNMP gem `gem install snmp` 12 | 13 | ### Requirements 14 | 15 | This script was tested for Zabbix 2.0.0 or higher. 16 | 17 | ###### [Ruby](http://www.ruby-lang.org/en/downloads/) 1.8.7 18 | 19 | This script require Ruby 1.8.7 or higher. 20 | 21 | ###### [RubyGems](http://rubygems.org) 1.8 22 | 23 | This script require RubyGems 1.8 or higher. 24 | 25 | ###### [SNMP](http://rubygems.org/gems/snmp) 1.1.0 26 | 27 | This script require SNMP gem 1.1.0 or higher. 28 | 29 | Usage 30 | ----- 31 | 32 | ### As a script 33 | ./vpn.vdom [OPTIONS] 34 | 35 | where OPTIONS are : 36 | -h, --help Display this help message 37 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 38 | -c, --community SNMP_COMMUNITY SNMP community used for the device 39 | -s, --snmpindex SNMP_INDEX SNMP index 40 | 41 | ### As an item 42 | Use `vpn.vdom` like an **External Check** item in Zabbix. So, when creating an item, select **External Check**. In the **Key** field, you specify: 43 | 44 | vpn.vdom["-d","IP_ADDRESS","-c","SNMP_COMMUNITY","-s","SNMPINDEX"] 45 | 46 | Version 47 | ------- 48 | 49 | Version 1.0 50 | 51 | License 52 | ------- 53 | 54 | This script is distributed 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. 55 | 56 | ### Copyright 57 | 58 | Copyright (c) 2012 Jean-Jacques Martrès 59 | 60 | ### Authors 61 | 62 | Jean-Jacques Martrès 63 | (jjmartres |at| gmail |dot| com) 64 | -------------------------------------------------------------------------------- /zbx-scripts/vpn.vdom/vpn.vdom: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | =begin 4 | Script: vpn.vdom 5 | Version: 1.0 6 | Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com) 7 | Description: This script show asssociated VDOM for a VPN tunnel using SNMP on Fortinet device. 8 | License: GPL2 9 | 10 | This script is intended for use with Zabbix > 2.0 11 | 12 | USAGE: 13 | if.vdom [options] 14 | 15 | OPTIONS 16 | -h, --help Display this help message 17 | -d, --device IP_ADDRESS Device IP address discovered by Zabbix 18 | -c, --community SNMP_COMMUNITY SNMP community used for the device 19 | -s, --snmpindex SNMP_INDEX SNMP index 20 | =end 21 | require 'rubygems' 22 | require 'optparse' 23 | require 'snmp' 24 | 25 | version="0.0.1" 26 | 27 | # Howto use it..quiet simple 28 | OPTIONS = {} 29 | mandatory_options=[:deviceip, :community, :snmpindex] 30 | optparse = OptionParser.new do |opts| 31 | opts.banner = "Usage: #{$0} [options]" 32 | opts.separator "" 33 | opts.separator "Options" 34 | opts.on("-h", "--help", "Display this help message") do 35 | puts opts 36 | exit(-1) 37 | end 38 | opts.on('-d', '--device IP_ADDRESS', String, 'Device IP address discovered by Zabbix') { |v| OPTIONS[:deviceip] = v } 39 | opts.on('-c', '--community SNMP_COMMUNITY',String, 'SNMP community used for the device') { |v| OPTIONS[:community] = v } 40 | opts.on('-s', '--snmpindex SNMP_INDEX', Integer, 'SNMP index') { |v| OPTIONS[:snmpindex] = v } 41 | opts.separator "" 42 | end 43 | 44 | # Show usage when no args pass 45 | if ARGV.empty? 46 | puts optparse 47 | exit(-1) 48 | end 49 | 50 | # Validate that mandatory parameters are specified 51 | begin 52 | optparse.parse!(ARGV) 53 | missing = mandatory_options.select{|p| OPTIONS[p].nil? } 54 | if not missing.empty? 55 | puts "Missing options: #{missing.join(', ')}" 56 | puts optparse 57 | exit(-1) 58 | end 59 | rescue OptionParser::ParseError,OptionParser::InvalidArgument,OptionParser::InvalidOption 60 | puts $!.to_s 61 | exit(-1) 62 | end 63 | 64 | # Query SNMP OID ifSpeed and ifHighSpeed 65 | if_vdom = Array.new 66 | 67 | SNMP::Manager.open(:host => OPTIONS[:deviceip], :community => OPTIONS[:community], :version => :SNMPv2c) do |manager| 68 | response = manager.get(["1.3.6.1.4.1.12356.101.12.2.2.1.21.#{OPTIONS[:snmpindex]}"]) 69 | response.each_varbind do |vb| 70 | if_vdom.push(vb.value.to_s) 71 | end 72 | end 73 | 74 | if if_vdom.any? 75 | ifIndex = if_vdom[0].to_i 76 | SNMP::Manager.open(:host => OPTIONS[:deviceip], :community => OPTIONS[:community], :version => :SNMPv2c) do |manager| 77 | response = manager.get(["1.3.6.1.4.1.12356.101.3.2.1.1.2.#{ifIndex}"]) 78 | response.each_varbind do |vb| 79 | puts vb.value.to_s 80 | end 81 | end 82 | exit(-1) 83 | else 84 | puts "-- ERROR -- : No response receive from #{OPTIONS[:deviceip]} !" 85 | exit(-1) 86 | end 87 | -------------------------------------------------------------------------------- /zbx-templates/README.md: -------------------------------------------------------------------------------- 1 | ZABBIX TEMPLATES 2 | ================ 3 | 4 | A collection of Zabbix templates. You can also have a look to [VIMbix](https://github.com/jjmartres/vimbix) which is a VMware Virtual Infrastructure Methodology RESTfull proxy for Zabbix. 5 | 6 | Templates 7 | --------- 8 | 9 | * [ZBX-CISCO](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-cisco) => templates to discover and manage capabilities on Cisco devices. 10 | * [ZBX-APC](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-apc) => template to discover and manage capabilities on APC UPS. 11 | * [ZBX-NETOPIA](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-netopia) => template to discover and manage capabilities on Netopia devices. 12 | * [ZBX-DELL-POWERCONNECT](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-dell-powerconnect) => template to discover and manage capabilities on Dell PowerConnect devices. 13 | * [ZBX-FORTINET](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-fortinet) => template to discover and manage capabilities on Fortinet devices. 14 | * [ZBX-INFORTREND](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-infortrend) => template to discover and manage capabilities on Infortrend storage array. 15 | * [ZBX-DATACORE](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-datacore) => template to discover and manage DataCore SANsymphony-V server. 16 | * [ZBX-BROCADE](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-brocade) => template to discover and manage Brocade Fiber-Channel switches. 17 | * [ZBX-EATON](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-eaton) => template to discover and manage Eaton UPS. 18 | * [ZBX-WINDOWS](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-windows) => template to discover and manage capabilities on Windows server. 19 | * [ZBX-VEEAM](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-veeam) => template to discover and manage VEEAM Backup & Replication jobs. 20 | * [ZBX-ICEWARP](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-icewarp) => template to manage IceWarp Server. 21 | * [ZBX-SMSTOOLS](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-smstools) => template to manage SMSTOOLS. 22 | * [ZBX-GANDI](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-gandi) => template to manage domain and certificate expiry from Gandi API 23 | * [ZBX-DRBD](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-drbd) => template to manage [DRBD](http://www.drbd.org) ressources. 24 | * [ZBX-VMWARE](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-vmware) => template to manage VMware vCenter (both vCSA and Windows server) 25 | * [ZBX-DELL-COMPELLENT](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-dell-compellent) => template to discover and manage capabilities on Compellent storage array. 26 | 27 | Requirements 28 | ------------ 29 | 30 | All this templates were tested for Zabbix 2.0.0 and higher. Please see individual README for requirements. 31 | 32 | License 33 | ------- 34 | 35 | This template were distributed 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. 36 | 37 | ### Copyright 38 | 39 | Copyright (c) Jean-Jacques Martrès 40 | 41 | ### Authors 42 | 43 | Jean-Jacques Martrès 44 | (jjmartres |at| gmail |dot| com) 45 | -------------------------------------------------------------------------------- /zbx-templates/zbx-apc/README.md: -------------------------------------------------------------------------------- 1 | ZBX-APC-UPS 2 | =========== 3 | 4 | This template use the APC-POWERNET-MIB to discover and manage APC UPS devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Contact (Populates host inventory field **Contact**) 10 | * Device Location (Populates host inventory field **Location**) 11 | * Device Manufacturer Name (Populates host inventory field **Tag**) 12 | * Device Name (Populates host inventory field **Name**) 13 | * Device reachability using ICMP 14 | * Device Serail Number (Populates host inventory field **Serial Number A**) 15 | * Software Version (Populates host inventory field **OS**) 16 | * Software Version (full) (Populates host inventory field **OS (Full details)**) 17 | * UPS battery capacity 18 | * UPS battery status 19 | * UPS battery temperature 20 | * UPS current load 21 | * UPS input voltage 22 | * UPS output frequency 23 | * UPS output load 24 | * UPS output voltage 25 | * UPS replace battery indicator 26 | * UPS run time remaining 27 | * UPS status 28 | * UPS time on battery 29 | * Uptime 30 | 31 | Triggers 32 | -------- 33 | 34 | * **[DISASTER]** => Run time remaining critical level 35 | * **[DISASTER]** => Replace battery 36 | * **[DISASTER]** => High battery temperature 37 | * **[DISASTER]** => Output load too high 38 | * **[DISASTER]** => Loss of input power 39 | * **[HIGH]** => Run time remaining low 40 | * **[WARNING]** => Output load too high 41 | 42 | Graphs 43 | ------ 44 | 45 | * Battery status 46 | * UPS load 47 | * UPS temperature 48 | * UPS voltage 49 | 50 | Installation 51 | ------------ 52 | 53 | 1. Install [`echo.something`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 54 | 2. Then `chmod a+x echo.something` 55 | 3. Add a value mapping named `apcBatteryStatus` with the following values: 56 | * 1 => unknown 57 | * 2 => batteryNormal 58 | * 3 => batteryLow 59 | 4. Add a value mapping named `apcBatteryReplacementStatus` with the following values: 60 | * 1 => unknown 61 | * 2 => notInstalled 62 | * 3 => ok 63 | * 4 => failed 64 | * 5 => highTemperature 65 | * 6 => replaceImmediately 66 | * 7 => lowCapacity 67 | 5. Add a value mapping named `apcStatus`with the following values: 68 | * 1 => unknown 69 | * 2 => onLine 70 | * 3 => onBattery 71 | * 4 => onSmartBoost 72 | * 5 => timedSleeping 73 | * 6 => softwareBypass 74 | * 7 => off 75 | * 8 => rebooting 76 | * 9 => switchedBypass 77 | * 10 => hardwareFailureBypass 78 | * 11 => sleepingUntilPowerReturn 79 | * 12 => onSmartTrim 80 | 4. Import **zbx-apc-ups.xml** file into Zabbix. 81 | 5. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 82 | 6. Configure **Host Inventory** to `Automatic` for your host. 83 | 7. Associate **ZBX-APC-UPS** template to the host. 84 | 85 | ### Requirements 86 | 87 | This template was tested for Zabbix 2.0.0 and higher. 88 | 89 | ###### [echo.something](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) 1.0 90 | 91 | This template use this script to echo "APC" as Device Manufacturer Name for **Host Inventory**. 92 | 93 | License 94 | ------- 95 | 96 | This template is distributed 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. 97 | 98 | ### Copyright 99 | 100 | Copyright (c) Jean-Jacques Martrès 101 | 102 | ### Authors 103 | 104 | Jean-Jacques Martrès 105 | (jjmartres |at| gmail |dot| com) 106 | -------------------------------------------------------------------------------- /zbx-templates/zbx-audiocodes/zbx-audiocodes-interfaces/README.md: -------------------------------------------------------------------------------- 1 | ZBX-AUDIOCODES-INTERFACES 2 | ========================= 3 | 4 | This template use the IF-MIB to discover and manage interfaces of Audiocodes devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: administrative status for each interface 10 | * Discovery: operational status for earch interface 11 | * Discovery: speed for each interface 12 | * Discovery: description for each interface 13 | * Discovery: alias for each interface 14 | * Discovery: incoming traffic on each interface 15 | * Discovery: outgoing traffic on each interface 16 | * Discovery: inbound errors on each interface 17 | * Discovery: outbound errors on each interface 18 | * Discovery: incoming discarded packets on each interface 19 | * Discovery: outgoing discarded packets on each interface 20 | 21 | Triggers 22 | -------- 23 | 24 | * **[WARNING]** => Discovery: incoming use on an interface exceed 80% for the last 5 minutes 25 | * **[WARNING]** => Discovery: outgoing use on an interface exceed 80% for the last 5 minutes 26 | * **[INFORMATION]** => Discovery: operational status was changed for an interface 27 | 28 | Graphs 29 | ------ 30 | 31 | * Discovery: traffic (bits/sec, 95th Percentile) for an interface 32 | * Discovery: errors on an interface 33 | 34 | Installation 35 | ------------ 36 | 37 | 1. Install [`if.speed`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.speed) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 38 | 2. Then `chmod a+x if.speed` 39 | 3. Add a value mapping named `acSysTypeProduct` with the following values: 40 | * 0 => Unknown 41 | * 1 => TrunkPac-08 42 | * 2 => MediaPack-108 43 | * 3 => MediaPack-124 44 | * 20 => TrunkPack-1600 45 | * 22 => TPM1100 46 | * 23 => TrunkPack-260-IPMEdia 47 | * 24 => TrunkPack-1610 48 | * 25 => MediaPack-104 49 | * 26 => MediaPack-102 50 | * 29 => TrunkPack-1610-SB 51 | * 30 => TrunkPack-1610-IPMedia 52 | * 31 => TrunkPack-MEDIANT2000 53 | * 32 => TrunkPack-STRETTO2000 54 | * 33 => TrunkPack-IPMServer2000 55 | * 34 => TrunkPack-2810 56 | * 35 => TrunkPack-260-UN-IPMedia 57 | * 36 => TrunkPack-260-IPMedia-30Ch 58 | * 37 => TrunkPack-260-IPMedia-60Ch 59 | * 38 => TrunkPack-260-IPMedia-120Ch 60 | * 39 => TrunkPack-260RT-IPMedia-30Ch 61 | * 40 => TrunkPack-260RT-IPMedia-60Ch 62 | * 41 => TrunkPack-260RT-IPMedia-120Ch 63 | * 42 => TrunkPack-260 64 | * 43 => TrunkPack-260-UN 65 | * 44 => TPM1100-PCM 66 | * 45 => TrunkPack-6310 67 | * 46 => TPM6300 68 | * 47 => Mediant1000 69 | * 48 => IPMedia3000 70 | * 49 => Mediant3000 71 | * 50 => Stretto3000 72 | * 51 => TrunkPack-6310-IPMedia 73 | * 52 => TrunkPack-6310-SB 74 | * 53 => ATP-1610 75 | * 54 => ATP-260 76 | * 55 => ATP-260-UN 77 | * 56 => MediaPack-118 78 | * 57 => MediaPack-114 79 | * 58 => MediaPack-112 80 | * 59 => TrunkPack-6310-T3 81 | * 60 => Mediant3000-T3 82 | * 61 => IPMedia3000-T3 83 | * 62 => TrunkPack-6310-T3-IPMedia 84 | * 63 => TrunkPack-8410 85 | * 64 => TrunkPack-8410-IPMedia 86 | * 65 => Mediant600 87 | * 66 => TrunkPack-12610 88 | * 67 => Mediant1000-MSBG 89 | * 68 => Mediant600-MSBG 90 | * 69 => Mediant800-MSBG 91 | * 71 => Mediant1000-ESBC 92 | * 72 => Mediant800-ESBC 93 | 4. Import **zbx-audiocodes-interfaces.xml** file into Zabbix. 94 | 5. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 95 | 6. Associate **ZBX-AUDIOCODES-INTERFACES** template to the host. 96 | 97 | ### Requirements 98 | 99 | This template was tested for Zabbix 2.0.0 and higher. 100 | 101 | ###### [if.speed](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.speed) 1.0 102 | 103 | This script quey the speed of an interface using the ifSpeed and ifHighSpeed OID and return the right speed value for an interface. 104 | 105 | License 106 | ------- 107 | 108 | This template is distributed 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. 109 | 110 | ### Copyright 111 | 112 | Copyright (c) Jean-Jacques Martrès 113 | 114 | ### Authors 115 | 116 | Jean-Jacques Martrès 117 | (jjmartres |at| gmail |dot| com) 118 | -------------------------------------------------------------------------------- /zbx-templates/zbx-brocade/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-TEMPLATES 2 | =================== 3 | 4 | A collection of Zabbix templates to manage Brocade Fiberchannel devices. 5 | 6 | Templates 7 | --------- 8 | 9 | * [ZBX-BROCADE-FC-ENVMON](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-brocade/zbx-brocade-fc-envmon) => use the SW-MIB and MIB-2 to discover and manage environmental. 10 | * [ZBX-BROCADE-FC-PORT](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-brocade/zbx-brocade-fc-port) => use the SW-MIB and IF-MIB to discover and manage FC ports. 11 | 12 | Requirements 13 | ------------ 14 | 15 | All this templates was tested for Zabbix 2.0.0 and higher. Please see individual template for requirements. 16 | 17 | License 18 | ------- 19 | 20 | This template is distributed 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. 21 | 22 | ### Copyright 23 | 24 | Copyright (c) Jean-Jacques Martrès 25 | 26 | ### Authors 27 | 28 | Jean-Jacques Martrès 29 | (jjmartres |at| gmail |dot| com) 30 | -------------------------------------------------------------------------------- /zbx-templates/zbx-brocade/zbx-brocade-fc-envmon/README.md: -------------------------------------------------------------------------------- 1 | ZBX-BROCADE-FC-ENVMON 2 | ===================== 3 | 4 | This template use the SW-MIB and MIB-2 to discover and manage environmental of Brocade FC devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Contact (Populates host inventory field **Contact**) 10 | * Device Location (Populates host inventory field **Location**) 11 | * Device Manufacturer Name (Populates host inventory field **Tag**) 12 | * Device Mode Name (Populates host inventory field **Type**) 13 | * Device Name (Populates host inventory field **Name**) 14 | * Device reachability using ICMP 15 | * Device Serial Number (Populates host inventory field **Serial Number A**) 16 | * Fibre Channel domain ID 17 | * Fibre Channel logical switch ID 18 | * Fibre Channel management address 19 | * Fibre Channel principal switch indicator 20 | * FOS version (Populates host inventory field **OS**) 21 | * Uptime 22 | * Discovery: each fan state 23 | * Discovery: each fan speed 24 | * Discovery: each power supply state 25 | * Discovery: each temperature sensor state 26 | * Discovery: each temperature sensor value 27 | 28 | Triggers 29 | -------- 30 | 31 | * **[DISASTER]** => Device is UNREACHABLE or DOWN 32 | * **[HIGH]** => Device as just been restarted 33 | * **[HIGH]** => Discovery: each fan, operational status is NOT NORMAL 34 | * **[HIGH]** => Discovery: each power supply, operational status is NOT NORMAL 35 | * **[HIGH]** => Discovery: each temperature sensor, operational status is NOT NORMAL 36 | * **[INFORMATION]** => FOS version on device was changed 37 | * **[INFORMATION]** => Hostname was changed on device 38 | * **[INFORMATION]** => Discovery: each fan, operational status was changed 39 | * **[INFORMATION]** => Discovery: each power supply, operational status was changed 40 | * **[INFORMATION]** => Discovery: each temperature sensor, operational status was changed 41 | 42 | Graphs 43 | ------ 44 | 45 | Installation 46 | ------------ 47 | 48 | 1. Install [`echo.something`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 49 | 2. Then `chmod a+x echo.something` 50 | 3. Add a value mapping named `swFcBoolean` with the following values: 51 | * 1 => yes 52 | * 2 => no 53 | 4. Add a value mapping named `swFcSensorStatus` with the following values: 54 | * 1 => unknown 55 | * 2 => faulty 56 | * 3 => below-mini 57 | * 4 => nominal 58 | * 5 => above-max 59 | * 6 => absent 60 | 5. Import **zbx-brocade-fc-envmon.xml** file into Zabbix. 61 | 6. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 62 | 7. Configure **Host Inventory** to `Automatic` for your host. 63 | 8. Associate **ZBX-BROCADE-FC-ENVMON** template to the host. 64 | 65 | ### Requirements 66 | 67 | This template was tested for Zabbix 2.0.0 and higher. 68 | 69 | ###### [echo.something](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) 1.0 70 | 71 | This template use this script to echo "Cisco Systems" as Device Manufacturer Name for **Host Inventory**. 72 | 73 | License 74 | ------- 75 | 76 | This template is distributed 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. 77 | 78 | ### Copyright 79 | 80 | Copyright (c) Jean-Jacques Martrès 81 | 82 | ### Authors 83 | 84 | Jean-Jacques Martrès 85 | (jjmartres |at| gmail |dot| com) 86 | -------------------------------------------------------------------------------- /zbx-templates/zbx-brocade/zbx-brocade-fc-port/README.md: -------------------------------------------------------------------------------- 1 | ZBX-BROCADE-FC-PORT 2 | =================== 3 | 4 | This template use the SW-MIB and IF-MIB to discover and manage FC ports. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: administrative status for each port 10 | * Discovery: operational status for earch port 11 | * Discovery: speed for each port 12 | * Discovery: description for each port 13 | * Discovery: WWN for each port 14 | * Discovery: transmitter type for each port 15 | * Discovery: incoming traffic on each port 16 | * Discovery: outgoing traffic on each port 17 | * Discovery: words received on each port 18 | * Discovery: words transmitted on each port 19 | * Discovery: frames received on each port 20 | * Discovery: frames transmitted on each port 21 | * Discovery: class2 frames received on each port 22 | * Discovery: class3 frames received on each port 23 | * Discovery: multicast frames received on each port 24 | * Discovery: multicast frames transmitted on each port 25 | * Discovery: CRC errors received on each port 26 | * Discovery: disparity errors received on each port 27 | * Discovery: encoding and disparity errors in frames received on each port 28 | * Discovery: truncated frames received on each port 29 | * Discovery: truncated too-long frames received on each port 30 | * Discovery: bad EOF delimited frames received on each port 31 | 32 | Triggers 33 | -------- 34 | 35 | * **[HIGH]** => Discovery: error(s) was detected on each port 36 | * **[AVERAGE]** => Discovery: operational status was changed on each port 37 | 38 | Graphs 39 | ------ 40 | 41 | * Discovery: monitor (FC counters) on each port 42 | * Discovery: traffic on each port 43 | 44 | Installation 45 | ------------ 46 | 47 | 1. Add a value mapping named `swFcPortStatus` with the following values: 48 | * 0 => unknown 49 | * 1 => online 50 | * 2 => offline 51 | * 3 => testing 52 | * 4 => faulty 53 | 2. Add a value mapping named `swFcPortSpeed` with the following values: 54 | * 1 => 1 Gb 55 | * 2 => 2 Gb 56 | * 3 => Auto-Negotiate 57 | * 4 => 4 Gb 58 | * 5 => 8 Gb 59 | * 6 => 10 Gb 60 | * 7 => unknown 61 | 3. Add a value mapping named `swFcPortTXType`with the following values: 62 | * 1 => unknown 63 | * 2 => long wave laser 64 | * 3 => short wave laser 65 | * 4 => long wave LED 66 | * 5 => copper (electrical) 67 | 4. Install [`advsnmp.discovery`](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 68 | 5. Then `chmod a+x advsnmp.discovery` 69 | 6. Import **zbx-brocade-fc-port.xml** file into Zabbix. 70 | 7. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 71 | 8. Associate **ZBX-BROCADE-FC-PORT** template to the host. 72 | 73 | ### Requirements 74 | 75 | This template was tested for Zabbix 2.0.0 and higher. 76 | 77 | ###### [advsnmp.discovery](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) 2.0 78 | 79 | This template use this script as an alternative to the build-in SNMP low level discovery of Zabbix. 80 | 81 | License 82 | ------- 83 | 84 | This template is distributed 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. 85 | 86 | ### Copyright 87 | 88 | Copyright (c) Jean-Jacques Martrès 89 | 90 | ### Authors 91 | 92 | Jean-Jacques Martrès 93 | (jjmartres |at| gmail |dot| com) 94 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-TEMPLATES 2 | =================== 3 | 4 | A collection of Zabbix templates to manage Cisco devices. 5 | 6 | Templates 7 | --------- 8 | 9 | * [ZBX-CISCO-BGP4](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-cisco/zbx-cisco-bgp4) => use the BGP4-MIB to discover and manage both IPv4 and VPNv4 neighbors. 10 | * [ZBX-CISCO-CDP](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-cisco/zbx-cisco-cdp) => use the CISCO-CDP-MIB to discover and manage CDP neighbors. 11 | * [ZBX-CISCO-ENVMON](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-cisco/zbx-cisco-envmon) => use the ENTITY-MIB and CISCO-ENVMON-MIB to discover and manage environmental. 12 | * [ZBX-CISCO-HARDWARE](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-cisco/zbx-cisco-hardware) => use the ENTITY-MIB to discover and manage physical entity. 13 | * [ZBX-CISCO-HSRP](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-cisco/zbx-cisco-hsrp) => use the CISCO-HSRP-MIB to discover and manage HSRP groups. 14 | * [ZBX-CISCO-INTERFACES](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-cisco/zbx-cisco-interfaces) => use the IF-MIB and CISCO-UDLDP-MIB to discover and manage interfaces. 15 | * [ZBX-CISCO-MPLS](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-cisco/zbx-cisco-mpls) => use the CISCO-LDP-MIB to discover and manage LDP neighbors. 16 | * [ZBX-CISCO-OPTICAL-MONITORING](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-cisco/zbx-cisco-optical-monitoring) => use the CISCO-ENTITY-SENSOR-MIB to discover and manage DOM optical sensors. 17 | * [ZBX-CISCO-VPDN](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-cisco/zbx-cisco-vpdn) => use the CISCO-VPDN-MGMT-MIB to discover and manage Virtual Private Dialup Network. 18 | * [ZBX-CISCO-xDSL](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-cisco/zbx-cisco-xdsl) => use the ADSL-LINE-MIB and HDSL2-SHDSL-LINE-MIB to discover and manage ADSL and/or HDSL2/SHDSL controllers. 19 | * [ZBX-CISCO-PSEUDOWIRE](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-cisco/zbx-cisco-pseudowire) => use the CISCO-IETF-PW-MIB to discover and manage pseudowire connections. 20 | 21 | Requirements 22 | ------------ 23 | 24 | All this templates was tested for Zabbix 2.0.0 and higher. Please see individual template for requirements. 25 | 26 | License 27 | ------- 28 | 29 | This template is distributed 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. 30 | 31 | ### Copyright 32 | 33 | Copyright (c) Jean-Jacques Martrès 34 | 35 | ### Authors 36 | 37 | Jean-Jacques Martrès 38 | (jjmartres |at| gmail |dot| com) 39 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/zbx-cisco-bgp4/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-BGP4 2 | ============== 3 | 4 | This template use the BGP4-MIB to discover and manage both IPv4 and VPNv4 neighbors on Cisco devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: administrative status of a peer 10 | * Discovery: operational status of a peer 11 | * Discovery: established time for a peer 12 | * Discovery: remote AS for a peer 13 | * Discovery: accepted prefixes for IPv4 and/or VPNv4 peers 14 | * Discovery: advertised prefixes for IPv4 and/or VPNv4 peers 15 | * Discovery: denied prefixes for IPv4 and/or VPNv4 peers 16 | * Discovery: prefixes limit for IPv4 and/or VPNv4 peers 17 | * Discovery: suppressed prefixes for IPv4 and/or VPNv4 peers 18 | 19 | Triggers 20 | -------- 21 | 22 | * **[DISASTER]** => Discovery: BGP peer that remote AS match {$BGP_PEER_AS} macro is down 23 | * **[AVERAGE]** => Discovery: BGP peer that remote AS didn't match {$BGP_PEER_AS} macro is down 24 | * **[AVERAGE]** => Discovery: accepted prefixes for IPv4 as reached the maximum limit 25 | * **[AVERAGE]** => Discovery: accepted prefixes for VPNv4 as reached the maximum limit 26 | * **[AVERAGE]** => Discovery: IPv4 BGP peer has lost more than 20% of prefixes 27 | * **[AVERAGE]** => Discovery: VPNv4 BGP peer has lost more than 20% of prefixes 28 | * **[INFORMATION]** => Discovery: no prefixes receive for IPv4 peer 29 | * **[INFORMATION]** => Discovery: no prefixes receive for VPNv4 peer 30 | 31 | Graphs 32 | ------ 33 | 34 | * Discovery: BGP informations for IPv4 peer 35 | * Discovery: BGP informations for VPNv4 peer 36 | 37 | Installation 38 | ------------ 39 | 40 | 1. Add a value mapping named `ciscoBgpPeerAdminStatus` with the following values: 41 | * 1 => stop 42 | * 2 => start 43 | 2. Add a value mapping named `ciscoBgpPeerState` with the following values: 44 | * 1 => idle 45 | * 2 => connect 46 | * 3 => active 47 | * 4 => opensent 48 | * 5 => openconfirm 49 | * 6 => established 50 | 3. Install [`as.name`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/as.name) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 51 | 4. Then `chmod a+x as.name` 52 | 5. Import **zbx-cisco-bgp4.xml** file into Zabbix. 53 | 6. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 54 | 7. Add to your host the **{$BGP_PEER_AS}** macro with your list BGP peer remote AS as value (ex: ASN1|ASN2|ASN3) 55 | 8. Associate **ZBX-CISCO-BGP4** template to the host. 56 | 57 | ### Requirements 58 | 59 | This template was tested for Zabbix 2.0.0 and higher.There are no additional requirements. 60 | 61 | License 62 | ------- 63 | 64 | This template is distributed 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. 65 | 66 | ### Copyright 67 | 68 | Copyright (c) Jean-Jacques Martrès 69 | 70 | ### Authors 71 | 72 | Jean-Jacques Martrès 73 | (jjmartres |at| gmail |dot| com) 74 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/zbx-cisco-cdp/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-CDP 2 | ============== 3 | 4 | This template use the CISCO-CDP-MIB to discover and manage CDP neighbors on Cisco devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: CDP neighbor on each interface 10 | * Discovery: CDP neighbor platform on each interface 11 | 12 | Triggers 13 | -------- 14 | 15 | * **[INFORMATION]** => Discovery: CDP neighbor on a particular interface was changed. 16 | 17 | Installation 18 | ------------ 19 | 20 | 1. Install [`advsnmp.discovery`](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 21 | 2. Then `chmod a+x advsnmp.discovery` 22 | 4. Import **zbx-cisco-cdp.xml** file into Zabbix. 23 | 5. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 24 | 6. Associate **ZBX-CISCO-CDP** template to the host. 25 | 26 | ### Requirements 27 | 28 | This template was tested for Zabbix 2.0.0 or higher. 29 | 30 | ###### [advsnmp.discovery](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) 2.0 31 | 32 | This template use this script as an alternative to the build-in SNMP low level discovery of Zabbix. 33 | 34 | License 35 | ------- 36 | 37 | This template is distributed 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. 38 | 39 | ### Copyright 40 | 41 | Copyright (c) Jean-Jacques Martrès 42 | 43 | ### Authors 44 | 45 | Jean-Jacques Martrès 46 | (jjmartres |at| gmail |dot| com) 47 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/zbx-cisco-envmon/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-ENVMON 2 | ================ 3 | 4 | This template use the ENTITY-MIB and CISCO-ENVMON-MIB to discover and manage environmental of Cisco devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Contact (Populates host inventory field **Contact**) 10 | * Device Location (Populates host inventory field **Location**) 11 | * Device Manufacturer Name (Populates host inventory field **Tag**) 12 | * Device Name (Populates host inventory field **Name**) 13 | * Device reachability using ICMP 14 | * Device packet loss 15 | * Device Serail Number (Populates host inventory field **Serial Number A**) 16 | * IOS Version (Populates host inventory field **OS**) 17 | * IOS Version (full) (Populates host inventory field **OS (Full details)**) 18 | * Unused memory for the last 5 minutes 19 | * Uptime 20 | * Used CPU for the last 5 minutes 21 | * Used memory for the last 5 minutes 22 | * Discovery: each fan state 23 | * Discovery: each power supply name 24 | * Discovery: each power supply state 25 | * Discovery: each temperature sensor name 26 | * Discovery: each temperature sensor state 27 | * Discovery: each temperature sensor value 28 | 29 | Triggers 30 | -------- 31 | 32 | * **[DISASTER]** => Device is UNREACHABLE or DOWN 33 | * **[DISASTER]** => Discovery: each fan, operational status is FAILED 34 | * **[DISASTER]** => Discovery: each power supply, operational status is FAILED 35 | * **[DISASTER]** => Discovery: each temperature sensor, operational status is FAILED 36 | * **[HIGH]** => Device as just been restarted 37 | * **[HIGH]** => Memory usage on device exceeded 80% 38 | * **[HIGH]** => CPU usage on device exceeded 80% 39 | * **[HIGH]** => Discovery: each fan, operational status is CRITICAL 40 | * **[HIGH]** => Discovery: each power supply, operational status is CRITICAL 41 | * **[HIGH]** => Discovery: each temperature sensor, operational status is CRITICAL 42 | * **[AVERAGE]** => Memory usage on device exceeded 70% 43 | * **[AVERAGE]** => CPU usage on device exceeded 60% 44 | * **[AVERAGE]** => Device packet loss detected 45 | * **[WARNING]** => Memory usage on device exceeded 60% 46 | * **[WARNING]** => CPU usage on device exceeded 50% 47 | * **[WARNING]** => Discovery: each fan, operational status is WARNING 48 | * **[WARNING]** => Discovery: each power supply, operational status is WARNING 49 | * **[WARNING]** => Discovery: each temperature sensor, operational status is WARNING 50 | * **[INFORMATION]** => IOS version on device was changed 51 | * **[INFORMATION]** => Hostname was changed on device 52 | * **[INFORMATION]** => Discovery: each fan, operational status was changed 53 | * **[INFORMATION]** => Discovery: each power supply, operational status was changed 54 | * **[INFORMATION]** => Discovery: each temperature sensor, operational status was changed 55 | 56 | Graphs 57 | ------ 58 | 59 | * CPU usage 60 | * Memory usage 61 | * Discovery: Value (°C) of temperature sensor 62 | 63 | Installation 64 | ------------ 65 | 66 | 1. Install [`echo.something`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 67 | 2. Then `chmod a+x echo.something` 68 | 3. Add a value mapping named `ciscoEnvMonState` with the following values: 69 | * 1 => normal 70 | * 2 => warning 71 | * 3 => critical 72 | * 4 => shutdown 73 | * 5 => notPresent 74 | * 6 => notFunctioning 75 | 4. Import **zbx-cisco-envmon.xml** file into Zabbix. 76 | 5. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 77 | 6. Configure **Host Inventory** to `Automatic` for your host. 78 | 7. Associate **ZBX-CISCO-ENVMON** template to the host. 79 | 80 | ### Requirements 81 | 82 | This template was tested for Zabbix 2.0.0 and higher. 83 | 84 | ###### [echo.something](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) 1.0 85 | 86 | This template use this script to echo "Cisco Systems" as Device Manufacturer Name for **Host Inventory**. 87 | 88 | License 89 | ------- 90 | 91 | This template is distributed 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. 92 | 93 | ### Copyright 94 | 95 | Copyright (c) Jean-Jacques Martrès 96 | 97 | ### Authors 98 | 99 | Jean-Jacques Martrès 100 | (jjmartres |at| gmail |dot| com) 101 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/zbx-cisco-hardware/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-HARDWARE 2 | ================== 3 | 4 | This template use the ENTITY-MIB to discover and manage physical entity of Cisco devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: firmware revision for each physical entity 10 | * Discovery: hardware revision for each physical entity 11 | * Discovery: serial number for each physical entity 12 | * Discovery: software version for each physical entity 13 | 14 | Triggers 15 | -------- 16 | 17 | * **[INFORMATION]** => Discovery: serial number was changed for each physical entity 18 | 19 | Installation 20 | ------------ 21 | 22 | 1. Import **zbx-cisco-hardware.xml** file into Zabbix. 23 | 2. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 24 | 3. Associate **ZBX-CISCO-HARDWARE** template to the host. 25 | 26 | ### Requirements 27 | 28 | This template was tested for Zabbix 2.0.0 and higher.There are no additional requirements. 29 | 30 | License 31 | ------- 32 | 33 | This template is distributed 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. 34 | 35 | ### Copyright 36 | 37 | Copyright (c) Jean-Jacques Martrès 38 | 39 | ### Authors 40 | 41 | Jean-Jacques Martrès 42 | (jjmartres |at| gmail |dot| com) 43 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/zbx-cisco-hsrp/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-HSRP 2 | ============== 3 | 4 | This template use the CISCO-HSRP-MIB to discover and manage HSRP groups on Cisco devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: active IP address of each HSRP group 10 | * Discovery: standby IP address of each HSRP group 11 | * Discovery: state of each HSRP group 12 | * Discovery: virtual IP address of each HSRP group 13 | 14 | Triggers 15 | -------- 16 | 17 | * **[WARNING]** => Discovery: unexpected state change for each HSRP group 18 | 19 | Installation 20 | ------------ 21 | 22 | 1. Install [advsnmp.discovery](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 23 | 2. Then `chmod a+x advsnmp.discovery` 24 | 3. Add a value mapping named `ciscoHsrpGrpStandbyState` with the following values: 25 | * 1 => initial 26 | * 2 => learn 27 | * 3 => listen 28 | * 4 => speak 29 | * 5 => standby 30 | * 6 => active 31 | 4. Import **zbx-cisco-hsrp.xml** file into Zabbix. 32 | 5. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 33 | 6. Associate **ZBX-CISCO-HSRP** template to the host. 34 | 35 | ### Requirements 36 | 37 | This template was tested for Zabbix 2.0.0 or higher. 38 | 39 | ###### [advsnmp.discovery](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) 2.0 40 | 41 | This template use this script as an alternative to the build-in SNMP low level discovery of Zabbix. 42 | 43 | License 44 | ------- 45 | 46 | This template is distributed 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. 47 | 48 | ### Copyright 49 | 50 | Copyright (c) Jean-Jacques Martrès 51 | 52 | ### Authors 53 | 54 | Jean-Jacques Martrès 55 | (jjmartres |at| gmail |dot| com) 56 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/zbx-cisco-interfaces/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-INTERFACES 2 | ==================== 3 | 4 | This template use the IF-MIB and CISCO-UDLDP-MIB to discover and manage interfaces of Cisco devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: administrative status for each interface 10 | * Discovery: operational status for earch interface 11 | * Discovery: speed for each interface 12 | * Discovery: description for each interface 13 | * Discovery: alias for each interface 14 | * Discovery: UDLD configuration for each interface 15 | * Discovery: UDLD link status for each interface 16 | * Discovery: incoming traffic on each interface (64Bits counters used) 17 | * Discovery: outgoing traffic on each interface (64Bits counters used) 18 | * Discovery: inbound errors on each interface 19 | * Discovery: outbound errors on each interface 20 | * Discovery: incoming discarded packets on each interface 21 | * Discovery: outgoing discarded packets on each interface 22 | * Discovery: collisions on each interface 23 | * Discovery: CRC packets on each interface 24 | * Discovery: giants packets on each interface 25 | * Discovery: ignored packets on each interface 26 | * Discovery: misaligned packets on each interface 27 | * Discovery: overruns packets on each interface 28 | * Discovery: runts packets on each interface 29 | * Discovery: the length of the output packet queue for each interface 30 | 31 | Triggers 32 | -------- 33 | 34 | * **[DISASTER]** => Discovery: operational status was changed for an interface where ifAlias match user macro {$INTF_REGEX} 35 | * **[HIGH]** => Discovery: an UDLD link has been detected on an interface 36 | * **[WARNING]** => Discovery: incoming use on an interface exceed 80% for the last 5 minutes 37 | * **[WARNING]** => Discovery: outgoing use on an interface exceed 80% for the last 5 minutes 38 | * **[INFORMATION]** => Discovery: operational status was changed for an interface where ifAlias didn't match user macro {$INTF_REGEX} 39 | * **[INFORMATION]** => Discovery: unable to determine UDLD status for an interface 40 | * **[INFORMATION]** => Discovery: UDLD configuration was changed for an interface 41 | * **[INFORMATION]** => Discovery: the length of the output packet queue is not empty on each interface 42 | 43 | Graphs 44 | ------ 45 | 46 | * Discovery: traffic (bits/sec, 95th Percentile) for an interface 47 | * Discovery: errors on an interface 48 | * Discovery: length of the output packets queue for an interface 49 | 50 | Installation 51 | ------------ 52 | 53 | 1. Install [`if.speed`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.speed) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 54 | 2. Then `chmod a+x if.speed` 55 | 3. Add a value mapping named `ciscoCudldpInterfaceOperStatus` with the following values: 56 | * 1 => shutdwon 57 | * 2 => indeterminant 58 | * 3 => biDirectional 59 | * 4 => notApplicable 60 | 4. Add a value mapping named `ciscoCudldpInterfaceOperMode` with the following values: 61 | * 1 => enable 62 | * 2 => disable 63 | * 3 => aggressive 64 | 4. Import **zbx-cisco-interfaces.xml** file into Zabbix. 65 | 5. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 66 | 6. Add to your host the **{$INTF_REGEX}** macro with your regular expression as value (ex: -p-|-P-|-pe-|-PE-) 67 | 7. Associate **ZBX-CISCO-INTERFACES** template to the host. 68 | 69 | ### Requirements 70 | 71 | This template was tested for Zabbix 2.0.0 and higher. 72 | 73 | ###### [if.speed](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.speed) 1.0 74 | 75 | This script quey the speed of an interface using the ifSpeed and ifHighSpeed OID and return the right speed value for an interface. 76 | 77 | License 78 | ------- 79 | 80 | This template is distributed 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. 81 | 82 | ### Copyright 83 | 84 | Copyright (c) Jean-Jacques Martrès 85 | 86 | ### Authors 87 | 88 | Jean-Jacques Martrès 89 | (jjmartres |at| gmail |dot| com) 90 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/zbx-cisco-mpls/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-MPLS 2 | ============== 3 | 4 | This template use the CISCO-LDP-MIB to discover and manage LDP neighbors on Cisco devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: MPLS LDP neighbor distribution method 10 | 11 | Installation 12 | ------------ 13 | 14 | 1. Install [`advsnmp.discovery`](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 15 | 2. Then `chmod a+x advsnmp.discovery` 16 | 4. Import **zbx-cisco-mpls.xml** file into Zabbix. 17 | 5. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 18 | 6. Associate **ZBX-CISCO-MPLS** template to the host. 19 | 20 | ### Requirements 21 | 22 | This template was tested for Zabbix 2.0.0 or higher. 23 | 24 | ###### [advsnmp.discovery](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) 2.0 25 | 26 | This template use this script as an alternative to the build-in SNMP low level discovery of Zabbix. 27 | 28 | License 29 | ------- 30 | 31 | This template is distributed 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. 32 | 33 | ### Copyright 34 | 35 | Copyright (c) Jean-Jacques Martrès 36 | 37 | ### Authors 38 | 39 | Jean-Jacques Martrès 40 | (jjmartres |at| gmail |dot| com) 41 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/zbx-cisco-mpls/zbx-cisco-mpls.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 2012-11-05T14:50:34Z 5 | 6 | 7 | ZBX-CISCO-TEMPLATES 8 | 9 | 10 | 11 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/zbx-cisco-optical-monitoring/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-OPTICAL-MONITORING 2 | ============================ 3 | 4 | This template use the CISCO-ENTITY-SENSOR-MIB to discover and manage DOM optical sensors. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: interface name with DOM optical transceiver sensor 10 | * Discovery: high alarm threshold for each sensor 11 | * Discovery: high warn threshold for each sensor 12 | * Discovery: low alarm threshold for each sensor 13 | * Discovery: low warn threshold for each sensor 14 | 15 | Triggers 16 | -------- 17 | 18 | * **[HIGH]** => Discovery: high signal alarm for each sensor 19 | * **[HIGH]** => Discovery: low signal alarm for each sensor 20 | * **[WARNING]** => Discovery: high signal warning for each sensor 21 | * **[WARNING]** => Discovery: low signal warning for each sensor 22 | 23 | Installation 24 | ------------ 25 | 26 | 1. Import **zbx-cisco-optical-monitoring.xml** file into Zabbix. 27 | 2. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 28 | 3. Associate **ZBX-CISCO-OPTICAL-MONITORING** template to the host. 29 | 30 | ### Requirements 31 | 32 | This template was tested for Zabbix 2.0.0 and higher.There are no additional requirements. 33 | 34 | License 35 | ------- 36 | 37 | This template is distributed 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. 38 | 39 | ### Copyright 40 | 41 | Copyright (c) Jean-Jacques Martrès 42 | 43 | ### Authors 44 | 45 | Jean-Jacques Martrès 46 | (jjmartres |at| gmail |dot| com) 47 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/zbx-cisco-pseudowire/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-PSEUDOWIRE 2 | ==================== 3 | 4 | This template use the CISCO-IETF-PW-MIB to discover and manage pseudowire connections on Cisco devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: administrative status for each VC 10 | * Discovery: associated physical interface for each VC 11 | * Discovery: local description for each VC 12 | * Discovery: operational status for each VC 13 | * Discovery: PSN type to carried each VC 14 | * Discovery: remote description for each VC 15 | * Discovery: service to be carried on each VC 16 | * Discovery: uptime for each VC 17 | * Discovery: label used in the inbound direction for each VC 18 | * Discovery: label used in the outbound direction for each VC 19 | 20 | Triggers 21 | -------- 22 | 23 | * **[WARNING]** => Discovery: VC is DOWN 24 | * **[INFORMATION]** => Discovery: operational status was changed for each VC 25 | 26 | Installation 27 | ------------ 28 | 29 | 1. Install [`echo.something`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 30 | 2. Then `chmod a+x echo.something` 31 | 3. Add a value mapping named `ciscoPwVcAdminStatus` with the following values: 32 | * 1 => up 33 | * 2 => down 34 | * 3 => testing 35 | 4. Add a value mapping named `ciscoPwOperStatus` with the following values: 36 | * 1 => up 37 | * 2 => down 38 | * 3 => testing 39 | * 4 => unknown 40 | * 5 => dormant 41 | * 6 => notPresent 42 | * 7 => lowerlayerDown 43 | 5. Add a value mapping named `ciscoPwVcType` with the following values: 44 | * 0 => other 45 | * 1 => frameRelay 46 | * 2 => atmAal5Vcc 47 | * 3 => atmTransparent 48 | * 4 => ethernetVLAN 49 | * 5 => ethernet 50 | * 6 => hdlc 51 | * 7 => ppp 52 | * 8 => cep 53 | * 9 => atmVccCell 54 | * 10 => atmVpcCell 55 | * 11 => ethernetVPLS 56 | * 12 => e1Satop 57 | * 13 => t1Satop 58 | * 14 => e3Satop 59 | * 15 => t3Satop 60 | * 16 => basicCesPsn 61 | * 17 => basicTdmIp 62 | * 18 => tdmCasCesPsn 63 | * 19 => tdmCasTdmIp 64 | 6. Add a value mapping named `ciscoPwVcPsnType` with the following values: 65 | * 1 => mpls 66 | * 2 => l2tp 67 | * 3 => ip 68 | * 4 => mplsOverIp 69 | * 5 => gre 70 | * 6 => other 71 | 7. Import **zbx-cisco-pseudowire.xml** file into Zabbix. 72 | 8. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 73 | 9. Associate **ZBX-CISCO-PSEUDOWIRE** template to the host. 74 | 75 | ### Requirements 76 | 77 | This template was tested for Zabbix 2.0.0 or higher. 78 | 79 | ###### [advsnmp.discovery](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) 2.0 80 | 81 | This template use this script as an alternative to the build-in SNMP low level discovery of Zabbix. 82 | 83 | License 84 | ------- 85 | 86 | This template is distributed 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. 87 | 88 | ### Copyright 89 | 90 | Copyright (c) Jean-Jacques Martrès 91 | 92 | ### Authors 93 | 94 | Jean-Jacques Martrès 95 | (jjmartres |at| gmail |dot| com) 96 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/zbx-cisco-vpdn/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-VPDN 2 | ============== 3 | 4 | This template use the CISCO-VPDN-MGMT-MIB to discover and manage Virtual Private Dialup Network. 5 | 6 | Items 7 | ----- 8 | 9 | * VPDN sessions inside L2TP tunnels 10 | * L2TP tunnels 11 | * SDSL links 12 | 13 | Triggers 14 | -------- 15 | 16 | * **[WARNING]** => lost of all l2TP tunnels 17 | * **[WARNING]** => lost of all VPDN tunnels 18 | 19 | Graphs 20 | ------ 21 | 22 | * VPDN sessions 23 | * L2TP tunnels 24 | * SDSL links 25 | 26 | Installation 27 | ------------ 28 | 29 | 1. Import **zbx-cisco-vpdn.xml** file into Zabbix. 30 | 2. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 31 | 3. Associate **ZBX-CISCO-VPDN** template to the host. 32 | 33 | ### Requirements 34 | 35 | This template was tested for Zabbix 2.0.0 and higher.There are no additional requirements. 36 | 37 | License 38 | ------- 39 | 40 | This template is distributed 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. 41 | 42 | ### Copyright 43 | 44 | Copyright (c) Jean-Jacques Martrès 45 | 46 | ### Authors 47 | 48 | Jean-Jacques Martrès 49 | (jjmartres |at| gmail |dot| com) 50 | -------------------------------------------------------------------------------- /zbx-templates/zbx-cisco/zbx-cisco-xdsl/README.md: -------------------------------------------------------------------------------- 1 | ZBX-CISCO-xDSL 2 | ============== 3 | 4 | This template use the ADSL-LINE-MIB and HDSL2-SHDSL-LINE-MIB to discover and manage ADSL and/or HDSL2/SHDSL controllers. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: ADSL line coding type 10 | * Discovery: ADSL line downstream attenuation 11 | * Discovery: ADSL line downstream number of Errored Seconds 12 | * Discovery: ADSL line downstream number of Loss of Framing 13 | * Discovery: ADSL line downstream number of Loss of Power failures 14 | * Discovery: ADSL line downstream number of Loss of Signal failures 15 | * Discovery: ADSL line downstream SNR 16 | * Discovery: ADSL line downstream speed 17 | * Discovery: ADSL line physical entity type 18 | * Discovery: ADSL line upstream attenuation 19 | * Discovery: ADSL line upstream number of Errored Seconds 20 | * Discovery: ADSL line upstream number of Loss of Framing 21 | * Discovery: ADSL line upstream number of Loss of Power failures 22 | * Discovery: ADSL line upstream number of Loss of Signal failures 23 | * Discovery: ADSL line upstream SNR 24 | * Discovery: ADSL line upstream speed 25 | * Discovery: SDSL line speed 26 | * Discovery: SDSL line attenuation on wire pair 1 27 | * Discovery: SDSL line attenuation on wire pair 2 28 | * Discovery: SDSL line attenuation on wire pair 3 29 | * Discovery: SDSL line attenuation on wire pair 4 30 | * Discovery: SDSL line CRC anomalies on wire pair 1 31 | * Discovery: SDSL line CRC anomalies on wire pair 2 32 | * Discovery: SDSL line CRC anomalies on wire pair 3 33 | * Discovery: SDSL line CRC anomalies on wire pair 4 34 | * Discovery: SDSL line Errored Seconds (ES) on wire pair 1 35 | * Discovery: SDSL line Errored Seconds (ES) on wire pair 2 36 | * Discovery: SDSL line Errored Seconds (ES) on wire pair 3 37 | * Discovery: SDSL line Errored Seconds (ES) on wire pair 4 38 | * Discovery: SDSL line Loss of Sync Word (LOSW) on wire pair 1 39 | * Discovery: SDSL line Loss of Sync Word (LOSW) on wire pair 2 40 | * Discovery: SDSL line Loss of Sync Word (LOSW) on wire pair 3 41 | * Discovery: SDSL line Loss of Sync Word (LOSW) on wire pair 4 42 | * Discovery: SDSL line SNR margin on wire pair 1 43 | * Discovery: SDSL line SNR margin on wire pair 2 44 | * Discovery: SDSL line SNR margin on wire pair 3 45 | * Discovery: SDSL line SNR margin on wire pair 4 46 | 47 | Triggers 48 | -------- 49 | 50 | * **[INFORMATION]** => Discovery: ADSL line attenuation has changed 51 | * **[INFORMATION]** => Discovery: ADSL line signal to noise ratio has changed 52 | * **[INFORMATION]** => Discovery: ADSL line speed has changed 53 | * **[INFORMATION]** => Discovery: SDSL line attenuation on wire pair 1 54 | * **[INFORMATION]** => Discovery: SDSL line attenuation on wire pair 2 55 | * **[INFORMATION]** => Discovery: SDSL line attenuation on wire pair 3 56 | * **[INFORMATION]** => Discovery: SDSL line attenuation on wire pair 4 57 | * **[INFORMATION]** => Discovery: SDSL line margin on wire pair 1 58 | * **[INFORMATION]** => Discovery: SDSL line margin on wire pair 2 59 | * **[INFORMATION]** => Discovery: SDSL line margin on wire pair 3 60 | * **[INFORMATION]** => Discovery: SDSL line margin on wire pair 4 61 | 62 | Graphs 63 | ------ 64 | 65 | * ADSL line attenuation 66 | * ADSL line SNR margin 67 | * ADSL line speed 68 | * SDSL line attenuation 69 | * SDSL line SNR margin 70 | * SDSL line speed 71 | 72 | Installation 73 | ------------ 74 | 75 | 1. Install [`advsnmp.discovery`](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 76 | 2. Then `chmod a+x advsnmp.discovery` 77 | 3. Add a value mapping named `ciscoAdslLineType` with the following values: 78 | * 1 => noChannel 79 | * 2 => fastOnly 80 | * 3 => interleavedOnly 81 | * 4 => fastOrInterleaved 82 | * 5 => fastAndInterleaved 83 | 4. Add a value mapping named `ciscoAdslLineConfig` with the following values: 84 | * 1 => other 85 | * 2 => dmt 86 | * 3 => cap 87 | * 4 => qam 88 | 5. Import **zbx-cisco-xdsl.xml** file into Zabbix. 89 | 6. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 90 | 7. Associate **ZBX-CISCO-xDSL** template to the host. 91 | 92 | ### Requirements 93 | 94 | This template was tested for Zabbix 2.0.0 or higher. 95 | 96 | ###### [advsnmp.discovery](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) 2.0 97 | 98 | This template use this script as an alternative to the build-in SNMP low level discovery of Zabbix. 99 | 100 | License 101 | ------- 102 | 103 | This template is distributed 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. 104 | 105 | ### Copyright 106 | 107 | Copyright (c) Jean-Jacques Martrès 108 | 109 | ### Authors 110 | 111 | Jean-Jacques Martrès 112 | (jjmartres |at| gmail |dot| com) 113 | -------------------------------------------------------------------------------- /zbx-templates/zbx-datacore/Get-DcsAlert.ps1: -------------------------------------------------------------------------------- 1 | # Script: Get-DcsAlert 2 | # Author: Jean-Jacques Martrès (jjmartres |at| gmail |dot| com) 3 | # Description: Query DataCore SANSymphony server to get alert messages. 4 | # License: GPL2 5 | # 6 | # This script is intended for use with Zabbix > 2.0 7 | # 8 | # RETURNED DATA: 9 | # 10 | # Id : DataCore.Executive.LogMessageId 11 | # TimeStamp : 8/8/2011 6:56:41 PM 12 | # MachineName : SSV1 13 | # Level : [Trace, Info, Warning, Error, Diagnostic] [Enum]::GetValues((Get-DcsAlert)[0].Level.GetType()) 14 | # Visibility : Customer 15 | # HighPriority : True 16 | # NeedsAcknowledge : False 17 | # MessageText : CHECK THE EVENT LOG! A WARNING MESSAGE HAS BEEN RECEIVED. [Triggered by One-Time Scheduler: 8/8/2011 18 | # 2 : 55:00 PM on 8/8/2011 2:55:00 PM] 19 | # MessageData : 20 | # UserId : 21 | # UserName : 22 | # Caller : MessageAction.DoRun 23 | # Sources : {f9b6dcc0-5c79-42be-ba39-6d44884cb08c} 24 | # 25 | # USAGE: 26 | # as a script: C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -command "& C:\Progra~1\Zabbix\scripts\Get-DcsAlert.ps1 " 27 | # as an item: DcsAlert[,,,] 28 | # 29 | # Add to Zabbix Agent 30 | # UserParameter=DcsAlert[*],powershell.exe -nologo -command "& C:\Progra~1\Zabbix\scripts\Get-DcsServer.ps1 $1 $2 $3 $4" 31 | # 32 | $version = "1.0.0" 33 | 34 | # Load SANsymphony-V Cmdlets 35 | $bpKey = 'BaseProductKey' 36 | $regKey = Get-Item "HKLM:\Software\DataCore\Executive" 37 | $strProductKey = $regKey.getValue($bpKey) 38 | $regKey = Get-Item "HKLM:\$strProductKey" 39 | $installPath = $regKey.getValue('InstallPath') 40 | 41 | Import-Module "$installPath\DataCore.Executive.Cmdlets.dll" -DisableNameChecking -ErrorAction Stop 42 | 43 | $DCS = [string]$args[0] 44 | $DCS_USERNAME = [string]$args[1] 45 | $DCS_PASSWORD = [string]$args[2] 46 | $LEVEL = [string]$args[3] 47 | 48 | # Connect to DCS Server 49 | Connect-DcsServer -server $DCS -username $DCS_USERNAME -password $DCS_PASSWORD | Out-Null 50 | $connection = Get-DcsConnection 51 | $dcsserver = Get-DcsServer -Connection $connection | Where-Object {$_.IpAddresses -like "*$connection*"} 52 | if ( $connection ) { 53 | # Query the DCS Server 54 | $query = Get-DcsAlert -Connection $connection | Where-Object {$_.Level -like "*$LEVEL*"} | Measure-Object 55 | $query.count 56 | Disconnect-DcsServer -connection $connection | Out-Null 57 | } else { 58 | Write-Host "-- ERROR -- : Connection error to <$DCS> !" 59 | } 60 | -------------------------------------------------------------------------------- /zbx-templates/zbx-datacore/zbx-dcs.conf: -------------------------------------------------------------------------------- 1 | # DataCore SanSymphony-V Zabbix support file 2 | UserParameter=DcsServer[*],powershell.exe -nologo -command "& C:\Zabbix\Get-DcsServer.ps1 $1 $2 $3 $4" 3 | UserParameter=DcsAlert[*],powershell.exe -nologo -command "& C:\Zabbix\Get-DcsAlert.ps1 $1 $2 $3 $4" 4 | UserParameter=DcsPoolDisk[*],powershell.exe -nologo -command "& C:\Zabbix\Get-DcsPoolDisk.ps1 $1 $2 $3 $4 $5" 5 | UserParameter=DcsPhysicalDisk[*],powershell.exe -nologo -command "& C:\Zabbix\Get-DcsPhysicalDisk.ps1 $1 $2 $3 $4 $5" 6 | UserParameter=DcsVirtualDisk[*],powershell.exe -nologo -command "& C:\Zabbix\Get-DcsVirtualDisk.ps1 $1 $2 $3 $4 $5" 7 | UserParameter=DcsPort[*],powershell.exe -nologo -command "& C:\Zabbix\Get-DcsPort.ps1 $1 $2 $3 $4 $5" 8 | -------------------------------------------------------------------------------- /zbx-templates/zbx-dell-compellent/README.md: -------------------------------------------------------------------------------- 1 | ZBX-DELL-COMPELLENT 2 | =================== 3 | 4 | This template use the COMPELLENT-MIB to discover and manage COMPELLENT Storage Array. 5 | 6 | Items 7 | ----- 8 | 9 | * Contact (Populates host inventory field **Contact**) 10 | * Device location (Populates host inventory field **Location**) 11 | * Device manufacturer name (Populates host inventory field **Tag**) 12 | * Device name (Populates host inventory field **Name**) 13 | * Device model name (Populates host inventory field **Type**) 14 | * Device serial number (Populates host inventory field **Serial Number A**) 15 | * Device software version (Populates host inventory field **OS**) 16 | * Device management URL (Populates host inventory field **URL A**) 17 | * Device global status 18 | * Device reachability using ICMP 19 | * Device packet loss 20 | * Uptime 21 | * Discovery: status for each controller 22 | * Discovery: Id for each controller 23 | * Discovery: IP address for each controller 24 | * Discovery: status for each disk 25 | * Discovery: status message for each disk 26 | * Discovery: position for each disk 27 | * Discovery: status for each enclosure 28 | * Discovery: status for each volume 29 | * Discovery: status for each server 30 | * Discovery: connectivity for each server 31 | * Discovery: number of path(s) for each server 32 | 33 | Triggers 34 | -------- 35 | 36 | * **[DISASTER]** => Storage Center is UNREACHABLE or DOWN 37 | * **[DISASTER]** => Global status of Storage Center is nonrecoverable 38 | * **[DISASTER]** => Discovery: controller is down 39 | * **[DISASTER]** => Discovery: disk is down 40 | * **[DISASTER]** => Discovery: enclosure is down 41 | * **[DISASTER]** => Discovery: server is down 42 | * **[DISASTER]** => Discovery: connectivity of server is down 43 | * **[DISASTER]** => Discovery: volume is down 44 | * **[HIGH]** => Storage Center has just been restarted 45 | * **[HIGH]** => Global status of Storage Center is critical 46 | * **[HIGH]** => Discovery: server has lost path(s) 47 | * **[AVERAGE]** => Packet loss detected on Storage Center 48 | * **[AVERAGE]** => Global status of Storage Center is abnormal 49 | * **[AVERAGE]** => Discovery: controller is degraded 50 | * **[AVERAGE]** => Discovery: disk is degraded 51 | * **[AVERAGE]** => Discovery: enclosure is degraded 52 | * **[AVERAGE]** => Discovery: volume is degraded 53 | * **[AVERAGE]** => Discovery: server is degraded 54 | * **[AVERAGE]** => Discovery: connectivity of server is partial 55 | * **[WARNING]** => Global status of Storage Center is noncritical 56 | * **[INFORMATION]** => Hostname was changed on Storage Center 57 | 58 | Installation 59 | ------------ 60 | 61 | 1. Install [`echo.something`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 62 | 2. Then `chmod a+x echo.something` 63 | 3. Add a value mapping named `scItemStatus` with the following values: 64 | * 1 => Up 65 | * 2 => Down 66 | * 3 => Degraded 67 | 3. Add a value mapping named `scProductIDGlobalStatus` with the following values: 68 | * 1 => Other 69 | * 2 => Unknown 70 | * 3 => Ok 71 | * 4 => Noncritical 72 | * 5 => Critical 73 | * 6 => Nonrecoverable 74 | 4. Add a value mapping named `scServerCnctvy` with the following values: 75 | * 1 => Up 76 | * 2 => Down 77 | * 3 =>Partial 78 | 5. Import **zbx-dell-compellent.xml** file into Zabbix. 79 | 6. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 80 | 7. Configure **Host Inventory** to `Automatic` for your host. 81 | 8. Associate **ZBX-DELL-COMPELLENT** template to the host. 82 | 83 | ### Requirements 84 | 85 | This template was tested for Zabbix 2.0.0 and higher. 86 | This template was tested for Compellent Storage Center version 6.3.10.106 and higher. 87 | 88 | ###### [echo.something](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) 1.0 89 | 90 | This template use this script to echo "Dell-Compellent Technologies" as Device Manufacturer Name for **Host Inventory**. 91 | 92 | License 93 | ------- 94 | 95 | This template is distributed 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. 96 | 97 | ### Copyright 98 | 99 | Copyright (c) Jean-Jacques Martrès 100 | 101 | ### Authors 102 | 103 | Jean-Jacques Martrès 104 | (jjmartres |at| gmail |dot| com) 105 | -------------------------------------------------------------------------------- /zbx-templates/zbx-dell-powerconnect/README.md: -------------------------------------------------------------------------------- 1 | ZBX-DELL-POWERCONNECT-TEMPLATES 2 | =============================== 3 | 4 | A collection of Zabbix templates to manage Dell Powerconnect devices. 5 | 6 | Templates 7 | --------- 8 | 9 | * [ZBX-DELL-POWERCONNECT-ENVMON](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-dell-powerconnect/zbx-dell-powerconnect-envmon) => use the DELL-ITA-MIB to discover and manage environmental. 10 | * [ZBX-DELL-POWERCONNECT-HARDWARE](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-dell-powerconnect/zbx-dell-powerconnect-hardware) => use the DELL-ITA-MIB to discover and manage physical entity. 11 | * [ZBX-DELL-POWERCONNECT-INTERFACES](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-dell-powerconnect/zbx-dell-powerconnect-interfaces) => use the IF-MIB to discover and manage interfaces. 12 | 13 | Requirements 14 | ------------ 15 | 16 | All this templates was tested for Zabbix 2.0.0 and higher. Please see individual template for requirements. 17 | 18 | License 19 | ------- 20 | 21 | This template is distributed 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. 22 | 23 | ### Copyright 24 | 25 | Copyright (c) Jean-Jacques Martrès 26 | 27 | ### Authors 28 | 29 | Jean-Jacques Martrès 30 | (jjmartres |at| gmail |dot| com) 31 | -------------------------------------------------------------------------------- /zbx-templates/zbx-dell-powerconnect/zbx-dell-powerconnect-envmon/README.md: -------------------------------------------------------------------------------- 1 | ZBX-DELL-POWERCONNECT-ENVMON 2 | ============================ 3 | 4 | This template use the DELL-ITA-MIB to discover and manage environmental of Dell devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Contact (Populates host inventory field **Contact**) 10 | * Device Location (Populates host inventory field **Location**) 11 | * Device Manufacturer Name (Populates host inventory field **Tag**) 12 | * Device Name (Populates host inventory field **Name**) 13 | * Device reachability using ICMP 14 | * Device Serail Number (Populates host inventory field **Serial Number A**) 15 | * Software Version (Populates host inventory field **OS**) 16 | * Software Version (full) (Populates host inventory field **OS (Full details)**) 17 | * Unused memory for the last 5 minutes 18 | * Uptime 19 | * Used CPU for the last 5 minutes 20 | * Available memory 21 | * Discovery: each fan name 22 | * Discovery: each fan state 23 | * Discovery: each power supply name 24 | * Discovery: each power supply state 25 | 26 | Triggers 27 | -------- 28 | 29 | * **[DISASTER]** => Device is UNREACHABLE or DOWN 30 | * **[DISASTER]** => Discovery: each fan, operational status is SHUTDOWN 31 | * **[DISASTER]** => Discovery: each power supply, operational status is SHUTDOWN 32 | * **[HIGH]** => Device as just been restarted 33 | * **[HIGH]** => Memory usage on device exceeded 80% 34 | * **[HIGH]** => Discovery: each fan, operational status is NOT FUNCTIONNING 35 | * **[HIGH]** => Discovery: each power supply, operational status is NOT FUNCTIONNING 36 | * **[AVERAGE]** => Memory usage on device exceeded 70% 37 | * **[AVERAGE]** => Discovery: each fan, operational status is CRITICAL 38 | * **[AVERAGE]** => Discovery: each power supply, operational status is CRITICAL 39 | * **[WARNING]** => Memory usage on device exceeded 60% 40 | * **[WARNING]** => Discovery: each fan, operational status is WARNING 41 | * **[WARNING]** => Discovery: each power supply, operational status is WARNING 42 | * **[INFORMATION]** => Software version on device was changed 43 | * **[INFORMATION]** => Hostname was changed on device 44 | * **[INFORMATION]** => Discovery: each fan, operational status was changed 45 | * **[INFORMATION]** => Discovery: each power supply, operational status was changed 46 | 47 | Graphs 48 | ------ 49 | 50 | * Memory usage 51 | 52 | Installation 53 | ------------ 54 | 55 | 1. Install [`echo.something`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 56 | 2. Then `chmod a+x echo.something` 57 | 3. Add a value mapping named `dellEnvMonState` with the following values: 58 | * 1 => normal 59 | * 2 => warning 60 | * 3 => critical 61 | * 4 => shutdown 62 | * 5 => notPresent 63 | * 6 => notFunctioning 64 | 4. Import **zbx-dell-powerconnect-envmon.xml** file into Zabbix. 65 | 5. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 66 | 6. Configure **Host Inventory** to `Automatic` for your host. 67 | 7. Associate **ZBX-DELL-POWERCONNECT-ENVMON** template to the host. 68 | 69 | ### Requirements 70 | 71 | This template was tested for Zabbix 2.0.0 and higher. 72 | 73 | ###### [echo.something](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) 1.0 74 | 75 | This template use this script to echo "Dell Inc." as Device Manufacturer Name for **Host Inventory**. 76 | 77 | License 78 | ------- 79 | 80 | This template is distributed 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. 81 | 82 | ### Copyright 83 | 84 | Copyright (c) Jean-Jacques Martrès 85 | 86 | ### Authors 87 | 88 | Jean-Jacques Martrès 89 | (jjmartres |at| gmail |dot| com) 90 | -------------------------------------------------------------------------------- /zbx-templates/zbx-dell-powerconnect/zbx-dell-powerconnect-hardware/README.md: -------------------------------------------------------------------------------- 1 | ZBX-DELL-POWERCONNECT-HARDWARE 2 | ============================== 3 | 4 | This template use the DELL-ITA-MIB to discover and manage physical entity of Dell devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: asset tag for each unit 10 | * Discovery: bootrom version for each unit 11 | * Discovery: chassis service tag for each unit 12 | * Discovery: serial number for each unit 13 | * Discovery: service tag for each unit 14 | 15 | Triggers 16 | -------- 17 | 18 | * **[INFORMATION]** => Discovery: bootrom version was changed for each unit 19 | * **[INFORMATION]** => Discovery: serial number was changed for each unit 20 | 21 | Installation 22 | ------------ 23 | 24 | 1. Import **zbx-dell-powerconnect-hardware.xml** file into Zabbix. 25 | 2. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 26 | 3. Associate **ZBX-DELL-POWERCONNECT-HARDWARE** template to the host. 27 | 28 | ### Requirements 29 | 30 | This template was tested for Zabbix 2.0.0 and higher.There are no additional requirements. 31 | 32 | License 33 | ------- 34 | 35 | This template is distributed 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. 36 | 37 | ### Copyright 38 | 39 | Copyright (c) Jean-Jacques Martrès 40 | 41 | ### Authors 42 | 43 | Jean-Jacques Martrès 44 | (jjmartres |at| gmail |dot| com) 45 | -------------------------------------------------------------------------------- /zbx-templates/zbx-dell-powerconnect/zbx-dell-powerconnect-interfaces/README.md: -------------------------------------------------------------------------------- 1 | ZBX-DELL-POWERCONNECT-INTERFACES 2 | ================================ 3 | 4 | This template use the IF-MIB to discover and manage interfaces of Dell Powerconnect devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: administrative status for each interface 10 | * Discovery: operational status for earch interface 11 | * Discovery: speed for each interface 12 | * Discovery: description for each interface 13 | * Discovery: alias for each interface 14 | * Discovery: incoming traffic on each interface 15 | * Discovery: outgoing traffic on each interface 16 | * Discovery: inbound errors on each interface 17 | * Discovery: outbound errors on each interface 18 | * Discovery: incoming discarded packets on each interface 19 | * Discovery: outgoing discarded packets on each interface 20 | * Discovery: the length of the output packet queue for each interface 21 | 22 | Triggers 23 | -------- 24 | 25 | * **[DISASTER]** => Discovery: operational status was changed for an interface where ifAlias match user macro {$INTF_REGEX} 26 | * **[WARNING]** => Discovery: incoming use on an interface exceed 80% for the last 5 minutes 27 | * **[WARNING]** => Discovery: outgoing use on an interface exceed 80% for the last 5 minutes 28 | * **[INFORMATION]** => Discovery: operational status was changed for an interface where ifAlias didn't match user macro {$INTF_REGEX} 29 | * **[INFORMATION]** => Discovery: the length of the output packet queue is not empty on each interface 30 | 31 | Graphs 32 | ------ 33 | 34 | * Discovery: traffic (bits/sec, 95th Percentile) for an interface 35 | * Discovery: errors on an interface 36 | * Discovery: length of the output packets queue for an interface 37 | 38 | Installation 39 | ------------ 40 | 41 | 1. Install [`if.speed`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.speed) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 42 | 2. Then `chmod a+x if.speed` 43 | 3. Import **zbx-dell-powerconnect-interfaces.xml** file into Zabbix. 44 | 4. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 45 | 5. Add to your host the **{$INTF_REGEX}** macro with your regular expression as value (ex: -p-|-P-|-pe-|-PE-) 46 | 6. Associate **ZBX-DELL-POWERCONNECT-INTERFACES** template to the host. 47 | 48 | ### Requirements 49 | 50 | This template was tested for Zabbix 2.0.0 and higher. 51 | 52 | ###### [if.speed](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.speed) 1.0 53 | 54 | This script quey the speed of an interface using the ifSpeed and ifHighSpeed OID and return the right speed value for an interface. 55 | 56 | License 57 | ------- 58 | 59 | This template is distributed 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. 60 | 61 | ### Copyright 62 | 63 | Copyright (c) Jean-Jacques Martrès 64 | 65 | ### Authors 66 | 67 | Jean-Jacques Martrès 68 | (jjmartres |at| gmail |dot| com) 69 | -------------------------------------------------------------------------------- /zbx-templates/zbx-drbd/README.md: -------------------------------------------------------------------------------- 1 | ZBX-DRBD 2 | ======== 3 | 4 | This template allow to manage [DRBD](http://www.drbd.org) ressources. 5 | 6 | Items 7 | ----- 8 | 9 | * DRBD disk status 10 | * DRBD disk role 11 | * DRBD connection state 12 | 13 | Triggers 14 | -------- 15 | 16 | * **[HIGH]** => DRBD disk is not up to date 17 | * **[HIGH]** => DRBD connection failed 18 | * **[WARNING]** => DRBD disk role was changed 19 | 20 | Installation 21 | ------------ 22 | 23 | 1. Add `userparameter_drbd.conf` file into your `zabbix_agentd.conf.d ` directory. 24 | 2. Make sure that your `zabbix_agentd.conf` include `zabbix_agentd.conf.d` directory. 25 | 3. Import **zbx-drbd.xml** file into Zabbix. 26 | 4. Associate **ZBX-DRBD** template to the host. 27 | 5. Start or restart Zabbix Agent 28 | 29 | ### Requirements 30 | 31 | This template was tested for Zabbix 2.0.0 and higher. 32 | 33 | License 34 | ------- 35 | 36 | This template is distributed 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. 37 | 38 | ### Copyright 39 | 40 | Copyright (c) Jean-Jacques Martrès 41 | 42 | ### Authors 43 | 44 | Jean-Jacques Martrès 45 | (jjmartres |at| gmail |dot| com) 46 | -------------------------------------------------------------------------------- /zbx-templates/zbx-drbd/userparameter_drbd.conf: -------------------------------------------------------------------------------- 1 | UserParameter=drbd.cs,cat /proc/drbd |grep $1:|tr [:blank:] \\n|grep cs:|cut -f 2 -d ':' 2 | UserParameter=drbd.ro,cat /proc/drbd |grep $1:|tr [:blank:] \\n|grep ro:|cut -f 2 -d ':'|cut -f 1 -d '/' 3 | UserParameter=drbd.ds,cat /proc/drbd |grep $1:|tr [:blank:] \\n|grep ds:|cut -f 2 -d ':'|cut -f 1 -d '/' 4 | -------------------------------------------------------------------------------- /zbx-templates/zbx-eaton/README.md: -------------------------------------------------------------------------------- 1 | ZBX-POWERWARE-UPS 2 | ================= 3 | 4 | This template use the XUPS-MIB to discover and manage EATON POWERWARE UPS devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Contact (Populates host inventory field **Contact**) 10 | * Device Location (Populates host inventory field **Location**) 11 | * Device Manufacturer Name (Populates host inventory field **Tag**) 12 | * Device Name (Populates host inventory field **Name**) 13 | * Device reachability using ICMP 14 | * Battery test status 15 | * Battery status 16 | * Battery capacity 17 | * Battery time remaining 18 | * Battery voltage 19 | * Battery current 20 | * Output power source 21 | * Output frequency 22 | * Input source 23 | * Input frequency 24 | * Number of deviations from normal frequency or voltage 25 | * Alarm(s) 26 | 27 | Triggers 28 | -------- 29 | 30 | * **[DISASTER]** => Input source failure 31 | * **[DISASTER]** => Device is UNREACHABLE or DOWN 32 | * **[DISASTER]** => Battery time remaining is CRITICAL 33 | * **[HIGH]** => On battery 34 | * **[HIGH]** => Battery test FAILED 35 | * **[HIGH]** => Battery time remaining is LOW 36 | * **[AVERAGE]** => On bypass 37 | * **[AVERAGE]** => Detected alarm(s) 38 | * **[AVERAGE]** => Battery is discharging 39 | * **[WARNING]** => On automatic bypass 40 | * **[INFORMATION]** => On manual bypass 41 | * **[INFORMATION]** => Device has just been restarted 42 | * **[INFORMATION]** => Hostname was changed 43 | 44 | Graphs 45 | ------ 46 | 47 | * Battery status 48 | * Battery capacity 49 | * Battery time remaining 50 | * Battery current 51 | * Number of deviations from normal frequency or voltage 52 | 53 | Installation 54 | ------------ 55 | 56 | 1. Add a value mapping named `xupsBatteryAbmStatus` with the following values: 57 | * 1 => Battery charging 58 | * 2 => Battery discharging 59 | * 3 => Battery floating 60 | * 4 => Battery resting 61 | * 5 => Unknown 62 | 2. Add a value mapping named `xupsInputSource` with the following values: 63 | * 1 => Other 64 | * 2 => None 65 | * 3 => Primary Utility 66 | * 4 => Bypass Feed 67 | * 5 => Secondary Utility 68 | * 6 => Generator 69 | * 7 => Fly wheel 70 | * 8 => Fuel cell 71 | 3. Add a value mapping named `xupsOutputSource` with the following values: 72 | * 1 => Other 73 | * 2 => None 74 | * 3 => Normal 75 | * 4 => Bypass 76 | * 5 => Battery 77 | * 6 => Booster 78 | * 7 => Reducer 79 | * 8 => Parallel capacity 80 | * 9 => Parallel redundant 81 | * 10 => High efficiency mode 82 | * 11 => Maintenance bypass 83 | 4. Add a value mapping named `xupsTestBatteryStatus` with the following values: 84 | * 1 => Unknown 85 | * 2 => Passed 86 | * 3 => Failed 87 | * 4 => In progress 88 | * 5 => Not supported 89 | * 6 => Inhibited 90 | * 7 => Scheduled 91 | 5. Import **zbx-powerware-ups.xml** file into Zabbix. 92 | 6. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 93 | 7. Configure **Host Inventory** to `Automatic` for your host. 94 | 8. Associate **ZBX-POWERWARE-UPS** template to the host. 95 | 96 | ### Requirements 97 | 98 | This template was tested for Zabbix 2.0.0 and higher. 99 | 100 | License 101 | ------- 102 | 103 | This template is distributed 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. 104 | 105 | ### Copyright 106 | 107 | Copyright (c) Jean-Jacques Martrès 108 | 109 | ### Authors 110 | 111 | Jean-Jacques Martrès 112 | (jjmartres |at| gmail |dot| com) 113 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/README.md: -------------------------------------------------------------------------------- 1 | ZBX-FORTINET-TEMPLATES 2 | ====================== 3 | 4 | A collection of Zabbix templates to manage Fortinet devices. 5 | 6 | Templates 7 | --------- 8 | 9 | * [ZBX-FORITNET-ENVMON](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-fortinet/zbx-fortinet-envmon) => use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage environmental. 10 | * [ZBX-FORITNET-INTERFACES](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-fortinet/zbx-fortinet-interfaces) => use the IF-MIB to discover and manage interfaces. 11 | * [ZBX-FORTINET-ANTIVIRUS](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-fortinet/zbx-fortinet-antivirus) => use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage AntiVirus activity. 12 | * [ZBX-FORTINET-HA](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-fortinet/zbx-fortinet-ha) => use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage High Availability. 13 | * [ZBX-FORTINET-HARDWARE](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-fortinet/zbx-fortinet-hardware) => use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage hardware. 14 | * [ZBX-FORTINET-VDOM](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-fortinet/zbx-fortinet-vdom) => use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage virtual domain. 15 | * [ZBX-FORTINET-IDS](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-fortinet/zbx-fortinet-ids) => use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage virtual domain. 16 | * [ZBX-FORTINET-VPN](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-fortinet/zbx-fortinet-vpn) => use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage VPN. 17 | 18 | Requirements 19 | ------------ 20 | 21 | All this templates was tested for Zabbix 2.0.0 and higher. Please see individual template for requirements. 22 | 23 | License 24 | ------- 25 | 26 | This template is distributed 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. 27 | 28 | ### Copyright 29 | 30 | Copyright (c) Jean-Jacques Martrès 31 | 32 | ### Authors 33 | 34 | Jean-Jacques Martrès 35 | (jjmartres |at| gmail |dot| com) 36 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/zbx-fortinet-cpu/README.md: -------------------------------------------------------------------------------- 1 | ZBX-FORTINET-CPU 2 | =================== 3 | 4 | This template use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage CPU activity. 5 | 6 | Items 7 | ----- 8 | 9 | * CPU Usage 10 | * Number of Processors 11 | * Discovery: Average Usage over 5sec per a particular processor 12 | * Discovery: Average Usage over 1min per a particular processor 13 | * Discovery: Average Usage of User Process over 1min per a particular processor 14 | * Discovery: Average Usage of System Process over 1min per a particular processor 15 | 16 | Triggers 17 | -------- 18 | 19 | * **[HIGH]** => CPU usage on device exceeded 80% 20 | * **[AVERAGE]** => CPU usage on device exceeded 60% 21 | * **[WARNING]** => CPU usage on device exceeded 50% 22 | * **[HIGH]** => Average Usage over 5sec per a particular processor exceeded 80% 23 | 24 | Graphs 25 | ------ 26 | 27 | * CPU Usage 28 | * CPU Usage per a particular processor 29 | 30 | Installation 31 | ------------ 32 | 33 | 1. Import **zbx-fortinet-cpu.xml** file into Zabbix. 34 | 2. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 35 | 3. Associate **ZBX-FORTINET-CPU** template to the host. 36 | 37 | ### Requirements 38 | 39 | This template was tested for Zabbix 2.0.0 and higher. 40 | 41 | License 42 | ------- 43 | 44 | This template is distributed 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. 45 | 46 | ### Copyright 47 | 48 | Copyright (c) Jean-Jacques Martrès 49 | 50 | ### Authors 51 | 52 | Jean-Jacques Martrès 53 | (jjmartres |at| gmail |dot| com) 54 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/zbx-fortinet-envmon/README.md: -------------------------------------------------------------------------------- 1 | ZBX-FORTINET-ENVMON 2 | =================== 3 | 4 | This template use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage environmental of Fortinet devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Contact (Populates host inventory field **Contact**) 10 | * Device Location (Populates host inventory field **Location**) 11 | * Device Manufacturer Name (Populates host inventory field **Tag**) 12 | * Device Name (Populates host inventory field **Name**) 13 | * Device reachability using ICMP 14 | * Device Serial Number (Populates host inventory field **Serial Number A**) 15 | * FortiOS Version (Populates host inventory field **OS**) 16 | * Uptime 17 | * Disk Usage 18 | * IPS signature database version 19 | * Virus signature database version 20 | 21 | Triggers 22 | -------- 23 | 24 | * **[DISASTER]** => Device is UNREACHABLE or DOWN 25 | * **[HIGH]** => Device as just been restarted 26 | * **[INFORMATION]** => Software version on device was changed 27 | * **[INFORMATION]** => Hostname was changed on device 28 | * **[INFORMATION]** => IPS signature database was changed 29 | * **[INFORMATION]** => Virus signature database was changed 30 | * **[INFORMATION]** => Device Serial Number was changed 31 | 32 | Graphs 33 | ------ 34 | 35 | * Disk Usage 36 | 37 | Installation 38 | ------------ 39 | 40 | 1. Install [`echo.something`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 41 | 2. Then `chmod a+x echo.something` 42 | 3. Import **zbx-fortinet-envmon.xml** file into Zabbix. 43 | 4. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 44 | 5. Configure **Host Inventory** to `Automatic` for your host. 45 | 6. Associate **ZBX-FORTINET-ENVMON** template to the host. 46 | 47 | ### Requirements 48 | 49 | This template was tested for Zabbix 2.0.0 and higher. 50 | 51 | ###### [echo.something](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) 1.0 52 | 53 | This template use this script to echo "Fortinet" as Device Manufacturer Name for **Host Inventory**. 54 | 55 | License 56 | ------- 57 | 58 | This template is distributed 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. 59 | 60 | ### Copyright 61 | 62 | Copyright (c) Jean-Jacques Martrès 63 | 64 | ### Authors 65 | 66 | Jean-Jacques Martrès 67 | (jjmartres |at| gmail |dot| com) 68 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/zbx-fortinet-ha/README.md: -------------------------------------------------------------------------------- 1 | ZBX-FORTINET-HA 2 | =============== 3 | 4 | This template use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage High Availability. 5 | 6 | Items 7 | ----- 8 | 9 | * Configuration of automatic synchronization 10 | * High availability cluster group name 11 | * High availability cluster priority 12 | * High availability mode 13 | * Load-balancing schedule of cluster 14 | * Status of a master override flag 15 | * Discovery: CPU usage for each cluster unit 16 | * Discovery: current session count for each cluster unit 17 | * Discovery: memory usage for each cluster unit 18 | * Discovery: network bandwidth usage for each cluster unit 19 | * Discovery: number of anti-virus events triggered for each cluster unit 20 | * Discovery: number of IDS/IPS events triggered for each cluster unit 21 | 22 | Triggers 23 | -------- 24 | 25 | * **[HIGH]** => Memory usage for each unit exceeded 80% 26 | * **[HIGH]** => CPU usage for each unit exceeded 80% 27 | * **[HIGH]** => An increase of 40% of active sessions for each unit was detected 28 | * **[AVERAGE]** => Memory usage for each unit exceeded 70% 29 | * **[AVERAGE]** => CPU usage for each unit exceeded 60% 30 | * **[AVERAGE]** => An increase of 30% of active sessions for each unit was detected 31 | * **[WARNING]** => Memory usage for each unit exceeded 60% 32 | * **[WARNING]** => CPU usage for each unit exceeded 50% 33 | * **[WARNING]** => An increase of 20% of active sessions for each unit was detected 34 | 35 | Graphs 36 | ------ 37 | 38 | * Discovery: CPU usage for each cluster unit 39 | * Discovery: Memory usage for each cluster unit 40 | * Discovery: Network bandwidth for each cluster unit 41 | * Discovery: Sessions count for each cluster unit 42 | 43 | Installation 44 | ------------ 45 | 46 | 1. Add a value mapping named `FgBoolState` with the following values: 47 | * 1 => disabled 48 | * 2 => enabled 49 | 2. Add a value mapping named `FgHaLbSchedule` with the following values: 50 | * 1 => none 51 | * 2 => hub 52 | * 3 => leastConnections 53 | * 4 => roundRobin 54 | * 5 => weightedRoundRobin 55 | * 6 => random 56 | * 7 => ipBased 57 | * 8 => ipPortBased 58 | 3. Add a value mapping named `FgHaMode` with the following values: 59 | * 1 => standalone 60 | * 2 => activeActive 61 | * 3 => activePassive 62 | 4. Import **zbx-fortinet-ha.xml** file into Zabbix. 63 | 5. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 64 | 6. Associate **ZBX-FORTINET-HA** template to the host. 65 | 66 | ### Requirements 67 | 68 | This template was tested for Zabbix 2.0.0 and higher. 69 | 70 | License 71 | ------- 72 | 73 | This template is distributed 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. 74 | 75 | ### Copyright 76 | 77 | Copyright (c) Jean-Jacques Martrès 78 | 79 | ### Authors 80 | 81 | Jean-Jacques Martrès 82 | (jjmartres |at| gmail |dot| com) 83 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/zbx-fortinet-hardware/README.md: -------------------------------------------------------------------------------- 1 | ZBX-FORTINET-HARDWARE 2 | ===================== 3 | 4 | This template use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage hardware. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: serial number of each cluster unit 10 | * Discovery: software version of each cluster unit 11 | 12 | Triggers 13 | -------- 14 | 15 | * **[INFORMATION]** => serial number for each cluster unit was changed 16 | 17 | Installation 18 | ------------ 19 | 20 | 1. Import **zbx-fortinet-hardware.xml** file into Zabbix. 21 | 2. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 22 | 3. Associate **ZBX-FORTINET-HARDWARE** template to the host. 23 | 24 | ### Requirements 25 | 26 | This template was tested for Zabbix 2.0.0 and higher. 27 | 28 | License 29 | ------- 30 | 31 | This template is distributed 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. 32 | 33 | ### Copyright 34 | 35 | Copyright (c) Jean-Jacques Martrès 36 | 37 | ### Authors 38 | 39 | Jean-Jacques Martrès 40 | (jjmartres |at| gmail |dot| com) 41 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/zbx-fortinet-hwsensors/README.md: -------------------------------------------------------------------------------- 1 | ZBX-FORTINET-HWSENSORS 2 | =================== 3 | 4 | This template use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage Hardware Sensors. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: Fan speed on each sensors 10 | * Discovery: Fan alarm status on each sensors 11 | * Discovery: Temperature on each sensors 12 | * Discovery: Temperature alarm status on each sensors 13 | * Discovery: Voltage on each sensors 14 | * Discovery: Voltage alarm status on each sensors 15 | * Discovery: PowerSupply alarm status on each Power Supply Units. 16 | 17 | Triggers 18 | -------- 19 | 20 | * **[HIGH]** => a particular FAN was on alarm status 21 | * **[HIGH]** => a particular Temperature sensor was on alarm status 22 | * **[HIGH]** => a particular Voltage sensor was on alarm status 23 | * **[WARNING]** => a particular Power Supply Unit CPU was on alarm status 24 | 25 | Graphs 26 | ------ 27 | 28 | * Fan speed on each sensors 29 | * Temperature on each sensors 30 | * Voltage on each sensors 31 | 32 | Installation 33 | ------------ 34 | 35 | 1. Add a value mapping named `fgHwSensorEntAlarmStatus` with the following values: 36 | * 0 => false 37 | * 1 => true 38 | 2. Import **zbx-fortinet-hwsensors.xml** file into Zabbix. 39 | 3. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 40 | 4. Associate **ZBX-FORTINET-HWSENSORS** template to the host. 41 | 42 | ### Requirements 43 | 44 | This template was tested for Zabbix 2.0.0 and higher. 45 | 46 | ###### FortiGate Supported 47 | 48 | These hardware sensors are supported on a few FortiGate models(600C/1000C/3040B/3140B/3950B,etc). 49 | If you want to use this templates on newer models with different sensor name, 50 | you have to modify the filter regular expression in discovery rule with macro **{#SNMPVALUE}**. 51 | 52 | License 53 | ------- 54 | 55 | This template is distributed 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. 56 | 57 | ### Copyright 58 | 59 | Copyright (c) Jean-Jacques Martrès 60 | 61 | ### Authors 62 | 63 | Jean-Jacques Martrès 64 | (jjmartres |at| gmail |dot| com) 65 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/zbx-fortinet-ids/README.md: -------------------------------------------------------------------------------- 1 | ZBX-FORTINET-IDS 2 | ================ 3 | 4 | This template use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage virtual domain on Fortinet devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: number of intrusions blocked for each virtual domain 10 | * Discovery: number of intrusions detected for each virtual domain 11 | 12 | Triggers 13 | -------- 14 | 15 | * **[HIGH]** => An increase of 40% of detected intrusions for each virtual domain was detected 16 | * **[HIGH]** => An increase of 40% of blocked intrusions for each virtual domain was detected 17 | * **[AVERAGE]** => An increase of 30% of detected intrusions for each virtual domain was detected 18 | * **[AVERAGE]** => An increase of 30% of blocked intrusions for each virtual domain was detected 19 | * **[INFORMATION]** => An increase of 20% of detected intrusions for each virtual domain was detected 20 | * **[INFORMATION]** => An increase of 20% of blocked intrusions for each virtual domain was detected 21 | 22 | Installation 23 | ------------ 24 | 25 | 1. Add a value mapping named `FgOpMode` with the following values: 26 | * 1 => nat 27 | * 2 => transparent 28 | 3. Import **zbx-fortinet-ids.xml** file into Zabbix. 29 | 4. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 30 | 6. Associate **ZBX-FORTINET-IDS** template to the host. 31 | 32 | ### Requirements 33 | 34 | This template was tested for Zabbix 2.0.0 and higher. 35 | 36 | License 37 | ------- 38 | 39 | This template is distributed 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. 40 | 41 | ### Copyright 42 | 43 | Copyright (c) Jean-Jacques Martrès 44 | 45 | ### Authors 46 | 47 | Jean-Jacques Martrès 48 | (jjmartres |at| gmail |dot| com) 49 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/zbx-fortinet-interfaces/README.md: -------------------------------------------------------------------------------- 1 | ZBX-FORTINET-INTERFACES 2 | ======================= 3 | 4 | This template use the IF-MIB to discover and manage interfaces of Fortinet devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: administrative status for each interface 10 | * Discovery: operational status for earch interface 11 | * Discovery: speed for each interface 12 | * Discovery: associated VDOM for each interface 13 | * Discovery: description for each interface 14 | * Discovery: alias for each interface 15 | * Discovery: incoming traffic on each interface 16 | * Discovery: outgoing traffic on each interface 17 | * Discovery: inbound errors on each interface 18 | * Discovery: outbound errors on each interface 19 | * Discovery: incoming discarded packets on each interface 20 | * Discovery: outgoing discarded packets on each interface 21 | * Discovery: the length of the output packet queue for each interface 22 | 23 | Triggers 24 | -------- 25 | 26 | * **[DISASTER]** => Discovery: operational status was changed for an interface where ifAlias match user macro {$INTF_REGEX} 27 | * **[WARNING]** => Discovery: incoming use on an interface exceed 80% for the last 5 minutes 28 | * **[WARNING]** => Discovery: outgoing use on an interface exceed 80% for the last 5 minutes 29 | * **[INFORMATION]** => Discovery: operational status was changed for an interface where ifAlias didn't match user macro {$INTF_REGEX} 30 | * **[INFORMATION]** => Discovery: the length of the output packet queue is not empty on each interface 31 | 32 | Graphs 33 | ------ 34 | 35 | * Discovery: traffic (bits/sec, 95th Percentile) for an interface 36 | * Discovery: errors on an interface 37 | * Discovery: length of the output packets queue for an interface 38 | 39 | Installation 40 | ------------ 41 | 42 | 1. Install [`if.speed`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.speed) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 43 | 2. Then `chmod a+x if.speed` 44 | 3. Install [`if.vdom`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.vdom) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in d> 45 | 4. Then `chmod a+x if.vdom` 46 | 5. Import **zbx-fortinet-interfaces.xml** file into Zabbix. 47 | 6. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 48 | 7. Add to your host the **{$INTF_REGEX}** macro with your regular expression as value (ex: -p-|-P-|-pe-|-PE-) 49 | 8. Associate **ZBX-FORTINET-INTERFACES** template to the host. 50 | 51 | ### Requirements 52 | 53 | This template was tested for Zabbix 2.0.0 and higher. 54 | 55 | ###### [if.speed](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.speed) 1.0 56 | 57 | This script quey the speed of an interface using the ifSpeed and ifHighSpeed OID and return the right speed value for an interface. 58 | 59 | ###### [if.vdom](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.vdom) 1.0 60 | 61 | This script show associated VDOM for an interface using SNMP on FortiNet device. 62 | 63 | License 64 | ------- 65 | 66 | This template is distributed 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. 67 | 68 | ### Copyright 69 | 70 | Copyright (c) Jean-Jacques Martrès 71 | 72 | ### Authors 73 | 74 | Jean-Jacques Martrès 75 | (jjmartres |at| gmail |dot| com) 76 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/zbx-fortinet-memory/README.md: -------------------------------------------------------------------------------- 1 | ZBX-FORTINET-MEMORY 2 | =================== 3 | 4 | This template use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage Memory activity. 5 | 6 | Items 7 | ----- 8 | 9 | * System Memory Capacity 10 | * System Memory Usage(%) 11 | * System Memory Usage 12 | * System Memory Usage(used-) 13 | * Low Memory Capacity 14 | * Low Memory Usage(%) 15 | * Low Memory Usage 16 | * Kernel Page Cache 17 | * Kernel Cache(Active) 18 | * Kernel Cache(Inactive) 19 | * Kernel Buffer 20 | * Kernel Conserve Enter Threshold 21 | * Kernel Conserve Leave Threshold 22 | * Proxy Conserve Enter Threshold 23 | * Proxy Conserve Leave Threshold 24 | 25 | Triggers 26 | -------- 27 | 28 | * **[HIGH]** => Memory usage on device exceeded 80% 29 | * **[AVERAGE]** => Memory usage on device exceeded 70% 30 | * **[WARNING]** => Memory usage on device exceeded 60% 31 | * **[HIGH]** => Memory usage(used-) exceeded 50% 32 | 33 | Graphs 34 | ------ 35 | 36 | * Memory Usage 37 | 38 | Installation 39 | ------------ 40 | 41 | 1. Import **zbx-fortinet-memory.xml** file into Zabbix. 42 | 2. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 43 | 3. Associate **ZBX-FORTINET-MEMORY** template to the host. 44 | 45 | ### Requirements 46 | 47 | This template was tested for Zabbix 2.0.0 and higher. 48 | 49 | License 50 | ------- 51 | 52 | This template is distributed 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. 53 | 54 | ### Copyright 55 | 56 | Copyright (c) Jean-Jacques Martrès 57 | 58 | ### Authors 59 | 60 | Jean-Jacques Martrès 61 | (jjmartres |at| gmail |dot| com) 62 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/zbx-fortinet-session/README.md: -------------------------------------------------------------------------------- 1 | ZBX-FORTINET-SESSION 2 | =================== 3 | 4 | This template use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage firewall session activity. 5 | 6 | Items 7 | ----- 8 | 9 | * IPv4 Active sessions 10 | * IPv4 Session Setup Rate over 1 min 11 | * IPv4 Session Setup Rate over 10 mins 12 | * IPv4 Session Setup Rate over 30 mins 13 | * IPv4 Session Setup Rate over 60 mins 14 | * IPv6 Active sessions 15 | * IPv6 Session Setup Rate over 1 min 16 | * IPv6 Session Setup Rate over 10 mins 17 | * IPv6 Session Setup Rate over 30 mins 18 | * IPv6 Session Setup Rate over 60 mins 19 | * Ephemeral sessions: current number 20 | * Ephemeral sessions: limit number 21 | * Number of new sessions which have collision 22 | * Number of current expectation sessions 23 | * Counts of sync queue full 24 | * Counts of accept queue full 25 | * Counts of direct requests to FortiGate local stack 26 | 27 | Triggers 28 | -------- 29 | 30 | * **[HIGH]** => An increase of 30% of ipv4 active sessions was detected 31 | * **[AVERAGE]** => An increase of 20% of ipv4 active sessions was detected 32 | * **[DISASTER]** => An increase of 40% of ipv4 active sessions was detected 33 | * **[HIGH]** => An increase of 30% of ipv6 active sessions was detected 34 | * **[AVERAGE]** => An increase of 20% ipv6 of active sessions was detected 35 | * **[DISASTER]** => An increase of 40% ipv6 of active sessions was detected 36 | * **[AVERAGE]** => Number of ephemeral sessions exceeded the limit 37 | 38 | Graphs 39 | ------ 40 | 41 | * Active Sessions 42 | 43 | Installation 44 | ------------ 45 | 46 | 1. Import **zbx-fortinet-session.xml** file into Zabbix. 47 | 2. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 48 | 3. Associate **ZBX-FORTINET-SESSION** template to the host. 49 | 50 | ### Requirements 51 | 52 | This template was tested for Zabbix 2.0.0 and higher. 53 | 54 | License 55 | ------- 56 | 57 | This template is distributed 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. 58 | 59 | ### Copyright 60 | 61 | Copyright (c) Jean-Jacques Martrès 62 | 63 | ### Authors 64 | 65 | Jean-Jacques Martrès 66 | (jjmartres |at| gmail |dot| com) 67 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/zbx-fortinet-vdom/README.md: -------------------------------------------------------------------------------- 1 | ZBX-FORTINET-VDOM 2 | ================= 3 | 4 | This template use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage virtual domain on Fortinet devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: operation mode of each virtual domain 10 | 11 | Installation 12 | ------------ 13 | 14 | 1. Add a value mapping named `FgOpMode` with the following values: 15 | * 1 => nat 16 | * 2 => transparent 17 | 3. Import **zbx-fortinet-vdom.xml** file into Zabbix. 18 | 4. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 19 | 6. Associate **ZBX-FORTINET-VDOM** template to the host. 20 | 21 | ### Requirements 22 | 23 | This template was tested for Zabbix 2.0.0 and higher. 24 | 25 | License 26 | ------- 27 | 28 | This template is distributed 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. 29 | 30 | ### Copyright 31 | 32 | Copyright (c) Jean-Jacques Martrès 33 | 34 | ### Authors 35 | 36 | Jean-Jacques Martrès 37 | (jjmartres |at| gmail |dot| com) 38 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/zbx-fortinet-vdom/zbx-fortinet-vdom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2.0 4 | 2012-10-15T19:53:35Z 5 | 6 | 7 | ZBX-FORTINET-TEMPLATES 8 | 9 | 10 | 11 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /zbx-templates/zbx-fortinet/zbx-fortinet-vpn/README.md: -------------------------------------------------------------------------------- 1 | ZBX-FORTINET-VPN 2 | ================ 3 | 4 | This template use the FORTINET-CORE-MIB and FORTINET-FORTIGATE-MIB to discover and manage VPN on Fortinet devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: associated virtual domain for each VPN 10 | * Discovery: current status for each VPN 11 | * Discovery: local IP address for each VPN 12 | * Discovery: remote IP address for each VPN 13 | * Discovery: number of bytes received on each VPN 14 | * Discovery: number of bytes sent on each VPN 15 | 16 | Triggers 17 | -------- 18 | 19 | * **[INFORMATION]** => VPN tunnel is DOWN 20 | 21 | Graphs 22 | ------ 23 | 24 | * Discovery: traffic for each VPN 25 | 26 | Installation 27 | ------------ 28 | 29 | 1. Add a value mapping named `FgVpnState` with the following values: 30 | * 1 => down 31 | * 2 => up 32 | 2. Install [`vpn.vdom`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/vpn.vdom) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 33 | 3. Then `chmod a+x vpn.vdom` 34 | 4. Import **zbx-fortinet-vpn.xml** file into Zabbix. 35 | 5. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 36 | 6. Associate **ZBX-FORTINET-VPN** template to the host. 37 | 38 | ### Requirements 39 | 40 | This template was tested for Zabbix 2.0.0 and higher. 41 | 42 | ###### [vpn.vdom](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/vpn.vdom) 1.0 43 | 44 | This script show asssociated VDOM for a VPN tunnel using SNMP on FortiNet device. 45 | 46 | License 47 | ------- 48 | 49 | This template is distributed 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. 50 | 51 | ### Copyright 52 | 53 | Copyright (c) Jean-Jacques Martrès 54 | 55 | ### Authors 56 | 57 | Jean-Jacques Martrès 58 | (jjmartres |at| gmail |dot| com) 59 | -------------------------------------------------------------------------------- /zbx-templates/zbx-gandi/README.md: -------------------------------------------------------------------------------- 1 | ZBX-GANDI 2 | ============ 3 | 4 | This template manage domain and certificate expiry from [Gandi](https://www.gandi.net) API. 5 | 6 | Items 7 | ----- 8 | 9 | * Number of domains (all status) associated to the API key 10 | * Number of certificates (all status) associated to the API key 11 | * Discovery : validity for each domain (in days) 12 | * Discovery : validity for each certificate (in days) 13 | 14 | Triggers 15 | -------- 16 | 17 | * **[DISASTER]** => Discovery: Domain expired 18 | * **[DISCASTER]** => Discovery: SSL certificate expired 19 | * **[HIGH]** => Discovery: domain expires in less than 7 days 20 | * **[HIGH]** => Discovery: SSL certificate expires in less than 7 days 21 | * **[AVERAGE]** => Discovery: domain expires in less than 15 days 22 | * **[AVERAGE]** => Discovery: SSL certificate expires in less than 15 days 23 | * **[WARNING]** => Discovery: domain expires in less than 30 days 24 | * **[WARNING]** => Discovery: SSL certificate expires in less than 30 days 25 | * **[INFORMATION]** => Discovery: domain expires in less than 60 days 26 | * **[INFORMATION]** => Discovery: SSL certificates expires in less than 60 days 27 | 28 | Installation 29 | ------------ 30 | 31 | 1. Install [`gandi.check`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/gandi-rblcheck) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 32 | 2. Then `chmod a+x gandi.check` 33 | 3. Create a host named GANDI with the IP address 127.0.0.1 34 | 4. Add to your host the followed macro with value **{$GANDI_API_KEY}** 35 | 3. Import **zbx-gandi.xml** file into Zabbix. 36 | 4. Associate **ZBX-GANDI** template to the host. 37 | 38 | ### Requirements 39 | 40 | This template was tested for Zabbix 2.0.0 and higher. 41 | 42 | ###### [Gandi](https://www.gandi.net) account with API key 43 | 44 | ###### [gandi.check](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/gandi.check) 2.0.5 45 | 46 | This script query the Gandi API to get information on domain and certificate. 47 | 48 | License 49 | ------- 50 | 51 | This template is distributed 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. 52 | 53 | ### Copyright 54 | 55 | Copyright (c) Jean-Jacques Martrès 56 | 57 | ### Authors 58 | 59 | Jean-Jacques Martrès 60 | (jjmartres |at| gmail |dot| com) 61 | -------------------------------------------------------------------------------- /zbx-templates/zbx-icewarp/README.md: -------------------------------------------------------------------------------- 1 | ZBX-ICEWARP-SERVER 2 | ================== 3 | 4 | This template use the IceWarp Server SNMP MIB to manage IceWarp Server. 5 | 6 | Items 7 | ----- 8 | 9 | * Product name 10 | * Product version 11 | * SMTP service status 12 | * SMTP service uptime 13 | * POP3 service status 14 | * POP3 service uptime 15 | * IMAP service status 16 | * IMAP service uptime 17 | * IM service status 18 | * IM service uptime 19 | * GroupWare service status 20 | * GroupWare service uptime 21 | * Web/FTP service status 22 | * Web/FTP service uptime 23 | * Control service status 24 | * Control service uptime 25 | * SMTP transmitted messages 26 | * SMTP received messages 27 | * SMTP untransmitted messages 28 | * SMTP failures (Virus) 29 | * SMTP failures (Too Data) 30 | * SMTP failures (Static Filter) 31 | * SMTP failures (BWFilter) 32 | * SMTP failures (SPAM) 33 | * SMTP failures (DNSBL) 34 | 35 | Triggers 36 | -------- 37 | 38 | * **[HIGH]** => Too many SMTP received messages. Value is greater than macro {$ICEWARP_RECEIVED_MESSAGES}. Default value is 5000. 39 | * **[HIGH]** => Too many SMTP untransmitted messages. Value is greater than macro {$ICEWARP_UNTRANSMITTED_MESSAGES}. Default value is 200. 40 | * **[WARNING]** => SMTP service has been restarted 41 | * **[WARNING]** => POP3 service has been restarted 42 | * **[WARNING]** => IMAP service has been restarted 43 | * **[WARNING]** => IM service has been restarted 44 | * **[WARNING]** => GroupWare service has been restarted 45 | * **[WARNING]** => Web/FTP service has been restarted 46 | * **[WARNING]** => Control service has been restarted 47 | 48 | Graphs 49 | ------ 50 | 51 | * SMTP trafic 52 | * SMTP failures 53 | 54 | Installation 55 | ------------ 56 | 57 | 1. Configure IceWarp SNMP Server has described [here](http://esupport.icewarp.com/index.php?/Knowledgebase/Article/View/180/16/snmp-in-icewarp) 58 | 2. Add a value mapping named `iwpServiceStatus` with the following values: 59 | * 0 => Not running 60 | * 1 => Running 61 | 3. Import **zbx-icewarp-server.xml** file into Zabbix. 62 | 4. Add to your host the followed macro with value **{$ICEWARP_RECEIVED_MESSAGES}** 63 | 5. Add to your host the followed macro with value **{$ICEWARP_UNTRANSMITTED_MESSAGES}** 64 | 6. Associate **ZBX-ICEWARP-SERVER** template to the host. 65 | 66 | ### Requirements 67 | 68 | This template was tested for Zabbix 2.0.0 and higher. 69 | 70 | License 71 | ------- 72 | 73 | This template is distributed 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. 74 | 75 | ### Copyright 76 | 77 | Copyright (c) Jean-Jacques Martrès 78 | 79 | ### Authors 80 | 81 | Jean-Jacques Martrès 82 | (jjmartres |at| gmail |dot| com) 83 | -------------------------------------------------------------------------------- /zbx-templates/zbx-linux/README.md: -------------------------------------------------------------------------------- 1 | ZBX-LINUX-TEMPLATES 2 | ===================== 3 | 4 | A collection of Zabbix templates to manage Linux based server. 5 | 6 | Templates 7 | --------- 8 | 9 | * [ZBX-LINUX-ENVMON](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-linux/zbx-linux-envmon) => use zabbix agent to discover and manage environmental Linux based server. 10 | 11 | Requirements 12 | ------------ 13 | 14 | All this templates was tested for Zabbix 2.0.0 and higher. Please see individual template for requirements. 15 | 16 | License 17 | ------- 18 | 19 | This template is distributed 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. 20 | 21 | ### Copyright 22 | 23 | Copyright (c) Jean-Jacques Martrès 24 | 25 | ### Authors 26 | 27 | Jean-Jacques Martrès 28 | (jjmartres |at| gmail |dot| com) 29 | -------------------------------------------------------------------------------- /zbx-templates/zbx-netopia/README.md: -------------------------------------------------------------------------------- 1 | ZBX-NETOPIA-TEMPLATES 2 | =================== 3 | 4 | A collection of Zabbix templates to manage Netopia devices. 5 | 6 | Templates 7 | --------- 8 | 9 | * [ZBX-NETOPIA-ENVMON](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-netopia/zbx-netopia-envmon) => use the NETOPIA-MIB to discover and manage environmental of Netopia devices. 10 | * [ZBX-NETOPIA-INTERFACES](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-netopia/zbx-netopia-interfaces) => use the IF-MIB to discover and manage interfaces. 11 | * [ZBX-NETOPIA-xDSL](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-netopia/zbx-netopia-xdsl) => use the RFC2662-MIB to discover and manage ADSL controllers. 12 | 13 | Requirements 14 | ------------ 15 | 16 | All this templates was tested for Zabbix 2.0.0 and higher. Please see individual template for requirements. 17 | 18 | License 19 | ------- 20 | 21 | This template is distributed 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. 22 | 23 | ### Copyright 24 | 25 | Copyright (c) Jean-Jacques Martrès 26 | 27 | ### Authors 28 | 29 | Jean-Jacques Martrès 30 | (jjmartres |at| gmail |dot| com) 31 | -------------------------------------------------------------------------------- /zbx-templates/zbx-netopia/zbx-netopia-envmon/README.md: -------------------------------------------------------------------------------- 1 | ZBX-NETOPIA-ENVMON 2 | ================== 3 | 4 | This template use the NETOPIA-MIB to discover and manage environmental of Netopia devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Contact (Populates host inventory field **Contact**) 10 | * Device Location (Populates host inventory field **Location**) 11 | * Device Manufacturer Name (Populates host inventory field **Tag**) 12 | * Device Name (Populates host inventory field **Name**) 13 | * Device reachability using ICMP 14 | * Device Serail Number (Populates host inventory field **Serial Number A**) 15 | * Software Version (Populates host inventory field **OS**) 16 | * Software Version (full) (Populates host inventory field **OS (Full details)**) 17 | * Total memory 18 | * Uptime 19 | * Used CPU for the last 5 minutes 20 | * Used memory 21 | 22 | Triggers 23 | -------- 24 | 25 | * **[DISASTER]** => Device is UNREACHABLE or DOWN 26 | * **[HIGH]** => Device as just been restarted 27 | * **[HIGH]** => Memory usage on device exceeded 80% 28 | * **[HIGH]** => CPU usage on device exceeded 80% 29 | * **[AVERAGE]** => Memory usage on device exceeded 70% 30 | * **[AVERAGE]** => CPU usage on device exceeded 60% 31 | * **[WARNING]** => Memory usage on device exceeded 60% 32 | * **[WARNING]** => CPU usage on device exceeded 50% 33 | * **[INFORMATION]** => Software version on device was changed 34 | * **[INFORMATION]** => Hostname was changed on device 35 | 36 | Graphs 37 | ------ 38 | 39 | * CPU usage 40 | * Memory usage 41 | 42 | Installation 43 | ------------ 44 | 45 | 1. Install [`echo.something`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 46 | 2. Then `chmod a+x echo.something` 47 | 3. Import **zbx-netopia-envmon.xml** file into Zabbix. 48 | 4. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 49 | 5. Configure **Host Inventory** to `Automatic` for your host. 50 | 6. Associate **ZBX-NETOPIA-ENVMON** template to the host. 51 | 52 | ### Requirements 53 | 54 | This template was tested for Zabbix 2.0.0 and higher. 55 | 56 | ###### [echo.something](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/echo.something) 1.0 57 | 58 | This template use this script to echo "Netopia" as Device Manufacturer Name for **Host Inventory**. 59 | 60 | License 61 | ------- 62 | 63 | This template is distributed 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. 64 | 65 | ### Copyright 66 | 67 | Copyright (c) Jean-Jacques Martrès 68 | 69 | ### Authors 70 | 71 | Jean-Jacques Martrès 72 | (jjmartres |at| gmail |dot| com) 73 | -------------------------------------------------------------------------------- /zbx-templates/zbx-netopia/zbx-netopia-interfaces/README.md: -------------------------------------------------------------------------------- 1 | ZBX-NETOPIA-INTERFACES 2 | ====================== 3 | 4 | This template use the IF-MIB to discover and manage interfaces of Netopia devices. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: administrative status for each interface 10 | * Discovery: operational status for earch interface 11 | * Discovery: speed for each interface 12 | * Discovery: description for each interface 13 | * Discovery: alias for each interface 14 | * Discovery: incoming traffic on each interface 15 | * Discovery: outgoing traffic on each interface 16 | * Discovery: inbound errors on each interface 17 | * Discovery: outbound errors on each interface 18 | * Discovery: incoming discarded packets on each interface 19 | * Discovery: outgoing discarded packets on each interface 20 | * Discovery: the length of the output packet queue for each interface 21 | 22 | Triggers 23 | -------- 24 | 25 | * **[DISASTER]** => Discovery: operational status was changed for an interface where ifAlias match user macro {$INTF_REGEX} 26 | * **[WARNING]** => Discovery: incoming use on an interface exceed 80% for the last 5 minutes 27 | * **[WARNING]** => Discovery: outgoing use on an interface exceed 80% for the last 5 minutes 28 | * **[INFORMATION]** => Discovery: operational status was changed for an interface where ifAlias didn't match user macro {$INTF_REGEX} 29 | * **[INFORMATION]** => Discovery: the length of the output packet queue is not empty on each interface 30 | 31 | Graphs 32 | ------ 33 | 34 | * Discovery: traffic (bits/sec, 95th Percentile) for an interface 35 | * Discovery: errors on an interface 36 | * Discovery: length of the output packets queue for an interface 37 | 38 | Installation 39 | ------------ 40 | 41 | 1. Install [`if.speed`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.speed) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 42 | 2. Then `chmod a+x if.speed` 43 | 3. Import **zbx-netopia-interfaces.xml** file into Zabbix. 44 | 4. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 45 | 5. Add to your host the **{$INTF_REGEX}** macro with your regular expression as value (ex: -p-|-P-|-pe-|-PE-) 46 | 6. Associate **ZBX-NETOPIA-INTERFACES** template to the host. 47 | 48 | ### Requirements 49 | 50 | This template was tested for Zabbix 2.0.0 and higher. 51 | 52 | ###### [if.speed](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/if.speed) 1.0 53 | 54 | This script quey the speed of an interface using the ifSpeed and ifHighSpeed OID and return the right speed value for an interface. 55 | 56 | License 57 | ------- 58 | 59 | This template is distributed 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. 60 | 61 | ### Copyright 62 | 63 | Copyright (c) Jean-Jacques Martrès 64 | 65 | ### Authors 66 | 67 | Jean-Jacques Martrès 68 | (jjmartres |at| gmail |dot| com) 69 | -------------------------------------------------------------------------------- /zbx-templates/zbx-netopia/zbx-netopia-xdsl/README.md: -------------------------------------------------------------------------------- 1 | ZBX-NETOPIA-xDSL 2 | ================ 3 | 4 | This template use the RFC2662-MIB to discover and manage ADSL controllers. 5 | 6 | Items 7 | ----- 8 | 9 | * Discovery: ADSL line coding type 10 | * Discovery: ADSL line downstream attenuation 11 | * Discovery: ADSL line downstream number of Errored Seconds 12 | * Discovery: ADSL line downstream number of Loss of Framing 13 | * Discovery: ADSL line downstream number of Loss of Power failures 14 | * Discovery: ADSL line downstream number of Loss of Signal failures 15 | * Discovery: ADSL line downstream SNR 16 | * Discovery: ADSL line downstream speed 17 | * Discovery: ADSL line physical entity type 18 | * Discovery: ADSL line upstream attenuation 19 | * Discovery: ADSL line upstream number of Errored Seconds 20 | * Discovery: ADSL line upstream number of Loss of Framing 21 | * Discovery: ADSL line upstream number of Loss of Power failures 22 | * Discovery: ADSL line upstream number of Loss of Signal failures 23 | * Discovery: ADSL line upstream SNR 24 | * Discovery: ADSL line upstream speed 25 | 26 | Triggers 27 | -------- 28 | 29 | * **[INFORMATION]** => Discovery: ADSL line attenuation has changed 30 | * **[INFORMATION]** => Discovery: ADSL line signal to noise ratio has changed 31 | * **[INFORMATION]** => Discovery: ADSL line speed has changed 32 | 33 | Graphs 34 | ------ 35 | 36 | * ADSL line attenuation 37 | * ADSL line SNR margin 38 | * ADSL line speed 39 | 40 | Installation 41 | ------------ 42 | 43 | 1. Install [`advsnmp.discovery`](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 44 | 2. Then `chmod a+x advsnmp.discovery` 45 | 4. Import **zbx-netopia-xdsl.xml** file into Zabbix. 46 | 5. Add to your host the **{$SNMP_COMMUNITY}** macro with your SNMP community as value. 47 | 6. Associate **ZBX-NETOPIA-xDSL** template to the host. 48 | 49 | ### Requirements 50 | 51 | This template was tested for Zabbix 2.0.0 or higher. 52 | 53 | ###### [advsnmp.discovery](https://github.com/simonkowallik/Zabbix-Addons/tree/master/advsnmp.discovery) 2.0 54 | 55 | This template use this script as an alternative to the build-in SNMP low level discovery of Zabbix. 56 | 57 | License 58 | ------- 59 | 60 | This template is distributed 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. 61 | 62 | ### Copyright 63 | 64 | Copyright (c) Jean-Jacques Martrès 65 | 66 | ### Authors 67 | 68 | Jean-Jacques Martrès 69 | (jjmartres |at| gmail |dot| com) 70 | -------------------------------------------------------------------------------- /zbx-templates/zbx-rblcheck/README.md: -------------------------------------------------------------------------------- 1 | ZBX-RBLCHECK 2 | ============ 3 | 4 | This template allow to queries DNS Blacklists for listings. 5 | Actually supported RBLs are : 6 | * VIRBL => virbl.dnsbl.bit.nl 7 | * SPAMHAUS => zen.spamhaus.org 8 | * URIBL => multi.uribl.com 9 | * SURBL => multi.surbl.org 10 | * NJABL => dnsbl.njabl.org 11 | * SPAMCOP => bl.spamcop.net 12 | * SORBS => dnsbl.sorbs.net 13 | * AHBL => dnsbl.ahbl.org 14 | * DRONEBL => dnsbl.dronebl.org 15 | * BARRACUDA => b.barracudacentral.org 16 | * DRONE_ABUSE_CH => drone.abuse.ch 17 | * HTTPBL_ABUSE_CH => httpbl.abuse.ch 18 | * SPAM_ABUSE_CH => spam.abuse.ch 19 | * MAILSHELL => dnsbl.mailshell.net 20 | * CBL => cbl.abuseat.org 21 | * RHSBL => rhsbl.ahbl.org 22 | * FIVETENSG => blackholes.five-ten-sg.com 23 | * INPS => dnsbl.inps.de 24 | * MANITU => ix.dnsbl.manitu.net 25 | * NOMOREFUN => no-more-funn.moensted.dk 26 | * SPAMCANNIBAL => bl.spamcannibal.org 27 | * UCEPROTECT1 => dnsbl-1.uceprotect.net 28 | * UCEPROTECT2 => dnsbl-2.uceprotect.net 29 | * UCEPROTECT3 => dnsbl-3.uceprotect.net 30 | * WHITELIST => ips.whitelisted.org 31 | * BACKSCATTERER => ips.backscatterer.org 32 | * PROJECTHONEYPOT => dnsbl.httpbl.org 33 | * TOREXITNODE => torexit.dan.me.uk 34 | * UNSUBSCORE => ubl.unsubscore.com 35 | * DYNA_SPAMRATS => dyna.spamrats.com 36 | * NOPTR_SPAMRATS => noptr.spamrats.com 37 | * SPAM_SPAMRATS => spam.spamrats.com 38 | * CBL_ANTISPAM_ORG_CN => cbl.anti-spam.org.cn 39 | * CDL_ANTISPAM_ORG_CN => cdl.anti-spam.org.cn 40 | * SURRIEL => psbl.surriel.com 41 | * SPAMLAB => rbl.spamlab.com 42 | * BOGONS_CYMRU => bogons.cymru.com 43 | * RFC-IGNORANT => dsn.bl.rfc-ignorant.de 44 | 45 | Items 46 | ----- 47 | 48 | * Queries various DNS blacklists 49 | 50 | Triggers 51 | -------- 52 | 53 | * **[HIGH]** => Host is blacklisted on VIRBL 54 | * **[HIGH]** => Host is blacklisted on SPAMHAUS 55 | * **[HIGH]** => Host is blacklisted on URIBL 56 | * **[HIGH]** => Host is blacklisted on SURBL 57 | * **[HIGH]** => Host is blacklisted on NJABL 58 | * **[HIGH]** => Host is blacklisted on SPAMCOP 59 | * **[HIGH]** => Host is blacklisted on SORBS 60 | * **[HIGH]** => Host is blacklisted on AHBL 61 | * **[HIGH]** => Host is blacklisted on DRONEBL 62 | * **[HIGH]** => Host is blacklisted on BARRACUDA 63 | * **[HIGH]** => Host is blacklisted on DRONE_ABUSE_CH 64 | * **[HIGH]** => Host is blacklisted on HTTPBL_ABUSE_CH 65 | * **[HIGH]** => Host is blacklisted on SPAM_ABUSE_CH 66 | * **[HIGH]** => Host is blacklisted on MAILSHELL 67 | * **[HIGH]** => Host is blacklisted on CBL 68 | * **[HIGH]** => Host is blacklisted on RHSBL 69 | * **[HIGH]** => Host is blacklisted on FIVETENSG 70 | * **[HIGH]** => Host is blacklisted on INPS 71 | * **[HIGH]** => Host is blacklisted on MANITU 72 | * **[HIGH]** => Host is blacklisted on NOMOREFUN 73 | * **[HIGH]** => Host is blacklisted on SPAMCANNIBAL 74 | * **[HIGH]** => Host is blacklisted on UCEPROTECT1 75 | * **[HIGH]** => Host is blacklisted on UCEPROTECT2 76 | * **[HIGH]** => Host is blacklisted on UCEPROTECT3 77 | * **[HIGH]** => Host is blacklisted on WHITELIST 78 | * **[HIGH]** => Host is blacklisted on BACKSCATTERER 79 | * **[HIGH]** => Host is blacklisted on PROJECTHONEYPOT 80 | * **[HIGH]** => Host is blacklisted on TOREXITNODE 81 | * **[HIGH]** => Host is blacklisted on UNSUBSCORE 82 | * **[HIGH]** => Host is blacklisted on DYNA_SPAMRATS 83 | * **[HIGH]** => Host is blacklisted on NOPTR_SPAMRATS 84 | * **[HIGH]** => Host is blacklisted on SPAM_SPAMRATS 85 | * **[HIGH]** => Host is blacklisted on CBL_ANTISPAM_ORG_CN 86 | * **[HIGH]** => Host is blacklisted on CDL_ANTISPAM_ORG_CN 87 | * **[HIGH]** => Host is blacklisted on SURRIEL 88 | * **[HIGH]** => Host is blacklisted on SPAMLAB 89 | * **[HIGH]** => Host is blacklisted on BOGONS_CYMRU 90 | * **[HIGH]** => Host is blacklisted on RFC-IGNORANT 91 | 92 | Installation 93 | ------------ 94 | 95 | 1. Install [`rbl.check`](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/zbx-rblcheck) in the **ExternalScripts** directory of your Zabbix server and/or proxy. Check your `zabbix_server.conf` and/or `zabbix_proxy.conf` if in doubt. 96 | 2. Then `chmod a+x rbl.check` 97 | 3. Import **zbx-rblcheck.xml** file into Zabbix. 98 | 4. Associate **ZBX-RBLCHECK** template to the host. 99 | 100 | ### Requirements 101 | 102 | This template was tested for Zabbix 2.0.0 and higher. 103 | 104 | ###### [rbl.check](https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/rbl.check) 1.1 105 | 106 | This script queries DNS Blacklists for listings. 107 | 108 | License 109 | ------- 110 | 111 | This template is distributed 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. 112 | 113 | ### Copyright 114 | 115 | Copyright (c) Jean-Jacques Martrès 116 | 117 | ### Authors 118 | 119 | Jean-Jacques Martrès 120 | (jjmartres |at| gmail |dot| com) 121 | -------------------------------------------------------------------------------- /zbx-templates/zbx-smstools/README.md: -------------------------------------------------------------------------------- 1 | ZBX-SMSTOOLS 2 | ============ 3 | 4 | This template allow to manage SMSTOOLS. 5 | 6 | Items 7 | ----- 8 | 9 | * Number of checked SMS 10 | * Number of failed SMS 11 | * Number of incoming SMS 12 | * Number of outgoing SMS 13 | * Number of sent SMS 14 | 15 | Triggers 16 | -------- 17 | 18 | * **[WARNING]** => Failed to send some SMS 19 | 20 | Installation 21 | ------------ 22 | 23 | 1. Add the following line to your Zabbix agent configuration file. 24 | 25 | ``` 26 | EnableRemoteCommands=1 27 | UnsafeUserParameters=1 28 | UserParameter=smstools[*],ls /var/spool/sms/$1 | wc -l 29 | ``` 30 | 2. Import **zbx-smstools.xml** file into Zabbix. 31 | 3. Associate **ZBX-SMSTOOLS** template to the host. 32 | 33 | ### Requirements 34 | 35 | This template was tested for Zabbix 2.0.0 and higher. 36 | 37 | License 38 | ------- 39 | 40 | This template is distributed 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. 41 | 42 | ### Copyright 43 | 44 | Copyright (c) Jean-Jacques Martrès 45 | 46 | ### Authors 47 | 48 | Jean-Jacques Martrès 49 | (jjmartres |at| gmail |dot| com) 50 | -------------------------------------------------------------------------------- /zbx-templates/zbx-veeam/README.md: -------------------------------------------------------------------------------- 1 | ZBX-VEEAM-BACKUP 2 | ================ 3 | 4 | This template use the VEEAM Backup & Replication PowerShell Cmdlets to discover and manage VEEAM Backup job. 5 | 6 | Items 7 | ----- 8 | 9 | * Number of running jobs 10 | * Discovery : status for each jobs 11 | * Discovery : type for each jobs 12 | * Discovery : number of virtual machine in each jobs 13 | * Discovery : size included in each jobs 14 | * Discovery : size excluded in each jobs 15 | 16 | Triggers 17 | -------- 18 | 19 | * **[HIGH]** => Discovery: Job has FAILED 20 | * **[AVERAGE]** => Too many running jobs. Value is greater than macro {$VEEAM\_MAX\_RUNNING\_JOB} 21 | * **[WARNING]** => Discovery: Job has completed with WARNING 22 | 23 | Graphs 24 | ------ 25 | 26 | * Running VEEAM jobs 27 | * Discovery : size of each jobs 28 | 29 | Installation 30 | ------------ 31 | 32 | 1. Install the Zabbix agent on your host or download my automated package [`Zabbix agent`](https://github.com/jjmartres/Zabbix/tree/master/zbx-agent) 33 | 34 | If your choose to install the Zabbix agent from the source, you need to : 35 | 1. Install [`zabbix_vbr_job.ps1`](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-veeam/zabbix_vbr_job.ps1) in the script directory of your Zabbix agent. 36 | 2. Add the following line to your Zabbix agent configuration file. Note that `` is your Zabbix agent script path : 37 | 38 | ``` 39 | EnableRemoteCommands=1 40 | UnsafeUserParameters=1 41 | UserParameter=vbr[*],%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -nologo -command "& C:\Zabbix\zabbix\_vbr\_job.ps1" "$1" "$2" 42 | ``` 43 | 44 | 2. Add a value mapping named `vbrJobResult` with the following values: 45 | * 0 => Failed 46 | * 1 => Warning 47 | * 2 => Success 48 | 3. Add a value mapping named `vbrJobRunStatus` with the following values: 49 | * 0 => Stopped 50 | * 1 => Running 51 | 3. Import **zbx-veeam-backup.xml** file into Zabbix. 52 | 4. Add to your host the followed macro with value **{$VEEAM\_MAX\_RUNNING\_JOB}** 53 | 5. Associate **ZBX-VEEAM-BACKUP** template to the host. 54 | 55 | ### Requirements 56 | 57 | This template was tested for Zabbix 2.0.0 and higher. 58 | 59 | ###### [VEEAM Backup and Replication](http://www.veeam.com) 6.0 or higher 60 | 61 | License 62 | ------- 63 | 64 | This template is distributed 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. 65 | 66 | ### Copyright 67 | 68 | Copyright (c) Jean-Jacques Martrès 69 | 70 | ### Authors 71 | 72 | Jean-Jacques Martrès 73 | (jjmartres |at| gmail |dot| com) 74 | -------------------------------------------------------------------------------- /zbx-templates/zbx-veeam/zabbix_vbr_job.ps1: -------------------------------------------------------------------------------- 1 | # Script: Get-VBRJob 2 | # Author: Jean-Jacques Martr�s (jjmartres |at| gmail |dot| com) 3 | # Description: Query Veeam job information 4 | # License: GPL2 5 | # 6 | # This script is intended for use with Zabbix > 2.0 7 | # 8 | # RETURNED DATA: 9 | # 10 | # Id : 5e6063aa-49b1-4515-9711-01e6d3083443 11 | # Name : KHP-BCK-JOB-007 - MyJob 12 | # IsScheduleEnabled : True 13 | # 14 | # USAGE: 15 | # as a script: C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -command "& C:\Zabbix\zabbix_vbr_job.ps1 " 16 | # as an item: vbr[,] 17 | # 18 | # Add to Zabbix Agent 19 | # UserParameter=vbr[*],%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -nologo -command "& C:\Zabbix\zabbix_vbr_job.ps1 $1 $2" 20 | # 21 | $version = "1.0.4" 22 | 23 | $ITEM = [string]$args[0] 24 | $ID = [string]$args[1] 25 | 26 | #* Load Veeam snapin 27 | Add-PsSnapin -Name VeeamPSSnapIn -ErrorAction SilentlyContinue 28 | 29 | # Query VEEAM for Job. Include only enabled jobs 30 | switch ($ITEM) { 31 | "Discovery" { 32 | # Open JSON object 33 | $output = "{`"data`":[" 34 | $query = Get-VBRJob | Where-Object {$_.IsScheduleEnabled -eq "true"} | Select-Object Id,Name, IsScheduleEnabled 35 | $count = $query | Measure-Object 36 | $count = $count.count 37 | foreach ($object in $query) { 38 | $Id = [string]$object.Id 39 | $Name = [string]$object.Name 40 | $Schedule = [string]$object.IsScheduleEnabled 41 | if ($count -eq 1) { 42 | $output = $output + "{`"{#JOBID}`":`"$Id`",`"{#JOBNAME}`":`"$Name`",`"{#JOBSCHEDULED}`":`"$Schedule`"}" 43 | } else { 44 | $output = $output + "{`"{#JOBID}`":`"$Id`",`"{#JOBNAME}`":`"$Name`",`"{#JOBSCHEDULED}`":`"$Schedule`"}," 45 | } 46 | $count-- 47 | } 48 | # Close JSON object 49 | $output = $output + "]}" 50 | Write-Host $output 51 | } 52 | "Result" { 53 | $query = Get-VBRJob | Where-Object {$_.Id -like "*$ID*" -and $_.IsScheduleEnabled -eq "true"} 54 | if ($query) {switch ([string]$query.GetLastResult()) { 55 | "Failed" { 56 | return "0" 57 | } 58 | "Warning" { 59 | return "1" 60 | } 61 | default { 62 | return "2" 63 | } 64 | 65 | } 66 | } 67 | else {"2"} 68 | } 69 | "RunStatus" { 70 | $query = Get-VBRJob | Where-Object {$_.Id -like "*$ID*"} 71 | if ($query.IsRunning) { return "1" } else { return "0"} 72 | } 73 | "IncludedSize"{ 74 | $query = Get-VBRJob | Where-Object {$_.Id -like "*$ID*"} 75 | [string]$query.Info.IncludedSize 76 | } 77 | "ExcludedSize"{ 78 | $query = Get-VBRJob | Where-Object {$_.Id -like "*$ID*"} 79 | [string]$query.Info.ExcludedSize 80 | } 81 | "VmCount" { 82 | $query = Get-VBRBackup | Where-Object {$_.JobId -like "*$ID*"} 83 | [string]$query.VmCount 84 | } 85 | "Type" { 86 | $query = Get-VBRBackup | Where-Object {$_.JobId -like "*$ID*"} 87 | [string]$query.JobType 88 | } 89 | "RunningJob" { 90 | $query = Get-VBRBackupSession | where { $_.isCompleted -eq $false } | Measure 91 | if ($query) { 92 | [string]$query.Count 93 | } else { 94 | return "0" 95 | } 96 | } 97 | default { 98 | Write-Host "-- ERROR -- : Need an option to work !" 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /zbx-templates/zbx-vmware/README.md: -------------------------------------------------------------------------------- 1 | ZBX-VMWARE 2 | ========== 3 | 4 | This template can manage VMware vCenter (both VCSA and Windows version). If you want to manage VMware ESX(i) or vSphere infrastructure please take a look to [VIMbix](https://github.com/jjmartres/VIMbix) 5 | 6 | Items 7 | ----- 8 | 9 | * VMware vSphere Web Client Service Port 10 | * VMware vSphere Web Client Service 11 | * VMware vSphere Update Manager Service port 12 | * VMware vSphere Update Manager 13 | * VMware vSphere AutoDeploy Service Port 14 | * VMware vSphere AutoDeploy Service 15 | * VMware vCenter Single Sign On Service Port 16 | * VMware vCenter Single Sign On Service 17 | * VMware vCenter Server Service 18 | * VMware vCenter Server Port 19 | * VMware vCenter Inventory Service Port 20 | * VMware vCenter Inventory Service 21 | 22 | Triggers 23 | -------- 24 | 25 | * **[HIGH]** => VMware vCenter Single Sign On port is unreachable 26 | * **[HIGH]** => VMware vSphere Web Client service is down 27 | * **[HIGH]** => VMware vSphere Update Manager port is unreachable 28 | * **[HIGH]** => VMware vCenter AutoDeploy port is unreachable 29 | * **[HIGH]** => VMware vCenter AutoDeploy service is down 30 | * **[HIGH]** => VMware vSphere Web Client port is unreachable 31 | * **[HIGH]** => VMware vSphere Update Manager service is down 32 | * **[HIGH]** => VMware vCenter Inventory service is down 33 | * **[HIGH]** => VMware vCenter Inventory Service port is unreachable 34 | * **[HIGH]** => VMware vCenter Server port is unreachable 35 | **[HIGH]** => VMware vCenter Server service is down 36 | * **[HIGH]** => VMware vCenter Single Sign On service is down 37 | 38 | Installation 39 | ------------ 40 | 41 | 1. Import **zbx-vmware.xml** file into Zabbix. 42 | 2. Associate **ZBX-VMWARE-VCENTER** template to the host. 43 | 44 | ### Requirements 45 | 46 | This template was tested for Zabbix 2.0.0 and higher. 47 | 48 | License 49 | ------- 50 | 51 | This template is distributed 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. 52 | 53 | ### Copyright 54 | 55 | Copyright (c) Jean-Jacques Martrès 56 | 57 | ### Authors 58 | 59 | Jean-Jacques Martrès 60 | (jjmartres |at| gmail |dot| com) 61 | -------------------------------------------------------------------------------- /zbx-templates/zbx-windows/README.md: -------------------------------------------------------------------------------- 1 | ZBX-WINDOWS-TEMPLATES 2 | ===================== 3 | 4 | A collection of Zabbix templates to manage Windows based server. 5 | 6 | Templates 7 | --------- 8 | 9 | * [ZBX-WINDOWS-ENVMON](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-windows/zbx-windows-envmon) => use zabbix agent to discover and manage environmental Windows based server. 10 | * [ZBX-WINDOWS-MSSQL](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-windows/zbx-windows-mssql) => use zabbix agent to discover and manage SQL server. 11 | * [ZBX-WINDOWS-IIS](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-windows/zbx-windows-iis) => use zabbix agent to discover and manage IIS server. 12 | 13 | Requirements 14 | ------------ 15 | 16 | All this templates was tested for Zabbix 2.0.0 and higher. Please see individual template for requirements. 17 | 18 | License 19 | ------- 20 | 21 | This template is distributed 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. 22 | 23 | ### Copyright 24 | 25 | Copyright (c) Jean-Jacques Martrès 26 | 27 | ### Authors 28 | 29 | Jean-Jacques Martrès 30 | (jjmartres |at| gmail |dot| com) 31 | -------------------------------------------------------------------------------- /zbx-templates/zbx-windows/zbx-windows-envmon/zabbix_boot_time.vbs: -------------------------------------------------------------------------------- 1 | Set dtmLastBootUpTime = CreateObject("WbemScripting.SWbemDateTime") 2 | strComputer = "." 3 | Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 4 | Set objOS = objWMIService.ExecQuery( "Select * from Win32_OperatingSystem") 5 | For Each strOS in objOS 6 | dtmLastBootUpTime.Value = strOS.LastBootUpTime 7 | ' WScript.Echo dtmLastBootUpTime.GetVarDate(false) 8 | WScript.Echo DateDiff("s","01/01/1970 00:00:00", dtmLastBootUpTime.GetVarDate(false)) 9 | Next -------------------------------------------------------------------------------- /zbx-templates/zbx-windows/zbx-windows-envmon/zabbix_server_dns_config.vbs: -------------------------------------------------------------------------------- 1 | On Error Resume Next 2 | 3 | 'Bind to Shell 4 | Set objShell = WScript.CreateObject("WScript.Shell") 5 | 6 | 'Read Servers NetbiosName 7 | 'strComputer = objShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName\ComputerName") 8 | 9 | strComputer = "Computer Name!" 10 | wscript.echo strComputer 11 | 12 | Set objWMIService = GetObject("winmgmts:" _ 13 | & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 14 | Set colNicConfigs = objWMIService.ExecQuery _ 15 | ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") 16 | 17 | For Each objNicConfig In colNicConfigs 18 | If Not IsNull(objNicConfig.DNSServerSearchOrder) Then 19 | For Each strDNSServer In objNicConfig.DNSServerSearchOrder 20 | wscript.echo strDNSServer 21 | Next 22 | End If 23 | Next -------------------------------------------------------------------------------- /zbx-templates/zbx-windows/zbx-windows-envmon/zabbix_server_role.vbs: -------------------------------------------------------------------------------- 1 | strComputer = "." 2 | Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 3 | Set colRoleFeatures = objWMIService.ExecQuery ("Select * from Win32_ServerFeature") 4 | For Each objRoleFeatures in colRoleFeatures 5 | wscript.echo objRoleFeatures.Name 6 | Next -------------------------------------------------------------------------------- /zbx-templates/zbx-windows/zbx-windows-envmon/zabbix_server_serialnumber.vbs: -------------------------------------------------------------------------------- 1 | strComputer = "." 2 | Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 3 | Set colRoleFeatures = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem") 4 | For Each objRoleFeatures in colRoleFeatures 5 | wscript.echo objRoleFeatures.SerialNumber 6 | Next 7 | 8 | 9 | -------------------------------------------------------------------------------- /zbx-templates/zbx-windows/zbx-windows-envmon/zabbix_user_domain.vbs: -------------------------------------------------------------------------------- 1 | Set wshShell = WScript.CreateObject( "WScript.Shell" ) 2 | strUserDomain = wshShell.ExpandEnvironmentStrings( "%USERDOMAIN%" ) 3 | WScript.Echo strUserDomain -------------------------------------------------------------------------------- /zbx-templates/zbx-windows/zbx-windows-envmon/zabbix_wus_update_all.vbs: -------------------------------------------------------------------------------- 1 | Set updateSession = CreateObject("Microsoft.Update.Session") 2 | Set updateSearcher = updateSession.CreateupdateSearcher() 3 | Set searchResult = updateSearcher.Search("IsInstalled=0 and Type='Software'") 4 | WScript.Echo searchResult.Updates.Count -------------------------------------------------------------------------------- /zbx-templates/zbx-windows/zbx-windows-envmon/zabbix_wus_update_crit.vbs: -------------------------------------------------------------------------------- 1 | Set updateSession = CreateObject("Microsoft.Update.Session") 2 | Set updateSearcher = updateSession.CreateupdateSearcher() 3 | Set searchResult = updateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0 and Type='Software'") 4 | WScript.Echo searchResult.Updates.Count -------------------------------------------------------------------------------- /zbx-templates/zbx-windows/zbx-windows-iis/README.md: -------------------------------------------------------------------------------- 1 | ZBX-WINDOWS-IIS 2 | =============== 3 | 4 | This template use Zabbix agent to discover and manage IIS server. 5 | 6 | Items 7 | ----- 8 | 9 | * ASP.Net Total errors 10 | * ASP.Net Worker process restarts 11 | * ASP.Net Number of current requests 12 | * ASP.Net Application restarts 13 | * ASP.Net Requests/sec 14 | * IIS Current anonymous users 15 | * IIS Current connections 16 | * IIS Post requests/s 17 | * IIS Head requests/s 18 | * IIS Get requests/s 19 | * IIS Current nonanonymous users 20 | 21 | Triggers 22 | -------- 23 | 24 | * **[AVERAGE]** => IIS application pool restart on {HOST.NAME} 25 | 26 | Graphs 27 | ------ 28 | 29 | * IIS Counters overview 30 | 31 | Installation 32 | ------------ 33 | 34 | 1. Install the Zabbix agent on your host or download my automated package [`Zabbix agent`](https://github.com/jjmartres/Zabbix/tree/master/zbx-agent) 35 | 36 | If your choose to install the Zabbix agent from the source, you need to : 37 | 1. Add the following line to your Zabbix agent configuration file. Note that `` is your Zabbix agent script path : 38 | 39 | EnableRemoteCommands=1 40 | UnsafeUserParameters=1 41 | 42 | 2. Import **zbx-windows-iis.xml** file into Zabbix. 43 | 3. Associate **ZBX-WINDOWS-IIS** template to the host. 44 | 45 | ### Requirements 46 | 47 | This template was tested for Zabbix 2.0.0 and higher. 48 | 49 | ##### [Zabbix agent](http://www.zabbix.com) 2.0.x 50 | 51 | License 52 | ------- 53 | 54 | This template is distributed 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. 55 | 56 | ### Copyright 57 | 58 | Copyright (c) Jean-Jacques Martrès 59 | 60 | ### Authors 61 | 62 | Jean-Jacques Martrès 63 | (jjmartres |at| gmail |dot| com) 64 | -------------------------------------------------------------------------------- /zbx-templates/zbx-windows/zbx-windows-mssql/README.md: -------------------------------------------------------------------------------- 1 | ZBX-WINDOWS-MSSQL 2 | ================= 3 | 4 | This template use Zabbix agent to discover and manage SQL server. 5 | 6 | Items 7 | ----- 8 | 9 | * MSSQL server edition 10 | * MSSQL server product 11 | * MSSQL server version 12 | * MSSQL maximum DB size 13 | * Connection memory 14 | * Granted workspace memory 15 | * Lock blocks 16 | * Lock blocks allocated 17 | * Lock memory 18 | * Lock owner blocks 19 | * Lock owner blocks allocated 20 | * Maximum workspace memory 21 | * Memory grants outstanding 22 | * Memory grants pending 23 | * Optimizer memory 24 | * SQL cache memory 25 | * Target server memory 26 | * Total server memory 27 | * Discovery: Data file(s) size for each database 28 | * Discovery: Log file(s) size for each database 29 | * Discovery: Log file(s) used size for each database 30 | * Discovery: Percent log used for each database 31 | * Discovery: Log cache reads/sec for each database 32 | * Discovery: Transactions/sec for each database 33 | 34 | Triggers 35 | -------- 36 | 37 | * **[HIGH]** => Discovery : database exceed 90% of the maximum DB size for each database 38 | * **[AVERAGE]** => Discovery : database exceed 80% of the maximum DB size for each database 39 | * **[WARNING]** => Discovery : database exceed 80% of the maximum DB size for each database 40 | * **[INFORMATION]** => MSSQL server version was changed 41 | 42 | Graphs 43 | ------ 44 | 45 | * MSSQL server memory 46 | 47 | Installation 48 | ------------ 49 | 50 | 1. Install the Zabbix agent on your host or download my automated package [`Zabbix agent`](https://github.com/jjmartres/Zabbix/tree/master/zbx-agent) 51 | 2. Install [`zabbix_win_system_discovery.vbs`](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-windows/zbx-windows-envmon/zabbix_win_system_discovery.vbs) in the script directory of your Zabbix agent 52 | 3. Install [`zabbix_mssql_version.vbs`](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-windows/zbx-windows-mssql/zabbix_mssql_version.vbs) in the script directory of your Zabbix agent 53 | 4. Add the following line to your Zabbix agent configuration file. Note that `` is your Zabbix agent script path : 54 | 55 | EnableRemoteCommands=1 56 | UnsafeUserParameters=1 57 | UserParameter = system.discovery[*],%systemroot%\system32\cscript.exe /nologo /T:30 "\zabbix_win_system_discovery.vbs" "$1" 58 | UserParameter = mssql.version[*],%systemroot%\system32\cscript.exe /nologo /T:30 "\zabbix_mssql_version.vbs" 59 | 60 | 5. Import **zbx-windows-mssql.xml** file into Zabbix. 61 | 6. Associate **ZBX-WINDOWS-MSSQL** template to the host. 62 | 63 | ### Requirements 64 | 65 | This template was tested for Zabbix 2.0.0 and higher. 66 | 67 | ##### [Zabbix agent](http://www.zabbix.com) 2.0.x 68 | ##### [`zabbix_mssql_version.vbs`](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-windows/zbx-windows-envmon/zabbix_mssql_version.vbs) 1.0 69 | ##### [`zabbix_win_system_discovery.vbs`](https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-windows/zbx-windows-envmon/zabbix_win_system_discovery.vbs) 1.0 70 | 71 | License 72 | ------- 73 | 74 | This template is distributed 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. 75 | 76 | ### Copyright 77 | 78 | Copyright (c) Jean-Jacques Martrès 79 | 80 | ### Authors 81 | 82 | Jean-Jacques Martrès 83 | (jjmartres |at| gmail |dot| com) 84 | --------------------------------------------------------------------------------