zabbix2.0.0のsnmptrapについて

zabbix1.8.7から2.0.0へUpgradeし、snmptrapの検証をしたいのですが、
うまく動作しません。

SNMPTrapperFileで指定した所にファイルが作成されません。
また、snmptrapperが入っていないように見えるのですが、
snmptrapperのみをインストールする必要があるのでしょうか。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

SNMPTrapperFileで指定した所にファイルを作成するためには、
SNMPTTというツールをインストールして設定することが必要に
なります。

また、snmptrapperは、zabbix_server.conf内のStartSNMPTrapper
の値を1に設定してzabbix-serverを再起動すれば有効になります。

詳細は、以下のURLにある資料をご参照ください。
http://www.slideshare.net/HaruyoshiChiyoda/zabbixjp-study4-zabbix20rc1-s...

ユーザー sabi の写真

zabbix_server.conf内のStartSNMPTrapperは「1」になっており、
/var/log/snmptt/snmptthandler.debugやsnmptt.debugは作成されております。

その他、確認方法はありますでしょうか。

ユーザー kodai の写真

zabbix_server.confのSNMPTrapperFileの設定はどのようになっていますか?

また、/etc/snmp/snmptrapd.confと/etc/snmp/snmptt.confの設定を書いていただけると的確な回答ができると思います。

ユーザー sabi の写真

以下のようになっております。

:zabbix_server.conf
SNMPTrapperFile=/tmp/zabbix_traps.tmp

:/etc/snmp/snmptrapd.conf
authCommunity log,execute,net private
authCommunity log,execute,net public
traphandle default /usr/sbin/snmptthandler
disableAuthorization yes

engineBoots 6
oldEngineID 0x80001f8880ab8b0d741a93af4d00000000

:snmptt.conf
EVENT general .* "LOGONLY" Normal
FORMAT ZBXTRAP $aA $ar にて未定義のイベント受信! $-*

ユーザー halchiyo の写真

snmptt.iniファイルがSNMPTTの動作定義としてあり、そこにログファイルの出力先の規定がかかれます。
標準ですと以下になると思うのですが、そこに変換されたSNMPTTのログがありませんでしょうか?

/var/log/snmptt.log

もし、上記ファイルがあるならば、zabbix_server.conf の SNMPTrapperFile 記載を以下のように直す必要があります。

SNMPTrapperFile=/var/log/snmptt.log

また、差し支えなければ、以下結果もいただけますと何かわかるかもしれません。

snmp.ini
snmptthandler.debug
snmptt.debug

ユーザー sabi の写真

/var/log/snmptt/snmptt.logにありましたので、zabbix_server.confのSNMPTrapFileを
直して再起動しましたが、サーバ側に通知は来ません。

以下のコマンドをエージェント側で実行しています。
snmptrap -v 2c -c public 192.168.1.1 '' .1.3.6.1.4.1.8072.99999

以下、サーバ側の各ログです。

:snmptthanler.debug
SNMPTTHANDLER started: Tue Jul 10 15:57:29 2012

s = 1341903449, usec = 42459
s_pad = 1341903449, usec_pad = 042459

Data received:

UDP: [192.168.1.1]:58042

.1.3.6.1.2.1.1.3.0 0:23:19:24.56

.1.3.6.1.6.3.1.1.4.1.0 .1.3.6.1.4.1.8072.99999

:snmptt.debug
********** SNMPTT v1.3 started: Tue Jul 10 15:51:56 2012 **********

********** Net-SNMP version 5.03022 Perl module enabled **********

Loading /etc/snmp/snmptt.conf

Could not open configuration file: /etc/snmp/snmptt.conf

Finished loading configuration files

Processing memory copy of configuration files
0 EVENTs found
0 EVENTs found that contain at least the mandatory FORMAT line
Finished processing memory copy of configuration files

cwd: /tmp/perl
Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

SNMPTT v1.3 shutdown: Tue Jul 10 15:52:30 2012

Total traps received: 0
Total traps translated: 0
Total traps ignored: 0
Total unknown traps: 0

:snmptt.ini
#
# SNMPTT v1.3 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 = zabbix_server

# Set to either 'standalone' or 'daemon'
# standalone: snmptt called from snmptrapd.conf
# daemon: snmptrapd.conf calls snmptthandler
# Ignored by Windows. See documentation
#mode = standalone
mode = daemon

