initial version of SNMP trap daemon for Zabbix plugin
Change-Id: I4041c15fdf09af5944b75f142a5c374b24af380f
This commit is contained in:
parent
2f85e8d6a3
commit
8962ed0563
|
@ -0,0 +1,5 @@
|
|||
.build/
|
||||
*.noarch.rpm
|
||||
repositories/centos/*.rpm
|
||||
repositories/ubuntu/*.deb
|
||||
deployment_scripts/puppet/modules/snmp
|
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# Copyright 2015 Mirantis, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
include plugin_zabbix_snmptrapd
|
|
@ -0,0 +1,143 @@
|
|||
#! /bin/sh -e
|
||||
### BEGIN INIT INFO
|
||||
# Provides: snmpd snmptrapd
|
||||
# Required-Start: $network $remote_fs $syslog
|
||||
# Required-Stop: $network $remote_fs $syslog
|
||||
# Default-Start: 2 3 4 5
|
||||
# Default-Stop: 0 1 6
|
||||
# Short-Description: SNMP agents
|
||||
# Description: NET SNMP (Simple Network Management Protocol) Agents
|
||||
### END INIT INFO
|
||||
#
|
||||
# Author: Jochen Friedrich <jochen@scram.de>
|
||||
# Modified by: Piotr Misiak <pmisiak@mirantis.com> (network namespaces support added)
|
||||
#
|
||||
set -e
|
||||
|
||||
. /lib/lsb/init-functions
|
||||
|
||||
export PATH=/sbin:/usr/sbin:/bin:/usr/bin
|
||||
|
||||
# Defaults
|
||||
OLD_MIBS_DIR="/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp"
|
||||
MIBS_DIR="/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf"
|
||||
export MIBDIRS="$MIBS_DIR:$OLD_MIBS_DIR"
|
||||
|
||||
IP_BINARY="/sbin/ip"
|
||||
|
||||
SNMPD_BINARY="/usr/sbin/snmpd"
|
||||
SNMPD_PID="/run/snmpd.pid"
|
||||
SNMPDNS="haproxy"
|
||||
SNMPDRUN="yes"
|
||||
SNMPDOPTS="-Lsd -Lf /dev/null -p $SNMPD_PID"
|
||||
|
||||
TRAPD_BINARY="/usr/sbin/snmptrapd"
|
||||
TRAPD_PID="/run/snmptrapd.pid"
|
||||
TRAPDNS="haproxy"
|
||||
TRAPDRUN="no"
|
||||
TRAPDOPTS="-Lsd -p $TRAPD_PID"
|
||||
|
||||
# Reads config file (will override defaults above)
|
||||
[ -r /etc/default/snmpd ] && . /etc/default/snmpd
|
||||
|
||||
test -x $SNMPD_BINARY || exit 0
|
||||
test -x $TRAPD_BINARY || exit 0
|
||||
|
||||
if [ "x$SNMPDNS" != "x" ]; then
|
||||
SNMPDOPTS="netns exec $SNMPDNS $SNMPD_BINARY $SNMPDOPTS"
|
||||
SNMPDEXEC=$IP_BINARY
|
||||
else
|
||||
SNMPDEXEC=$SNMPD_BINARY
|
||||
fi
|
||||
|
||||
if [ "x$TRAPDNS" != "x" ]; then
|
||||
TRAPDOPTS="netns exec $TRAPDNS $TRAPD_BINARY $TRAPDOPTS"
|
||||
TRAPDEXEC=$IP_BINARY
|
||||
else
|
||||
TRAPDEXEC=$TRAPD_BINARY
|
||||
fi
|
||||
|
||||
# Cd to / before starting any daemons.
|
||||
cd /
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
log_daemon_msg "Starting network management services:"
|
||||
# remove old symlink with previous version
|
||||
if [ -L /var/run/agentx ]; then
|
||||
rm -f /var/run/agentx
|
||||
fi
|
||||
if [ ! -d /var/run/agentx ]; then
|
||||
mkdir -p /var/run/agentx
|
||||
fi
|
||||
if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then
|
||||
start-stop-daemon --quiet --start --oknodo --exec $SNMPDEXEC -- $SNMPDOPTS
|
||||
log_progress_msg " snmpd"
|
||||
fi
|
||||
if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
|
||||
start-stop-daemon --quiet --start --oknodo --exec $TRAPDEXEC -- $TRAPDOPTS
|
||||
log_progress_msg " snmptrapd"
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
log_daemon_msg "Stopping network management services:"
|
||||
start-stop-daemon --quiet --stop --oknodo --exec $SNMPD_BINARY && [ ! -f $SNMPD_PID ] || rm $SNMPD_PID
|
||||
log_progress_msg " snmpd"
|
||||
start-stop-daemon --quiet --stop --oknodo --exec $TRAPD_BINARY && [ ! -f $TRAPD_PID ] || rm $TRAPD_PID
|
||||
log_progress_msg " snmptrapd"
|
||||
;;
|
||||
restart)
|
||||
log_daemon_msg "Restarting network management services:"
|
||||
start-stop-daemon --quiet --stop --oknodo --exec $SNMPD_BINARY && [ ! -f $SNMPD_PID ] || rm $SNMPD_PID
|
||||
start-stop-daemon --quiet --stop --oknodo --exec $TRAPD_BINARY && [ ! -f $TRAPD_PID ] || rm $TRAPD_PID
|
||||
# Allow the daemons time to exit completely.
|
||||
set +e
|
||||
for i in `seq 0 10`; do
|
||||
pgrep -f $SNMPD_BINARY >/dev/null
|
||||
SNMPDSTATUS=$?
|
||||
pgrep -f $TRAPD_BINARY >/dev/null
|
||||
TRAPDSTATUS=$?
|
||||
if [ $SNMPDSTATUS -eq 1 -a $TRAPDSTATUS -eq 1 ]; then
|
||||
# both processes are not running
|
||||
break
|
||||
fi
|
||||
if [ $i -eq 10 ]; then
|
||||
log_failure_msg "ERROR: Network management services didn't stop within 10 seconds, exiting..."
|
||||
exit 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
set -e
|
||||
if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then
|
||||
start-stop-daemon --quiet --start --exec $SNMPDEXEC -- $SNMPDOPTS
|
||||
log_progress_msg " snmpd"
|
||||
fi
|
||||
if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
|
||||
start-stop-daemon --quiet --start --exec $TRAPDEXEC -- $TRAPDOPTS
|
||||
log_progress_msg " snmptrapd"
|
||||
fi
|
||||
;;
|
||||
reload|force-reload)
|
||||
log_daemon_msg "Reloading network management services:"
|
||||
if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then
|
||||
start-stop-daemon --quiet --stop --signal 1 \
|
||||
--pidfile /var/run/snmpd.pid --exec $SNMPD_BINARY
|
||||
log_progress_msg " snmpd"
|
||||
fi
|
||||
;;
|
||||
status)
|
||||
status=0
|
||||
if [ "$SNMPDRUN" = "yes" -a -f /etc/snmp/snmpd.conf ]; then
|
||||
status_of_proc $SNMPD_BINARY snmpd || status=$?
|
||||
fi
|
||||
if [ "$TRAPDRUN" = "yes" -a -f /etc/snmp/snmptrapd.conf ]; then
|
||||
status_of_proc $TRAPD_BINARY snmptrapd || status=$?
|
||||
fi
|
||||
exit $status
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /etc/init.d/snmpd {start|stop|restart|reload|force-reload|status}"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,110 @@
|
|||
#!/bin/bash
|
||||
|
||||
# ucd-snmp init file for snmptrapd
|
||||
#
|
||||
# chkconfig: - 50 50
|
||||
# description: Simple Network Management Protocol (SNMP) Trap Daemon
|
||||
#
|
||||
# processname: /usr/sbin/snmptrapd
|
||||
# config: /etc/snmp/snmptrapd.conf
|
||||
# config: /usr/share/snmp/snmptrapd.conf
|
||||
# pidfile: /var/run/snmptrapd.pid
|
||||
|
||||
|
||||
### BEGIN INIT INFO
|
||||
# Provides: snmptrapd
|
||||
# Required-Start: $local_fs $network
|
||||
# Required-Stop: $local_fs $network
|
||||
# Should-Start:
|
||||
# Should-Stop:
|
||||
# Default-Start:
|
||||
# Default-Stop:
|
||||
# Short-Description: start and stop Net-SNMP trap daemon
|
||||
# Description: Simple Network Management Protocol (SNMP) trap daemon
|
||||
### END INIT INFO
|
||||
|
||||
# source function library
|
||||
. /etc/init.d/functions
|
||||
|
||||
NS="haproxy"
|
||||
OPTIONS="-Lsd -p /var/run/snmptrapd.pid"
|
||||
if [ -e /etc/sysconfig/snmptrapd ]; then
|
||||
. /etc/sysconfig/snmptrapd
|
||||
fi
|
||||
|
||||
RETVAL=0
|
||||
prog="snmptrapd"
|
||||
binary=/usr/sbin/snmptrapd
|
||||
pidfile=/var/run/snmptrapd.pid
|
||||
|
||||
if [ "x$NS" != "x" ]; then
|
||||
cmd="/sbin/ip netns exec $NS $binary"
|
||||
else
|
||||
cmd=$binary
|
||||
fi
|
||||
|
||||
start() {
|
||||
[ -x $binary ] || exit 5
|
||||
echo -n $"Starting $prog: "
|
||||
daemon --pidfile=$pidfile $cmd $OPTIONS
|
||||
RETVAL=$?
|
||||
echo
|
||||
touch /var/lock/subsys/snmptrapd
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo -n $"Stopping $prog: "
|
||||
killproc -p $pidfile $binary
|
||||
RETVAL=$?
|
||||
echo
|
||||
rm -f /var/lock/subsys/snmptrapd
|
||||
return $RETVAL
|
||||
}
|
||||
|
||||
reload(){
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
restart(){
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
condrestart(){
|
||||
[ -e /var/lock/subsys/snmptrapd ] && restart
|
||||
return 0
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
RETVAL=$?
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
RETVAL=$?
|
||||
;;
|
||||
restart)
|
||||
restart
|
||||
RETVAL=$?
|
||||
;;
|
||||
reload|force-reload)
|
||||
reload
|
||||
RETVAL=$?
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
condrestart
|
||||
RETVAL=$?
|
||||
;;
|
||||
status)
|
||||
status $prog
|
||||
RETVAL=$?
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload}"
|
||||
RETVAL=2
|
||||
esac
|
||||
|
||||
exit $RETVAL
|
|
@ -0,0 +1,2 @@
|
|||
EVENT netSnmpExampleHeartbeatNotification .1.3.6.1.4.1.8072.2.3.0.1 "Status Events" Normal
|
||||
FORMAT ZBXTRAP $aA netSnmpExampleHeartbeatNotification
|
|
@ -0,0 +1,626 @@
|
|||
#
|
||||
# SNMPTT v1.4 Configuration File
|
||||
#
|
||||
# Linux / Unix
|
||||
#
|
||||
|
||||
[General]
|
||||
# Name of this system for $H variable. If blank, system name will be the computer's
|
||||
# hostname via Sys::Hostname.
|
||||
snmptt_system_name =
|
||||
|
||||
# Set to either 'standalone' or 'daemon'
|
||||
# standalone: snmptt called from snmptrapd.conf
|
||||
# daemon: snmptrapd.conf calls snmptthandler
|
||||
# Ignored by Windows. See documentation
|
||||
mode = standalone
|
||||
|
||||
# Set to 1 to allow multiple trap definitions to be executed for the same trap.
|
||||
# Set to 0 to have it stop after the first match.
|
||||
# This option should normally be set to 1. See the section 'SNMPTT.CONF Configuration
|
||||
# file Notes' in the SNMPTT documentation for more information.
|
||||
# Note: Wildcard matches are only matched if there are NO exact matches. This takes
|
||||
# into consideration the NODES list. Therefore, if there is a matching trap, but
|
||||
# the NODES list prevents it from being considered a match, the wildcard entry will
|
||||
# only be used if there are no other exact matches.
|
||||
multiple_event = 1
|
||||
|
||||
# SNMPTRAPD passes the IP address of device sending the trap, and the IP address of the
|
||||
# actual SNMP agent. These addresses could differ if the trap was sent on behalf of another
|
||||
# device (relay, proxy etc).
|
||||
# If DNS is enabled, the agent IP address is converted to a host name using a DNS lookup
|
||||
# (which includes the local hosts file, depending on how the OS is configured). This name
|
||||
# will be used for: NODES entry matches, hostname field in logged traps (file / database),
|
||||
# and the $A variable. Host names on the NODES line will be resolved and the IP address
|
||||
# will then be used for comparing.
|
||||
# Set to 0 to disable DNS resolution
|
||||
# Set to 1 to enable DNS resolution
|
||||
dns_enable = 0
|
||||
|
||||
# Set to 0 to enable the use of FQDN (Fully Qualified Domain Names). If a host name is
|
||||
# passed to SNMPTT that contains a domain name, it will not be altered in any way by
|
||||
# SNMPTT. This also affects resolve_value_ip_addresses.
|
||||
# Set to 1 to have SNMPTT strip the domain name from the host name passed to it. For
|
||||
# example, server01.domain.com would be changed to server01
|
||||
# Set to 2 to have SNMPTT strip the domain name from the host name passed to it
|
||||
# based on the list of domains in strip_domain_list
|
||||
strip_domain = 0
|
||||
|
||||
# List of domain names that should be stripped when strip_domain is set to 2.
|
||||
# List can contain one or more domains. For example, if the FQDN of a host is
|
||||
# server01.city.domain.com and the list contains domain.com, the 'host' will be
|
||||
# set as server01.city.
|
||||
strip_domain_list = <<END
|
||||
domain.com
|
||||
END
|
||||
|
||||
# Configures how IP addresses contained in the VALUE of the variable bindings are handled.
|
||||
# This only applies to the values for $n, $+n, $-n, $vn, $+*, $-*.
|
||||
# Set to 0 to disable resolving ip address to host names
|
||||
# Set to 1 to enable resolving ip address to host names
|
||||
# Note: net_snmp_perl_enable *must* be enabled. The strip_domain settings influence the
|
||||
# format of the resolved host name. DNS must be enabled (dns_enable)
|
||||
resolve_value_ip_addresses = 0
|
||||
|
||||
# Set to 1 to enable the use of the Perl module from the UCD-SNMP / NET-SNMP package.
|
||||
# This is required for $v variable substitution to work, and also for some other options
|
||||
# that are enabled in this .ini file.
|
||||
# Set to 0 to disable the use of the Perl module from the UCD-SNMP / NET-SNMP package.
|
||||
# Note: Enabling this with stand-alone mode can cause SNMPTT to run very slowly due to
|
||||
# the loading of the MIBS at startup.
|
||||
net_snmp_perl_enable = 1
|
||||
|
||||
# Set to 1 to enable caching of OID and ENUM translations when net_snmp_perl_enable is
|
||||
# enabled. Enabling this should result in faster translations.
|
||||
# Set to 0 to disable caching.
|
||||
# Note: Restart SNMPTT after updating the MIB files for Net-SNMP, otherwise the cache may
|
||||
# contain inaccurate data. Defaults to 1.
|
||||
net_snmp_perl_cache_enable = 1
|
||||
|
||||
# This sets the best_guess parameter used by the UCD-SNMP / NET-SNMP Perl module for
|
||||
# translating symbolic nams to OIDs and vice versa.
|
||||
# For UCD-SNMP, and Net-SNMP 5.0.8 and previous versions, set this value to 0.
|
||||
# For Net-SNMP 5.0.9, or any Net-SNMP with patch 722075 applied, set this value to 2.
|
||||
# A value of 2 is equivalent to -IR on Net-SNMP command line utilities.
|
||||
# UCD-SNMP and Net-SNMP 5.0.8 and previous may not be able to translate certain formats of
|
||||
# symbolic names such as RFC1213-MIB::sysDescr. Net-SNMP 5.0.9 or patch 722075 will allow
|
||||
# all possibilities to be translated. See the FAQ section in the README for more info
|
||||
net_snmp_perl_best_guess = 0
|
||||
|
||||
# Configures how the OID of the received trap is handled when outputting to a log file /
|
||||
# database. It does NOT apply to the $O variable.
|
||||
# Set to 0 to use the default of numerical OID
|
||||
# Set to 1 to translate the trap OID to short text (symbolic form) (eg: linkUp)
|
||||
# Set to 2 to translate the trap OID to short text with module name (eg: IF-MIB::linkUp)
|
||||
# Set to 3 to translate the trap OID to long text (eg: iso...snmpTraps.linkUp)
|
||||
# Set to 4 to translate the trap OID to long text with module name (eg:
|
||||
# IF-MIB::iso...snmpTraps.linkUp)
|
||||
# Note: -The output of the long format will vary depending on the version of Net-SNMP you
|
||||
# are using.
|
||||
# -net_snmp_perl_enable *must* be enabled
|
||||
# -If using database logging, ensure the trapoid column is large enough to hold the
|
||||
# entire line
|
||||
translate_log_trap_oid = 0
|
||||
|
||||
# Configures how OIDs contained in the VALUE of the variable bindings are handled.
|
||||
# This only applies to the values for $n, $+n, $-n, $vn, $+*, $-*. For substitutions
|
||||
# that include variable NAMES ($+n etc), only the variable VALUE is affected.
|
||||
# Set to 0 to disable translating OID values to text (symbolic form)
|
||||
# Set to 1 to translate OID values to short text (symbolic form) (eg: BuildingAlarm)
|
||||
# Set to 2 to translate OID values to short text with module name (eg: UPS-MIB::BuildingAlarm)
|
||||
# Set to 3 to translate OID values to long text (eg: iso...upsAlarm.BuildingAlarm)
|
||||
# Set to 4 to translate OID values to long text with module name (eg:
|
||||
# UPS-MIB::iso...upsAlarm.BuildingAlarm)
|
||||
# For example, if the value contained: 'A UPS Alarm (.1.3.6.1.4.1.534.1.7.12) has cleared.',
|
||||
# it could be translated to: 'A UPS Alarm (UPS-MIB::BuildingAlarm) has cleared.'
|
||||
# Note: net_snmp_perl_enable *must* be enabled
|
||||
translate_value_oids = 1
|
||||
|
||||
# Configures how the symbolic enterprise OID will be displayed for $E.
|
||||
# Set to 1, 2, 3 or 4. See translate_value_oids options 1,2,3 and 4.
|
||||
# Note: net_snmp_perl_enable *must* be enabled
|
||||
translate_enterprise_oid_format = 1
|
||||
|
||||
# Configures how the symbolic trap OID will be displayed for $O.
|
||||
# Set to 1, 2, 3 or 4. See translate_value_oids options 1,2,3 and 4.
|
||||
# Note: net_snmp_perl_enable *must* be enabled
|
||||
translate_trap_oid_format = 1
|
||||
|
||||
# Configures how the symbolic trap OID will be displayed for $v, $-n, $+n, $-* and $+*.
|
||||
# Set to 1, 2, 3 or 4. See translate_value_oids options 1,2,3 and 4.
|
||||
# Note: net_snmp_perl_enable *must* be enabled
|
||||
translate_varname_oid_format = 1
|
||||
|
||||
# Set to 0 to disable converting INTEGER values to enumeration tags as defined in the
|
||||
# MIB files
|
||||
# Set to 1 to enable converting INTEGER values to enumeration tags as defined in the
|
||||
# MIB files
|
||||
# Example: moverDoorState:open instead of moverDoorState:2
|
||||
# Note: net_snmp_perl_enable *must* be enabled
|
||||
translate_integers = 1
|
||||
|
||||
# Allows you to set the MIBS environment variable used by SNMPTT
|
||||
# Leave blank or comment out to have the systems enviroment settings used
|
||||
# To have all MIBS processed, set to ALL
|
||||
# See the snmp.conf manual page for more info
|
||||
#mibs_environment = ALL
|
||||
|
||||
# Set what is used to separate variables when wildcards are expanded on the FORMAT /
|
||||
# EXEC line. Defaults to a space. Value MUST be within quotes. Can contain 1 or
|
||||
# more characters
|
||||
wildcard_expansion_separator = " "
|
||||
|
||||
# Set to 1 to allow unsafe REGEX code to be executed.
|
||||
# Set to 0 to prevent unsafe REGEX code from being executed (default).
|
||||
# Enabling unsafe REGEX code will allow variable interopolation and the use of the e
|
||||
# modifier to allow statements such as substitution with captures such
|
||||
# as: (one (two) three)(five $1 six)
|
||||
# which outputs: five two six
|
||||
# or: (one (two) three)("five ".length($1)." six")e
|
||||
# which outputs: five 3 six
|
||||
#
|
||||
# This is considered unsafe because the contents of the regular expression
|
||||
# (right) is executed (eval) by Perl which *could contain unsafe code*.
|
||||
# BE SURE THAT THE SNMPTT CONFIGURATION FILES ARE SECURE!
|
||||
allow_unsafe_regex = 0
|
||||
|
||||
# Set to 1 to have the backslash (escape) removed from quotes passed from
|
||||
# snmptrapd. For example, \" would be changed to just "
|
||||
# Set to 0 to disable
|
||||
remove_backslash_from_quotes = 0
|
||||
|
||||
# Set to 1 to have NODES files loaded each time a trap is processed.
|
||||
# Set to 0 to have all NODES files loaded when the snmptt.conf files are loaded.
|
||||
# If NODES files are used (files that contain lists of NODES), then setting to 1
|
||||
# will cause the list to be loaded each time an EVENT is processed that uses
|
||||
# NODES files. This will allow the NODES file to be modified while SNMPTT is
|
||||
# running but can result in many file reads depending on the number of traps
|
||||
# received. Defaults to 0
|
||||
dynamic_nodes = 0
|
||||
|
||||
# This option allows you to use the $D substitution variable to include the
|
||||
# description text from the SNMPTT.CONF or MIB files.
|
||||
# Set to 0 to disable the $D substitution variable. If $D is used, nothing
|
||||
# will be outputted.
|
||||
# Set to 1 to enable the $D substitution variable and have it use the
|
||||
# descriptions stored in the SNMPTT .conf files. Enabling this option can
|
||||
# greatly increase the amount of memory used by SNMPTT.
|
||||
# Set to 2 to enable the $D substitution variable and have it use the
|
||||
# description from the MIB files. This enables the UCD-SNMP / NET-SNMP Perl
|
||||
# module save_descriptions variable. Enabling this option can greatly
|
||||
# increase the amount of memory used by the Net-SNMP SNMP Perl module, which
|
||||
# will result in an increase of memory usage by SNMPTT.
|
||||
description_mode = 0
|
||||
|
||||
# Set to 1 to remove any white space at the start of each line from the MIB
|
||||
# or SNMPTT.CONF description when description_mode is set to 1 or 2.
|
||||
description_clean = 1
|
||||
|
||||
# Warning: Experimental. Not recommended for production environments.
|
||||
# When threads are enabled, SNMPTT may quit unexpectedly.
|
||||
# Set to 1 to enable threads (ithreads) in Perl 5.6.0 or higher. If enabled,
|
||||
# EXEC will launch in a thread to allow SNMPTT to continue processing other
|
||||
# traps. See also threads_max.
|
||||
# Set to 0 to disable threads (ithreads).
|
||||
# Defaults to 0
|
||||
threads_enable = 0
|
||||
|
||||
# Warning: Experimental. Not recommended for production environments.
|
||||
# When threads are enabled, SNMPTT may quit unexpectedly.
|
||||
# This option allows you to set the maximum number of threads that will
|
||||
# execute at once. Defaults to 10
|
||||
threads_max = 10
|
||||
|
||||
# The date format for $x in strftime() format. If not defined, defaults
|
||||
# to %a %b %e %Y.
|
||||
#date_format = %a %b %e %Y
|
||||
|
||||
# The time format for $X in strftime() format. If not defined, defaults
|
||||
# to %H:%M:%S.
|
||||
#time_format = %H:%M:%S
|
||||
|
||||
# The date time format in strftime() format for the date/time when logging
|
||||
# to standard output, snmptt log files (log_file) and the unknown log file
|
||||
# (unknown_trap_log_file). Defaults to localtime(). For SQL, see
|
||||
# date_time_format_sql.
|
||||
# Example: %a %b %e %Y %H:%M:%S
|
||||
date_time_format = %H:%M:%S %Y/%m/%d
|
||||
|
||||
[DaemonMode]
|
||||
# Set to 1 to have snmptt fork to the background when run in daemon mode
|
||||
# Ignored by Windows. See documentation
|
||||
daemon_fork = 1
|
||||
|
||||
# Set to the numerical user id (eg: 500) or textual user id (eg: snmptt)
|
||||
# that snmptt should change to when running in daemon mode. Leave blank
|
||||
# to disable. The user used should have read/write access to all log
|
||||
# files, the spool folder, and read access to the configuration files.
|
||||
# Only use this if you are starting snmptt as root.
|
||||
# A second (child) process will be started as the daemon_uid user so
|
||||
# there will be two snmptt processes running. The first process will
|
||||
# continue to run as the user that ran snmptt (root), waiting for the
|
||||
# child to quit. After the child quits, the parent process will remove
|
||||
# the snmptt.pid file and exit.
|
||||
daemon_uid = snmptt
|
||||
|
||||
# Complete path of file to store process ID when running in daemon mode.
|
||||
pid_file = /var/run/snmptt.pid
|
||||
|
||||
# Directory to read received traps from. Ex: /var/spool/snmptt/
|
||||
# Don't forget the trailing slash!
|
||||
spool_directory = /var/spool/snmptt/
|
||||
|
||||
# Amount of time in seconds to sleep between processing spool files
|
||||
sleep = 5
|
||||
|
||||
# Set to 1 to have SNMPTT use the time that the trap was processed by SNMPTTHANDLER
|
||||
# Set to 0 to have SNMPTT use the time the trap was processed. Note: Using 0 can
|
||||
# result in the time being off by the number of seconds used for 'sleep'
|
||||
use_trap_time = 1
|
||||
|
||||
# Set to 0 to have SNMPTT erase the spooled trap file after it attempts to process
|
||||
# the trap even if it did not successfully log the trap to any of the log systems.
|
||||
# Set to 1 to have SNMPTT erase the spooled trap file only after it successfully
|
||||
# logs to at least ONE log system.
|
||||
# Set to 2 to have SNMPTT erase the spooled trap file only after it successfully
|
||||
# logs to ALL of the enabled log systems. Warning: If multiple log systems are
|
||||
# enabled and only one fails, the other log system will continuously be logged to
|
||||
# until ALL of the log systems function.
|
||||
# The recommended setting is 1 with only one log system enabled.
|
||||
keep_unlogged_traps = 1
|
||||
|
||||
# How often duplicate traps will be processed. An MD5 hash of all incoming traps
|
||||
# is stored in memory and is used to check for duplicates. All variables except for
|
||||
# the uptime variable are used when calculating the MD5. The larger this variable,
|
||||
# the more memory snmptt will require.
|
||||
# Note: In most cases it may be a good idea to enable this but sometimes it can have a
|
||||
# negative effect. For example, if you are trying to troubleshoot a wireless device
|
||||
# that keeps losing it's connection you may want to disable this so that you see
|
||||
# all the associations and disassociations.
|
||||
# 5 minutes = 300
|
||||
# 10 minutes = 600
|
||||
# 15 minutes = 900
|
||||
duplicate_trap_window = 0
|
||||
|
||||
[Logging]
|
||||
# Set to 1 to enable messages to be sent to standard output, or 0 to disable.
|
||||
# Would normally be disabled unless you are piping this program to another
|
||||
stdout_enable = 0
|
||||
|
||||
# Set to 1 to enable text logging of *TRAPS*. Make sure you specify a log_file
|
||||
# location
|
||||
log_enable = 1
|
||||
|
||||
# Log file location. The COMPLETE path and filename. Ex: '/var/log/snmptt/snmptt.log'
|
||||
log_file = /var/log/snmptt/snmptt.log
|
||||
|
||||
# Set to 1 to enable text logging of *SNMPTT system errors*. Make sure you
|
||||
# specify a log_system_file location
|
||||
log_system_enable = 1
|
||||
|
||||
# Log file location. The COMPLETE path and filename.
|
||||
# Ex: '/var/log/snmptt/snmpttsystem.log'
|
||||
log_system_file = /var/log/snmptt/snmpttsystem.log
|
||||
|
||||
# Set to 1 to enable logging of unknown traps. This should normally be left off
|
||||
# as the file could grow large quickly. Used primarily for troubleshooting. If
|
||||
# you have defined a trap in snmptt.conf, but it is not executing, enable this to
|
||||
# see if it is being considered an unknown trap due to an incorrect entry or
|
||||
# simply missing from the snmptt.conf file.
|
||||
# Unknown traps can be logged either a text file, a SQL table or both.
|
||||
# See SQL section to define a SQL table to log unknown traps to.
|
||||
unknown_trap_log_enable = 0
|
||||
|
||||
# Unknown trap log file location. The COMPLETE path and filename.
|
||||
# Ex: '/var/log/snmptt/snmpttunknown.log'
|
||||
# Leave blank to disable logging to text file if logging to SQL is enabled
|
||||
# for unknown traps
|
||||
unknown_trap_log_file = /var/log/snmptt/snmpttunknown.log
|
||||
|
||||
# How often in seconds statistics should be logged to syslog or the event log.
|
||||
# Set to 0 to disable
|
||||
# 1 hour = 216000
|
||||
# 12 hours = 2592000
|
||||
# 24 hours = 5184000
|
||||
statistics_interval = 0
|
||||
|
||||
# Set to 1 to enable logging of *TRAPS* to syslog. If you do not have the Sys::Syslog
|
||||
# module then disable this. Windows users should disable this.
|
||||
syslog_enable = 1
|
||||
|
||||
# Syslog facility to use for logging of *TRAPS*. For example: 'local0'
|
||||
syslog_facility = local0
|
||||
|
||||
# Set the syslog level for *TRAPS* based on the severity level of the trap
|
||||
# as defined in the snmptt.conf file. Values must be one per line between
|
||||
# the syslog_level_* and END lines, and are not case sensitive. For example:
|
||||
# Warning
|
||||
# Critical
|
||||
# Duplicate definitions will use the definition with the higher severity.
|
||||
syslog_level_debug = <<END
|
||||
END
|
||||
syslog_level_info = <<END
|
||||
END
|
||||
syslog_level_notice = <<END
|
||||
END
|
||||
syslog_level_warning = <<END
|
||||
END
|
||||
syslog_level_err = <<END
|
||||
END
|
||||
syslog_level_crit = <<END
|
||||
END
|
||||
syslog_level_alert = <<END
|
||||
END
|
||||
|
||||
# Syslog default level to use for logging of *TRAPS*. For example: warning
|
||||
# Valid values: emerg, alert, crit, err, warning, notice, info, debug
|
||||
syslog_level = warning
|
||||
|
||||
# Set to 1 to enable logging of *SNMPTT system errors* to syslog. If you do not have the
|
||||
# Sys::Syslog module then disable this. Windows users should disable this.
|
||||
syslog_system_enable = 1
|
||||
|
||||
# Syslog facility to use for logging of *SNMPTT system errors*. For example: 'local0'
|
||||
syslog_system_facility = local0
|
||||
|
||||
# Syslog level to use for logging of *SNMPTT system errors*.. For example: 'warning'
|
||||
# Valid values: emerg, alert, crit, err, warning, notice, info, debug
|
||||
syslog_system_level = warning
|
||||
|
||||
[SQL]
|
||||
# Determines if the enterprise column contains the numeric OID or symbolic OID
|
||||
# Set to 0 for numeric OID
|
||||
# Set to 1 for symbolic OID
|
||||
# Uses translate_enterprise_oid_format to determine format
|
||||
# Note: net_snmp_perl_enable *must* be enabled
|
||||
db_translate_enterprise = 0
|
||||
|
||||
# FORMAT line to use for unknown traps. If not defined, defaults to $-*.
|
||||
db_unknown_trap_format = '$-*'
|
||||
|
||||
# List of custom SQL column names and values for the table of received traps
|
||||
# (defined by *_table below). The format is
|
||||
# column name
|
||||
# value
|
||||
#
|
||||
# For example:
|
||||
#
|
||||
# binding_count
|
||||
# $#
|
||||
# uptime2
|
||||
# The agent has been up for $T.
|
||||
sql_custom_columns = <<END
|
||||
END
|
||||
|
||||
# List of custom SQL column names and values for the table of unknown traps
|
||||
# (defined by *_table_unknown below). See sql_custom_columns for the format.
|
||||
sql_custom_columns_unknown = <<END
|
||||
END
|
||||
|
||||
# MySQL: Set to 1 to enable logging to a MySQL database via DBI (Linux / Windows)
|
||||
# This requires DBI:: and DBD::mysql
|
||||
mysql_dbi_enable = 0
|
||||
|
||||
# MySQL: Hostname of database server (optional - default localhost)
|
||||
mysql_dbi_host = localhost
|
||||
|
||||
# MySQL: Port number of database server (optional - default 3306)
|
||||
mysql_dbi_port = 3306
|
||||
|
||||
# MySQL: Database to use
|
||||
mysql_dbi_database = snmptt
|
||||
|
||||
# MySQL: Table to use
|
||||
mysql_dbi_table = snmptt
|
||||
|
||||
# MySQL: Table to use for unknown traps
|
||||
# Leave blank to disable logging of unknown traps to MySQL
|
||||
# Note: unknown_trap_log_enable must be enabled.
|
||||
mysql_dbi_table_unknown = snmptt_unknown
|
||||
|
||||
# MySQL: Table to use for statistics
|
||||
# Note: statistics_interval must be set. See also stat_time_format_sql.
|
||||
#mysql_dbi_table_statistics = snmptt_statistics
|
||||
mysql_dbi_table_statistics =
|
||||
|
||||
# MySQL: Username to use
|
||||
mysql_dbi_username = snmpttuser
|
||||
|
||||
# MySQL: Password to use
|
||||
mysql_dbi_password = password
|
||||
|
||||
# MySQL: Whether or not to 'ping' the database before attempting an INSERT
|
||||
# to ensure the connection is still valid. If *any* error is generate by
|
||||
# the ping such as 'Unable to connect to database', it will attempt to
|
||||
# re-create the database connection.
|
||||
# Set to 0 to disable
|
||||
# Set to 1 to enable
|
||||
# Note: This has no effect on mysql_ping_interval.
|
||||
mysql_ping_on_insert = 1
|
||||
|
||||
# MySQL: How often in seconds the database should be 'pinged' to ensure the
|
||||
# connection is still valid. If *any* error is generate by the ping such as
|
||||
# 'Unable to connect to database', it will attempt to re-create the database
|
||||
# connection. Set to 0 to disable pinging.
|
||||
# Note: This has no effect on mysql_ping_on_insert.
|
||||
# disabled = 0
|
||||
# 5 minutes = 300
|
||||
# 15 minutes = 900
|
||||
# 30 minutes = 1800
|
||||
mysql_ping_interval = 300
|
||||
|
||||
# PostgreSQL: Set to 1 to enable logging to a PostgreSQL database via DBI (Linux / Windows)
|
||||
# This requires DBI:: and DBD::PgPP
|
||||
postgresql_dbi_enable = 0
|
||||
|
||||
# Set to 0 to use the DBD::PgPP module
|
||||
# Set to 1 to use the DBD::Pg module
|
||||
postgresql_dbi_module = 0
|
||||
|
||||
# Set to 0 to disable host and port network support
|
||||
# Set to 1 to enable host and port network support
|
||||
# If set to 1, ensure PostgreSQL is configured to allow connections via TCPIP by setting
|
||||
# tcpip_socket = true in the $PGDATA/postgresql.conf file, and adding the ip address of
|
||||
# the SNMPTT server to $PGDATApg_hba.conf. The common location for the config files for
|
||||
# RPM installations of PostgreSQL is /var/lib/pgsql/data.
|
||||
postgresql_dbi_hostport_enable = 0
|
||||
|
||||
# PostgreSQL: Hostname of database server (optional - default localhost)
|
||||
postgresql_dbi_host = localhost
|
||||
|
||||
# PostgreSQL: Port number of database server (optional - default 5432)
|
||||
postgresql_dbi_port = 5432
|
||||
|
||||
# PostgreSQL: Database to use
|
||||
postgresql_dbi_database = snmptt
|
||||
|
||||
# PostgreSQL: Table to use for unknown traps
|
||||
# Leave blank to disable logging of unknown traps to PostgreSQL
|
||||
# Note: unknown_trap_log_enable must be enabled.
|
||||
postgresql_dbi_table_unknown = snmptt_unknown
|
||||
|
||||
# PostgreSQL: Table to use for statistics
|
||||
# Note: statistics_interval must be set. See also stat_time_format_sql.
|
||||
#postgresql_dbi_table_statistics = snmptt_statistics
|
||||
postgresql_dbi_table_statistics =
|
||||
|
||||
# PostgreSQL: Table to use
|
||||
postgresql_dbi_table = snmptt
|
||||
|
||||
# PostgreSQL: Username to use
|
||||
postgresql_dbi_username = snmpttuser
|
||||
|
||||
# PostgreSQL: Password to use
|
||||
postgresql_dbi_password = password
|
||||
|
||||
# PostgreSQL: Whether or not to 'ping' the database before attempting an INSERT
|
||||
# to ensure the connection is still valid. If *any* error is generate by
|
||||
# the ping such as 'Unable to connect to database', it will attempt to
|
||||
# re-create the database connection.
|
||||
# Set to 0 to disable
|
||||
# Set to 1 to enable
|
||||
# Note: This has no effect on postgresqll_ping_interval.
|
||||
postgresql_ping_on_insert = 1
|
||||
|
||||
# PostgreSQL: How often in seconds the database should be 'pinged' to ensure the
|
||||
# connection is still valid. If *any* error is generate by the ping such as
|
||||
# 'Unable to connect to database', it will attempt to re-create the database
|
||||
# connection. Set to 0 to disable pinging.
|
||||
# Note: This has no effect on postgresql_ping_on_insert.
|
||||
# disabled = 0
|
||||
# 5 minutes = 300
|
||||
# 15 minutes = 900
|
||||
# 30 minutes = 1800
|
||||
postgresql_ping_interval = 300
|
||||
|
||||
# ODBC: Set to 1 to enable logging to a database via ODBC using DBD::ODBC.
|
||||
# This requires both DBI:: and DBD::ODBC
|
||||
dbd_odbc_enable = 0
|
||||
|
||||
# DBD:ODBC: Database to use
|
||||
dbd_odbc_dsn = snmptt
|
||||
|
||||
# DBD:ODBC: Table to use
|
||||
dbd_odbc_table = snmptt
|
||||
|
||||
# DBD:ODBC: Table to use for unknown traps
|
||||
# Leave blank to disable logging of unknown traps to DBD:ODBC
|
||||
# Note: unknown_trap_log_enable must be enabled.
|
||||
dbd_odbc_table_unknown = snmptt_unknown
|
||||
|
||||
# DBD:ODBC: Table to use for statistics
|
||||
# Note: statistics_interval must be set. See also stat_time_format_sql.
|
||||
#dbd_odbc_table_statistics = snmptt_statistics
|
||||
dbd_odbc_table_statistics =
|
||||
|
||||
# DBD:ODBC: Username to use
|
||||
dbd_odbc_username = snmptt
|
||||
|
||||
# DBD:DBC:: Password to use
|
||||
dbd_odbc_password = password
|
||||
|
||||
|
||||
# DBD:ODBC: Whether or not to 'ping' the database before attempting an INSERT
|
||||
# to ensure the connection is still valid. If *any* error is generate by
|
||||
# the ping such as 'Unable to connect to database', it will attempt to
|
||||
# re-create the database connection.
|
||||
# Set to 0 to disable
|
||||
# Set to 1 to enable
|
||||
# Note: This has no effect on dbd_odbc_ping_interval.
|
||||
dbd_odbc_ping_on_insert = 1
|
||||
|
||||
# DBD:ODBC:: How often in seconds the database should be 'pinged' to ensure the
|
||||
# connection is still valid. If *any* error is generate by the ping such as
|
||||
# 'Unable to connect to database', it will attempt to re-create the database
|
||||
# connection. Set to 0 to disable pinging.
|
||||
# Note: This has no effect on dbd_odbc_ping_on_insert.
|
||||
# disabled = 0
|
||||
# 5 minutes = 300
|
||||
# 15 minutes = 900
|
||||
# 30 minutes = 1800
|
||||
dbd_odbc_ping_interval = 300
|
||||
|
||||
# The date time format for the traptime column in SQL. Defaults to
|
||||
# localtime(). When a date/time field is used in SQL, this should
|
||||
# be changed to follow a standard that is supported by the SQL server.
|
||||
# Example: For a MySQL DATETIME, use %Y-%m-%d %H:%M:%S.
|
||||
#date_time_format_sql =
|
||||
|
||||
# The date time format for the stat_time column in SQL. Defaults to
|
||||
# localtime(). When a date/time field is used in SQL, this should
|
||||
# be changed to follow a standard that is supported by the SQL server.
|
||||
# Example: For a MySQL DATETIME, use %Y-%m-%d %H:%M:%S.
|
||||
#stat_time_format_sql =
|
||||
|
||||
[Exec]
|
||||
|
||||
# Set to 1 to allow EXEC statements to execute. Should normally be left on unless you
|
||||
# want to temporarily disable all EXEC commands
|
||||
exec_enable = 1
|
||||
|
||||
# Set to 1 to allow PREEXEC statements to execute. Should normally be left on unless you
|
||||
# want to temporarily disable all PREEXEC commands
|
||||
pre_exec_enable = 1
|
||||
|
||||
# If defined, the following command will be executed for ALL unknown traps. Passed to the
|
||||
# command will be all standard and enterprise variables, similar to unknown_trap_log_file
|
||||
# but without the newlines.
|
||||
unknown_trap_exec =
|
||||
|
||||
# FORMAT line that is passed to the unknown_trap_exec command. If not defined, it
|
||||
# defaults to what is described in the unknown_trap_exec setting. The following
|
||||
# would be *similar* to the default described in the unknown_trap_exec setting
|
||||
# (all on one line):
|
||||
# $x !! $X: Unknown trap ($o) received from $A at: Value 0: $A Value 1: $aR
|
||||
# Value 2: $T Value 3: $o Value 4: $aA Value 5: $C Value 6: $e Ent Values: $+*
|
||||
unknown_trap_exec_format =
|
||||
|
||||
# Set to 1 to escape wildards (* and ?) in EXEC, PREEXEC and the unknown_trap_exec
|
||||
# commands. Enable this to prevent the shell from expanding the wildcard
|
||||
# characters. The default is 1.
|
||||
exec_escape = 1
|
||||
|
||||
[Debugging]
|
||||
# 0 - do not output messages
|
||||
# 1 - output some basic messages
|
||||
# 2 - out all messages
|
||||
DEBUGGING = 0
|
||||
|
||||
# Debugging file - SNMPTT
|
||||
# Location of debugging output file. Leave blank to default to STDOUT (good for
|
||||
# standalone mode, or daemon mode without forking)
|
||||
DEBUGGING_FILE =
|
||||
# DEBUGGING_FILE = /var/log/snmptt/snmptt.debug
|
||||
|
||||
# Debugging file - SNMPTTHANDLER
|
||||
# Location of debugging output file. Leave blank to default to STDOUT
|
||||
DEBUGGING_FILE_HANDLER =
|
||||
# DEBUGGING_FILE_HANDLER = /var/log/snmptt/snmptthandler.debug
|
||||
|
||||
[TrapFiles]
|
||||
# A list of snmptt.conf files (this is NOT the snmptrapd.conf file). The COMPLETE path
|
||||
# and filename. Ex: '/etc/snmp/snmptt.conf'
|
||||
snmptt_conf_files = <<END
|
||||
/etc/snmp/snmptt.conf
|
||||
END
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
#
|
||||
# Copyright 2015 Mirantis, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
class plugin_zabbix_snmptrapd {
|
||||
|
||||
include plugin_zabbix_snmptrapd::params
|
||||
|
||||
$service_name = $plugin_zabbix_snmptrapd::params::service_name
|
||||
$server_ip = hiera('management_vip')
|
||||
$plugin_settings = hiera('zabbix_snmptrapd')
|
||||
|
||||
class { 'snmp':
|
||||
snmptrapdaddr => ["udp:${server_ip}:162"],
|
||||
ro_community => $plugin_settings['community'],
|
||||
service_ensure => 'stopped',
|
||||
trap_service_ensure => 'running',
|
||||
trap_service_enable => true,
|
||||
trap_handlers => ['default /usr/sbin/snmptthandler'],
|
||||
}
|
||||
|
||||
file { "/etc/init.d/${service_name}":
|
||||
ensure => present,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
source => "puppet:///modules/plugin_zabbix_snmptrapd/initscripts/${service_name}",
|
||||
require => Class['snmp'],
|
||||
notify => Service[$service_name],
|
||||
}
|
||||
|
||||
class { 'plugin_zabbix_snmptrapd::snmptt':
|
||||
require => Class['snmp'],
|
||||
}
|
||||
|
||||
class { 'plugin_zabbix_snmptrapd::zabbix':
|
||||
require => Class['plugin_zabbix_snmptrapd::snmptt'],
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
#
|
||||
# Copyright 2015 Mirantis, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
class plugin_zabbix_snmptrapd::params {
|
||||
|
||||
case $::osfamily {
|
||||
'Debian': {
|
||||
$service_name = 'snmpd'
|
||||
}
|
||||
'RedHat': {
|
||||
$service_name = 'snmptrapd'
|
||||
}
|
||||
default: {
|
||||
fail("unsuported osfamily ${::osfamily}, currently Debian and RedHat are the only supported platforms")
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
#
|
||||
# Copyright 2015 Mirantis, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
class plugin_zabbix_snmptrapd::snmptt {
|
||||
|
||||
if $::osfamily == 'RedHat' {
|
||||
package { 'net-snmp-perl':
|
||||
ensure => present,
|
||||
before => Package['snmptt'],
|
||||
}
|
||||
}
|
||||
|
||||
package { 'snmptt':
|
||||
ensure => present,
|
||||
}
|
||||
|
||||
service { 'snmptt':
|
||||
ensure => running,
|
||||
enable => true,
|
||||
require => Package['snmptt'],
|
||||
}
|
||||
|
||||
file { '/etc/snmp/snmptt.ini':
|
||||
ensure => present,
|
||||
mode => '0644',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
source => 'puppet:///modules/plugin_zabbix_snmptrapd/snmptt.ini',
|
||||
require => Package['snmptt'],
|
||||
notify => Service['snmptt'],
|
||||
}
|
||||
|
||||
file { '/etc/snmp/snmptt.conf':
|
||||
ensure => present,
|
||||
mode => '0644',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
source => 'puppet:///modules/plugin_zabbix_snmptrapd/snmptt.conf',
|
||||
require => Package['snmptt'],
|
||||
notify => Service['snmptt'],
|
||||
}
|
||||
|
||||
file_line { 'in logrotate disable compressing of snmptt logfiles':
|
||||
path => '/etc/logrotate.d/snmptt',
|
||||
match => 'compress',
|
||||
line => 'nocompress',
|
||||
require => Package['snmptt'],
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
#
|
||||
# Copyright 2015 Mirantis, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
class plugin_zabbix_snmptrapd::zabbix {
|
||||
|
||||
file_line { 'enable SNMPTrapper in Zabbix':
|
||||
path => '/etc/zabbix/zabbix_server.conf',
|
||||
match => 'StartSNMPTrapper',
|
||||
line => 'StartSNMPTrapper=1',
|
||||
notify => Service['p_zabbix-server'],
|
||||
}
|
||||
|
||||
file_line { 'set SNMPTrapperFile in Zabbix':
|
||||
path => '/etc/zabbix/zabbix_server.conf',
|
||||
match => 'SNMPTrapperFile',
|
||||
line => 'SNMPTrapperFile=/var/log/snmptt/snmptt.log',
|
||||
notify => Service['p_zabbix-server'],
|
||||
}
|
||||
|
||||
service { 'p_zabbix-server':
|
||||
ensure => running,
|
||||
enable => true,
|
||||
provider => 'pacemaker',
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
attributes:
|
||||
metadata:
|
||||
restrictions:
|
||||
- condition: "settings:zabbix_monitoring.metadata.enabled == false"
|
||||
action: disable
|
||||
message: "This plugin requires Zabbix plugin"
|
||||
community:
|
||||
value: "public"
|
||||
label: "SNMP community"
|
||||
description: "SNMP community for traps authorization"
|
||||
weight: 10
|
||||
type: "password"
|
|
@ -0,0 +1,33 @@
|
|||
# Plugin name
|
||||
name: zabbix_snmptrapd
|
||||
title: SNMP trap daemon for Zabbix plugin
|
||||
# Plugin version
|
||||
version: 1.0.0
|
||||
# Description
|
||||
description: Gives ability to receive SNMP traps and pass them to Zabbix.
|
||||
# Required fuel version
|
||||
fuel_version: ['6.1']
|
||||
# Groups
|
||||
groups: []
|
||||
# Licenses
|
||||
licenses: ['Apache License, Version 2.0']
|
||||
# Homepage
|
||||
homepage: 'https://github.com/stackforge/fuel-plugin-zabbix-snmptrapd'
|
||||
# Authors
|
||||
authors: ['Dmitry Klenov <dklenov@mirantis.com>', 'Piotr Misiak <pmisiak@mirantis.com>', 'Szymon Banka <sbanka@mirantis.com>', 'Alexander Zatserklyany <azatserklyany@mirantis.com>']
|
||||
|
||||
# The plugin is compatible with releases in the list
|
||||
releases:
|
||||
- os: ubuntu
|
||||
version: 2014.2-6.1
|
||||
mode: ['ha']
|
||||
deployment_scripts_path: deployment_scripts/
|
||||
repository_path: repositories/ubuntu
|
||||
- os: centos
|
||||
version: 2014.2-6.1
|
||||
mode: ['ha']
|
||||
deployment_scripts_path: deployment_scripts/
|
||||
repository_path: repositories/centos
|
||||
|
||||
# Version of plugin package
|
||||
package_version: '2.0.0'
|
|
@ -0,0 +1,43 @@
|
|||
#!/bin/bash
|
||||
set -eux
|
||||
|
||||
ROOT="$(dirname `readlink -f $0`)"
|
||||
RPM_REPO="${ROOT}"/repositories/centos
|
||||
DEB_REPO="${ROOT}"/repositories/ubuntu
|
||||
MODULES="${ROOT}"/deployment_scripts/puppet/modules
|
||||
SNMP_TARBALL_URL="https://forgeapi.puppetlabs.com/v3/files/razorsedge-snmp-3.3.1.tar.gz"
|
||||
mkdir -p $RPM_REPO
|
||||
mkdir -p $DEB_REPO
|
||||
mkdir -p $MODULES
|
||||
|
||||
# Downloads needed RPM or DEB packages
|
||||
function download {
|
||||
case "$1" in
|
||||
deb) REPO=$DEB_REPO;;
|
||||
rpm) REPO=$RPM_REPO;;
|
||||
esac
|
||||
shift
|
||||
|
||||
while [ $# -gt 0 ]; do
|
||||
FILE=$(basename "$1")
|
||||
wget -qO - $1 > "$REPO/$FILE"
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
download rpm http://mirror.centos.org/centos/6/updates/x86_64/Packages/net-snmp-5.5-50.el6_6.1.x86_64.rpm \
|
||||
http://mirror.centos.org/centos/6/updates/x86_64/Packages/net-snmp-libs-5.5-50.el6_6.1.x86_64.rpm \
|
||||
http://mirror.centos.org/centos/6/updates/x86_64/Packages/net-snmp-perl-5.5-50.el6_6.1.x86_64.rpm \
|
||||
http://mirror.centos.org/centos/6/os/x86_64/Packages/perl-Digest-HMAC-1.01-22.el6.noarch.rpm \
|
||||
http://mirror.centos.org/centos/6/os/x86_64/Packages/perl-Digest-SHA1-2.12-2.el6.x86_64.rpm \
|
||||
http://mirror.centos.org/centos/6/os/x86_64/Packages/perl-IO-stringy-2.110-10.1.el6.noarch.rpm \
|
||||
http://mirror.centos.org/centos/6/os/x86_64/Packages/perl-List-MoreUtils-0.22-10.el6.x86_64.rpm \
|
||||
http://dl.fedoraproject.org/pub/epel/6/x86_64/snmptt-1.4-0.9.beta2.el6.noarch.rpm \
|
||||
http://dl.fedoraproject.org/pub/epel/6/x86_64/perl-Crypt-DES-2.05-9.el6.x86_64.rpm \
|
||||
http://dl.fedoraproject.org/pub/epel/6/x86_64/perl-Config-IniFiles-2.72-2.el6.noarch.rpm \
|
||||
http://dl.fedoraproject.org/pub/epel/6/x86_64/perl-Net-SNMP-5.2.0-4.el6.noarch.rpm
|
||||
|
||||
#download snmp module
|
||||
mkdir -p "${MODULES}/snmp"
|
||||
wget -qO- "${SNMP_TARBALL_URL}" | tar -C "${MODULES}/snmp" --strip-components=1 -xz
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
- role: ['primary-controller', 'controller']
|
||||
stage: post_deployment/8110
|
||||
type: puppet
|
||||
parameters:
|
||||
puppet_manifest: puppet/manifests/controller.pp
|
||||
puppet_modules: puppet/modules:/etc/puppet/modules
|
||||
timeout: 1200
|
Loading…
Reference in New Issue