snmptt起動不可

linuxが少し触れる初心者なのですが、
zabbixで監視がしたくてインストールしてみました。

はじめてなもので、改訂版zabbix統合監視(実践入門)の書籍を
読みながら進めました。

snmptrapdインストール、設定完了し、起動まで確認しました。
snmpttもインストール、設定完了した後、snmpttが起動しませんでした。

----------------------------------------------------------------------------------------------------------------------------------------------------
[root@localhost ~]# systemctl start snmptt

snmptt.service - SNMP Trap Translator (SNMPTT)
Loaded: loaded (/usr/lib/systemd/system/snmptt.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 火 2016-06-14 18:35:09 JST; 35s ago
Process: 2761 ExecStart=/usr/sbin/snmptt --daemon (code=exited, status=2)

6月 14 18:35:08 localhost.localdomain systemd[1]: Starting SNMP Trap Translator (SNMPTT)...
6月 14 18:35:09 localhost.localdomain snmptt[2761]: Can't locate Sys/Syslog.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr...) line 1.
6月 14 18:35:09 localhost.localdomain snmptt[2761]: died at /usr/sbin/snmptt line 369.
6月 14 18:35:09 localhost.localdomain snmptt[2761]: Could not load Perl module Sys::Syslog! If syslog_system_enable or
6月 14 18:35:09 localhost.localdomain snmptt[2761]: syslog_enable is enabled then the Sys::Syslog module is required. Please
6月 14 18:35:09 localhost.localdomain snmptt[2761]: see snmptt.html for system requirements.
6月 14 18:35:09 localhost.localdomain systemd[1]: snmptt.service: control process exited, code=exited status=2
6月 14 18:35:09 localhost.localdomain systemd[1]: Failed to start SNMP Trap Translator (SNMPTT).
6月 14 18:35:09 localhost.localdomain systemd[1]: Unit snmptt.service entered failed state.
6月 14 18:35:09 localhost.localdomain systemd[1]: snmptt.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sys::Syslogというperlモジュールが足りない!といっていたようなので、
CPANというものを使用し、インストールしましたが、それでもだめでした。

初歩的な質問だとは思うのですが、どなたかアドバイスをいただけませんでしょうか。
周りに聞ける人がおらず、困っております。
よろしくお願いいたします。

/etc/snmp/snmpd.conf と /etc/snmp/snmp.iniを添付しておきます。
CentOS7、Zabbix3.0の環境となります。

コメント表示オプション

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

そのsnmpttは、どのようにしてインストールしましたか?
詳細なバージョンは何ですか?

Sys::Syslogというperlモジュールが足りない!といっていたようなので、
CPANというものを使用し、インストールしましたが、それでもだめでした。

何をどうやってどうだめだったのですか?

発生している状況を正確にかつ詳細にお教えください。

----- 追記 -----
epelのsnmpttを利用されているのであれば、perl-Sys-Syslogパッケージ
のインストールだけで正常に起動できるようになるはずです。

さっそくのお返事ありがとうございます。
ご回答いたします。

>そのsnmpttは、どのようにしてインストールしましたか?
>詳細なバージョンは何ですか?
------------------------------------------------------------------------------------------------------------------------------
バージョンですが、1.40のようです。
[root@localhost ~]# yum list installed|grep snmp
net-snmp.x86_64 1:5.7.2-24.el7_2.1 @updates
net-snmp-agent-libs.x86_64 1:5.7.2-24.el7_2.1 @updates
net-snmp-libs.x86_64 1:5.7.2-24.el7_2.1 @updates
net-snmp-perl.x86_64 1:5.7.2-24.el7_2.1 @updates
net-snmp-utils.x86_64 1:5.7.2-24.el7_2.1 @updates
snmptt.noarch 1.4-0.9.beta2.el7 @epel

インストールですが、書籍の支持に従い、以下のとおりにしました。

1.yum install net-snmp
2.yum install snmptt
3./etc/snmp/snmptrapd.confを作成し、設定を追加
   authCommunity execute public
traphandle default /usr/sbin/snmptthander
4./etc/sysconfig/snmptrapdに設定を追加
   OPTIONS="-On -Lsd -p /var/run/snmptrapd.pid"
5./etc/snmp/snmptt.iniを修正
   mode = daemon
log_file = /var/log/snmptt/snmptt.log
date_time_format = %Y/%m/%d %H:%M:%S
6./etc/snmp/snmptt.confに設定を追加
   EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $*
7.systemctl start snmptt←ここでNGとなる
-------------------------------------------------------------------------------------------------------------------------------------------------------

>何をどうやってどうだめだったのですか?
>発生している状況を正確にかつ詳細にお教えください。
-------------------------------------------------------------------------------------------------------------------------------------------------------
systemctl start snmpttを実施した際、Could not load Perl module Sys::Syslog!
と表示されたので、そのモジュールがインストールされていないせいで起動しないのだと考えました。
perlモジュールは、CPANというPerlインストールシステムを使えば簡単にインストールできると
ネット検索で出ていたので、まずはCPANをインストールし、
#cpanを実施した後、
#install Sys::Syslogを行い、モジュールをインストールし、
CPANをexitで抜けて、systemctl start snmpttを行っても、
はじめに記載したとおりのエラーが出てしまっていた状況です。
-------------------------------------------------------------------------------------------------------------------------------------------------------

>epelのsnmpttを利用されているのであれば、perl-Sys-Syslogパッケージ
>のインストールだけで正常に起動できるようになるはずです

yum install perl-Sys-Syslogを行ったところ…
snmpttが起動しました!
ありがとうございます。

ネット検索や書籍を見てもまったく情報がなかったのですが、
どこからそうご判断されたのですか?

また、同様のトラブルで前に進めないときは、
どうやって解決法を調べればよいのでしょうか。
アドバイスいただけると幸いです。

ユーザー TNK の写真

インストールされていたパッケージの情報を見ると、やはりsnmptt
はepelのものを利用されていたようですね。

あとは、「CPANをインストールし」としか書かれておらず、何をど
うしたのかがわからないので、恐らくですが、CPANでインストール
したモジュールが正常にインストールできていなかったか、利用し
ているperlのパスに含まれていなかったために

 Can't locate Sys/Syslog.pm in @INC

というエラーになってしまっていたのでしょう。

CPANで別途インストールをしなければならないものもあるとは思う
のですが、標準のパッケージで用意されているのであれば、それを
利用したほうが、モジュールを読み込むパスにきちんと配置してく
れます。

今回のSys/Syslog.pmに関しては、標準のパッケージとして、

 perl-Sys-Syslog

というパッケージがありますので、

 # yum install perl-Sys-Syslog

だけで別途CPANを利用する必要もなかったわけです。

ネット検索や書籍を見てもまったく情報がなかったのですが、
どこからそうご判断されたのですか?

どのようなキーワードで検索されたのかわかりませんが、CPANを利
用してインストールしたモジュールが認識されないというような障
害と対策を検索すると解決策への糸口はみつかると思います。

あとは、標準のパッケージで構成している環境であるならば、まず
は、標準のパッケージにないかと優先して検索したほうが良いでし
ょう。

あとは、検索して他人の知恵を拝借するためにも、自分がどのよう
にしてその環境を構築したのか、手順や利用しているバージョンを
正確に把握しておいたほうが役立ちます。
時間的に余裕があれば、その情報を元に私も手元の検証環境で再現
するか確認できますしね。

shioです。お世話になります。

>あとは、「CPANをインストールし」としか書かれておらず、何をど
うしたのかがわからないので、

CPANですが、CPANのインストールの仕方を検索し、
# yum install perl-CPAN.x86_64を実行後、
Would you like me to configure as much as possible automatically? [yes]
という質問が初期設定を自動で行いますか?という意味だと思い、
Enterを何度も押してセットアップを完了させました。
その後、#cpanを実行し、
cpan[1]> install Sys::Syslogを実行し、インストール完了と思われる
表示が出たため、exitした形となります。

お教えいただいた、# yum install perl-Sys-Syslog
にてsnmpttが正常起動するようになりましたが、
そのあと、#perldoc -l Sys/Syslog.pmにてチェックしたところ、 
/usr/lib64/perl5/vendor_perl/Sys/Syslog.pm
とでてきたため、おっしゃるとおりperlのパスに含まれていなかったのかと思います。

>標準のパッケージで構成している環境であるならば、
>標準のパッケージにないかと優先して検索したほうが良いでしょう。
>Sys/Syslog.pmに関しては、標準のパッケージとして、
>perl-Sys-Syslogというパッケージがありますので

とのことですが、そういうパッケージがあるということが、
調べてもまったく出てきませんでしたが、
どうやってそういったパッケージがあるということが
わかられたのか、お教えいただけませんでしょうか。
perlのことも詳しくなくて、極力自力でいろいろ調べてみたのですが、
さっぱりわかりません。

>検索して他人の知恵を拝借するためにも、自分がどのようにして
>その環境を構築したのか、手順や利用しているバージョンを
>正確に把握しておいたほうが役立ちます

おっしゃるとおりでした。お手数おかけしました。
今後はそうさせていただきたいと思います。

ユーザー TNK の写真

とのことですが、そういうパッケージがあるということが、
調べてもまったく出てきませんでしたが、
どうやってそういったパッケージがあるということが
わかられたのか、お教えいただけませんでしょうか。

例外もありますが、今回の場合は単純に、

 Sys::Syslog

というモジュールが必要であったので、そのまま「Sys」と「Syslog」
から、

 「perl」+「-」+「Sys」+「-」+「Syslog」

という名前のパッケージがないか探しただけです。


# yum search perl | grep Sys | grep Syslog
perl-Sys-Syslog.x86_64 : Perl interface to the UNIX syslog(3) calls
perl-Unix-Syslog.x86_64 : Perl interface to the UNIX syslog(3) calls
#

なるほど、そういう検索の仕方があるのですね。
大変勉強になりました。ありがとうございました。

おかげさまで、snmptrapの動作確認も取れております。
ありがとうございます。