# 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 = <

ユーザー sabi の写真

追記です。

名前:SNMPTrap
タイプ:SNMPトラップ
キー:snmptrap.fallback
アプリケーション:SNMPTrap

にしています。
キーはsnmptrap[]にしても状況は同じです。

これまではアイテムのステータスが有効になっていましたが、
取得不可に変わってしまいました。

ユーザー kodai の写真

snmptt.debugに以下のログが出ているようですので、/etc/snmp/snmptt.confファイルが適切に読み込まれていないように見えます。

Loading /etc/snmp/snmptt.conf
Could not open configuration file: /etc/snmp/snmptt.conf

snmptt.confはどこに置かれているでしょうか?/etcの直下などに置かれているようでしたら、/etc/snmp以下に置いて、snmpttを再起動してみてください。
最終的に、SNMPTrapperFileで指定しているファイルに変換後のトラップの情報が出力されないと、Zabbixサーバに情報として取り込むことはできません。

ユーザー sabi の写真

すいません、debugの情報が間違っていました。
以下、再度snmptrapを実行したものです。

Processing file: #snmptt-trap-1342157575861238
Agent IP address was blank, so setting to the same as the host IP address of 192.168.1.1

Agent IP address (192.168.1.1) is the same as the host IP, so copying the host name: Zabbix_Server.test.co.jp

Trap received from Zabbix_Server.test.co.jp: .1.3.6.1.4.1.8072.99999
Exact match of trap NOT found in EVENT hash table

Looking for wildcards in the EVENT hash table
Working with EVENT entry: .* => general,LOGONLY,Normal,
No nodes defined for this entry so all nodes will match
No MATCH entries defined for this entry

Trap defined, processing...

PREEXEC line(s):

FORMAT line:
ZBXTRAP 192.168.1.1 192.168.1.1 にて未定義のイベント受信!

.1.3.6.1.4.1.8072.99999 Normal "LOGONLY" Zabbix_Server.test.co.jp - ZBXTRAP 192.168.1.1 192.168.1.1 にて未定義のイベント受信!

EXEC line(s):
EXEC line not defined
Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

Sleeping for 1 seconds

以下、Sleepingがずっと続きます。
/etc/snmp/snmptt.confは所定の位置にありました。

ユーザー sabi の写真

追記です。

snmptrapを実行した際に、/var/log/messagesに

Unable to delete trap file #snmptt-trap-1342160257539529 from spool dir

が断続的に発生しています。
これが上記の
EXEC line not defined
Sleeping for 1 seconds
に関連しているのでしょうか。

ユーザー TNK の写真

snmptt.debugに「未定義のイベント受信」のメッセージが出ている
のであれば、/var/log/snmptt/snmptt.logにも該当するトラップの
行が出力されていませんか?

出力されていないのであれば、先ほどご提示頂いたsnmptt.iniの後
半が切れてしまっていたようですので、初期値から変更した箇所の
みを再度ご提示いただけませんでしょうか?

snmptt.logに出力されていてZabbix側に何もイベントとして受け取
れていないのであれば、zabbix_server.logを確認してみてくださ
い。

 unmatched trap received from [IPアドレス]:....

というようなログが出力されていませんか?

そうであるならば、トラップ内のIPアドレスに対応するホストが
Zabbix上に登録されていないため、どのホストに対するイベントか
がわからないために処理されていないのではないかと思われます。

ホストのSNMPインターフェイスとして登録されているIPアドレスと
して、トラップ内の情報に対応するものが登録されていますか?

「Unable to delete trap file....」に関しては、ディレクトリの
パーミッションを確認してください。snmpttを起動しているアカウ
ントの所有になっていて読み書きできるようになってますか?

「Sleeping for 1 seconds」が継続的に出力されるのは、snmptt.ini
で「sleep = 1」と「DEBUGGING = 1」に設定されているからだと思
われます。
継続的に出力されるのは異常ではありません。
出力しないようにするには、DEBUGGINGを無効に設定すれば良いで
しょう。
ただ、連携できるようになるまでは、DEBUGGINGを有効にしておい
た方がよいかもしれませんので、まずは、問題点をつきとめましょ
う。

ユーザー sabi の写真

>snmptt.debugに「未定義のイベント受信」のメッセージが出ている
>のであれば、/var/log/snmptt/snmptt.logにも該当するトラップの
>行が出力されていませんか?
⇒これについては出力されていました。

>unmatched trap received from [IPアドレス]:....
⇒snmptrap後、zabbix_server.logには出力されていません。

>ホストのSNMPインターフェイスとして登録されているIPアドレスと
>して、トラップ内の情報に対応するものが登録されていますか?
⇒Zabbix側に登録されています。SNMPインターフェースIPとtrapのIPは同じで
ポート161になっています。

:snmptt.ini
#
# SNMPTT v1.3 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 = acc-mngzbx001

# Set to either 'standalone' or 'daemon'
# standalone: snmptt called from snmptrapd.conf
# daemon: snmptrapd.conf calls snmptthandler
# Ignored by Windows. See documentation
#mode = standalone
mode = daemon

# 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 = <

ユーザー sabi の写真

続きです。

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

# 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 = 2

# 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 = 1

# 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 = 0

# 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 = <

ユーザー sabi の写真

ファイル添付があるのに気付きませんでした。
ファイルを添付します。

snmptt.iniの内容です。

ユーザー TNK の写真

/var/log/snmptt/snmptt.logに出力されているのであれば、
SNMPTrapperFileの値を/var/log/snmptt/snmptt.logに変更後、
zabbix-serverの再起動を行われましたか?

/var/log/snmptt/snmptt.logのパーミッションは、読み込み可に
なっていますか?

ユーザー sabi の写真

SNMPTrapFileは以前のご指摘で修正し、再起動済みです。

/var/log/zabbix/zabbix_server.logに以下が連発するようになりました。
unmatched trap received from [127.0.0.1]:

/var/log/snmptt/snmptt.logもsnmptt:snmpttの644になっています。

ユーザー TNK の写真

「unmatched trap received from [127.0.0.1]:」が出るのであれば、
ソースのIPアドレスが127.0.0.1のSNMP Trapを受けているのでしょう。

再度確認させて頂きたいのですが、SNMPのインターフェースでIPアドレス
が127.0.0.1のホストが登録されていないのではありませんか?

ユーザー sabi の写真

SNMPインターフェースに127.0.0.1と自身の持つ192.168.1.1のIPアドレスを
登録しましたが、変わりません。
(DNS名は共に同じにしています)

SNMPトラップをどのインターフェースで受けるかを設定するのは
zabbix側で設定するのでしょうか。

ユーザー TNK の写真

変わらないというのは、何がどう変わらないのでしょうか?
随時、設定を変更されたり追加されているようですが、どのような設定を
行って、現時点で、どのようなログが出力されているのかを具体的にお教
え頂けませんか?

unmatched trap received from ... というログが出力されているのであれ
ば、その後ろに出力されているIPアドレスに対する設定がZabbix上に設定
されていない状態のままだと思われます。

SNMPトラップをどのインターフェースで受けるかを設定するのは、
snmptrapdの設定ですし、SNMPトラップ自体のソースIPアドレスは、
ネットワーク機器であれば自動的にその機器が設定するでしょう。
Zabbix自体の設定とは直接関係ありません。

別途halchiyoさんからもアドバイスがあった通り、snmptrapコマンド
でトラップを投げる場合は、v1だとコマンドの引数でソースのIPアドレス
を指定できます。
詳細は、先にご紹介した勉強会の資料をご参照下さい。

ユーザー halchiyo の写真

zabbixの話からは少しそれてしまいますが、現状のように表示動作の確認をするのであれば、snmptrapコマンドはv1で、エージェントアドレスを切り替えながら動作確認することもご検討ください。

ユーザー halchiyo の写真

> 127.0.0.1と自身の持つ192.168.1.1のIPアドレスを登録しましたが、変わりません。

1つのホストに複数のSNMP IFを登録されたのでしょうか?
いずれかにDefaultのマークがついているかと思いますが、どうでしょうか???
先ずはきちんと動作確認することが大事かとおもいますので、単純化するために以下をお試しいただけますか?

(1) 一度、SNMP IF については127.0.0.1のみ残してあとは削除してください。
snmptrapに利用したコマンドは今までと同じで結構です。若しくは以下コマンドをお試しください。

# snmptrap -v 1 -c public localhost .1.3.6.1.2.1.11 192.168.1.1 2 0 '' .1.3.6.1.2.1.2.2.1.1.1 i 7

snmptt.logに以下のようなログが書き込まれ、192.168.1.1を持つホストのlatest dataにエントリが入ると思います。
23:18:45 2012/07/16 .1.3.6.1.6.3.1.1.5.3 Normal "LOGONLY" 192.168.1.1 - ZBXTRAP 192.168.1.1 127.0.0.1 にて未定義のイベントを受信。 ifIndex.1 (INTEGER32):7

2)
SNMP IF として192.168.1.1のIPアドレスをもつ『別の』ダミーホストを登録してみてください。
(同一ホストに登録しないでください。ホスト名は動作に影響しません。)
その後、snmptrapコマンドとして以下をお試しください。

# snmptrap -v 1 -c public localhost .1.3.6.1.2.1.11 127.0.0.1 2 0 '' .1.3.6.1.2.1.2.2.1.1.1 i 7

snmptt.logに以下のようなログが書き込まれ、127.0.0.1を持つホストのlatest dataにエントリが入ると思います。

23:19:42 2012/07/16 .1.3.6.1.6.3.1.1.5.3 Normal "LOGONLY" localhost - ZBXTRAP 127.0.0.1 127.0.0.1 に て未定義のイベントを受信。 ifIndex.1 (INTEGER32):7

私が確認した限りの情報では、以下のように認識しています。

● x.x.x.x - ZBXTRAP となっている snmp.log はSNMP IF の Default がx.x.x.xとなっているホストの履歴に記録されます。
● SNMPインターフェースを複数登録しても、Default指定されている1つしか反応しません。
● 本来、Default指定したほうが応答すべきですが、ガチャガチャ変更していた際に、表示と動作が連動しなくなったことがありました。(その後再現性が取れていません。)

ユーザー sabi の写真

混乱させて申し訳ありません。

127.0.0.1と192.168.1.1は同一ホストに登録していたので、
分けました。

23:19:42 2012/07/16 .1.3.6.1.6.3.1.1.5.3 Normal "LOGONLY" localhost - ZBXTRAP 127.0.0.1 127.0.0.1 に て未定義のイベントを受信。 ifIndex.1 (INTEGER32):7

などのメッセージはsnmptt.logに出力されていました。
しかし最新データに出力されず、snmptt.log、zabbix_server.logに大量に吐かれてしまいます。

ユーザー halchiyo の写真

> 127.0.0.1と192.168.1.1は同一ホストに登録していたので分けました。

以下のエクスポートデータを見せていただいても宜しいですか?
・分けた2台のhosts
・作成したsnmptrapsアイテム

併せて、以下3つが対になるような説明とlogの抽出を頂けませんか?
・打ったコマンド
・コマンドにより出力されたsnmptt.log
・コマンドにより出力されたzabbix_server.log

ユーザー sabi の写真

ホストは以下になります。
127.0.0.1 localhost
192.168.1.1 mngzbx001

アイテムは以下になります。
名前:SNMPTrap
タイプ:SNMPトラップ
キー:snmptrap[]
ホストインターフェース:上記IPアドレス:161
データ型:数値(整数)
データの形式:10進数
アプリケーション:SNMPTrap

実行したコマンドは以下になります。
snmptrap -v 1 -c public localhost .1.3.6.1.2.1.11 192.168.1.1 2 0 '' .1.3.6.1.2.1.2.2.1.1.1 i 7
snmptrap -v 1 -c public localhost .1.3.6.1.2.1.11 127.0.0.1 2 0 '' .1.3.6.1.2.1.2.2.1.1.1 i 7

snmptt.logは以下になります。
10:03:09 2012/07/18 .1.3.6.1.6.3.1.1.5.3 Normal "LOGONLY" 192.168.1.1 - ZBXTRAP 192.168.1.1 127.0.0.1 にて未定義のイベント受信! ifIndex.1 (INTEGER32):7

10:03:14 2012/07/18 .1.3.6.1.6.3.1.1.5.3 Normal "LOGONLY" mngzbx001.test.co.jp - ZBXTRAP 127.0.0.1 127.0.0.1 にて未定義のイベント受信! ifIndex.1 (INTEGER32):7

zabbix_server.logは以下になります。
17293:20120718:100805.489 unmatched trap received from [192.168.1.1]: 10:03:09 2012/07/18 .1.3.6.1.6.3.1.1.5.3 Normal "LOGONLY" 192.168.1.1 - 127.0.0.1 にて 未定義のイベント受信! ifIndex.1 (INTEGER32):7

17293:20120718:100805.489 unmatched trap received from [127.0.0.1]: 10:03:14 2012/07/18 .1.3.6.1.6.3.1.1.5.3 Normal "LOGONLY" mngzbx001.test.co.jp - 127.0.0.1 にて未定義のイベント受信! ifIndex.1 (INTEGER32):7

snmptt.logとzabbix_server.logは上記のようなメッセージが大量に出ております。

ユーザー halchiyo の写真

192.168.1.1 mngzbx001

について、フォーカスしましょう。

HOST設定画面を、 Configuration → Hosts と選択し、

mngzbx001

を開いてHOSTタブが写ったスクリーンショットを送ってもらってもよいですか?

ユーザー sabi の写真

ホストの画面になります。

ユーザー TNK の写真

そのホストに、キーが「snmptrap.fallback」のアイテムを設定し
て、その後で、

 # snmptrap -v 1 -c public 192.168.1.1 .1.3.6.1.2.1.11 192.168.1.1 2 0 '' .1.3.6.1.2.1.2.2.1.1.1 i 7

を実行してみてください。

/var/log/snmptt/snmptt.logに、そのTrapを受けたログが出力され
ましたか?
/var/log/zabbix/zabbix_server.logにまたunmatchログが出力され
ましたか?
/var/log/snmptt/snmptt.logに出力され、SNMPTrapperが読み込め
ていれば、最新データの中に、キーが「snmptrap.fallback」であ
るアイテムの最新値として表示されるはずです。

ご確認ください。

ユーザー sabi の写真

キーを「snmptrap.fallback」にして、
# snmptrap -v 1 -c public 192.168.1.1 .1.3.6.1.2.1.11 192.168.1.1 2 0 '' .1.3.6.1.2.1.2.2.1.1.1 i 7
実行時の時間帯でtail -fコマンドで確認しました。

/var/log/snmptt/snmptt.logにはメッセージが出ましたが、
/var/log/zabbix/zabbix_server.logにはメッセージが出ませんでした。

ユーザー TNK の写真

/var/log/zabbix/zabbix_server.logにメッセージが出なかったの
なら、取り込めている可能性が高いと思われます。
最新データの内容を確認してください。

ユーザー sabi の写真

最新のデータに該当のメッセージはありません。。。

SNMPTrapのアイテム「snmptrap.fallback」のステータスが取得不可になっています。
有効にしても取得不可になってしまいます。

ユーザー TNK の写真

再度確認させていただきたいのですが、zabbix_server.logに
zabbix_serverプロセスを起動したタイミングで、

13592:20120713:144508.943 server #30 started [snmp trapper #1]

というように、snmp trapperが起動したというメッセージが出力
されていますか?

あと、SNMPTrapのアイテム「snmptrap.fallback」を設定されたと
きに入力した「全ての」項目を省略せずにご提示ください。

どのように設定されたのかをご提示頂けなければ調査できません
ので、よろしくお願いいたします。

ユーザー sabi の写真

13592:20120713:144508.943 server #30 started [snmp trapper #1]
このようなメッセージは出ています。

ホスト:mngzbx001
名前:SNMPTrap
タイプ:SNMPトラップ
キー:snmptrap.fallback
ホストインターフェース:192.168.1.1:161
データ型:数値(整数)
データの形式:10進数
単位:未入力
乗数を使用:チェックなし
ヒストリの保存期間:90
トレンドの保存期間:365
保存時の計算:なし
値のマッピングの使用:なし
アプリケーション:SNMPTrap
ホストインベントリフィールドの自動設定:なし
説明:未入力
ステータス:有効

以上です。

ユーザー TNK の写真

データ型が「数値(整数)」では取得できません。
「ログ」に変更して、再度アイテムを有効にしてみてください。

ユーザー sabi の写真

ログに変更したところ、最新データに反映されました。