質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Q&A

解決済

2回答

5569閲覧

パトライトをrsyslogから鳴らすために、rshを叩きたい

sonic883

総合スコア6

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

0グッド

0クリップ

投稿2018/03/30 13:58

編集2018/03/30 14:11

前提・実現したいこと

CentOS6で、rsyslogを使用しApresiaのループ検知をメールで通知するよう設定しています。
ここに、パトライトを鳴らす設定を加えようとしています。

発生している問題・エラーメッセージ

実際に試験的にループ状態にしたところ、メールの送信は行われましたが、
/var/log/messages にこのメッセージが表示されてエラーとなりました。

Mar 30 22:27:09 sv01 rsyslogd-3003: invalid or yet-unknown config file command - have you forgotten to load a module? [try http://www.rsyslog.com/e/3003 ] Mar 30 22:27:09 sv01 rsyslogd: the last error occured in /etc/rsyslog.conf, line 39:"$*.* ^/usr/lib/scripts/patlite2.sh" Mar 30 22:27:09 sv01 rsyslogd-3003: invalid or yet-unknown config file command - have you forgotten to load a module? [try http://www.rsyslog.com/e/3003 ] Mar 30 22:27:09 sv01 rsyslogd: the last error occured in /etc/rsyslog.conf, line 45:"$*.* ^/usr/lib/scripts/patlite3.sh" Mar 30 22:27:09 sv01 rsyslogd-2124: CONFIG ERROR: could not interpret master config file '/etc/rsyslog.conf'. [try http://www.rsyslog.com/e/2124 ]

該当のソースコード

該当のpatlite3.shはこちらです。
(単体でたたいたところ動いたので、これは問題ないと思います)

#!/bin/sh rsh パトライトのIPアドレス -l patlite sound -c 22000 01

rsyslog.confはこちらです。(一部省略しています)

$ModLoad imuxsock $ModLoad imklog # Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514 $AllowedSender UDP, 127.0.0.1, (SWの管理セグメント)/24 # Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514 $AllowedSender TCP, 127.0.0.1, (SWの管理セグメント)/24 $ModLoad ommail $ActionMailSMTPServer メールサーバ $ActionMailFrom hoge@hoge.jp $template mail_subject,"Alert" $template mail_body,"%fromhost%\r\n%msg%" $ActionMailSubject mail_subject # Apresia Loop検知(shutdown) $ActionMailTo alert@hoge.jp $*.* ^/usr/lib/scripts/patlite2.sh if $msg contains 'Loop detected' then :ommail:;mail_body # Apresia Loop検知(no shutdown) $ActionMailTo alert@hoge.jp $*.* ^/usr/lib/scripts/patlite3.sh if $msg contains 'Detected loop' then :ommail:;mail_body

試したこと

*.*を頭につけてみる、shを単独で動かしてみる、パーミッションを変える→変わりない
エラーメッセージの補足にモジュールを読み込むのを忘れてない?と指摘されているのですが
色々調べてもrshを実行するモジュールが何なのかが見つかりませんでした…

無知でごめんなさい、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

deadjupiter

2018/03/30 14:35

なんで*.*フィルタに$がついてんの?
sonic883

2018/03/30 16:01

出力には$が必要では…と思いつけましたが…もしや、$*.* ではなく &*.*の間違いでしょうか…
a_saitoh

2018/04/01 14:23

まさかシェルスクリプトをcmod+xしてないなんて事は無いですよね?
sonic883

2018/04/02 02:39

シェルはchmod 755しました…
guest

回答2

0

出てくるエラーメッセージをGoogle翻訳にかけてみました

invalid or yet-unknown config file command - have you forgotten to load a module?

無効または未知の設定ファイルコマンド - あなたはモジュールをロードするのを忘れましたか?

the last error occured in /etc/rsyslog.conf, line 39

最終エラーは/etc/rsyslog.conf 39行目で発生しました

CONFIG ERROR: could not interpret master config file

CONFIG ERROR:マスター設定ファイルを解釈できませんでした

投稿2018/03/31 01:51

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sonic883

2018/04/01 12:47

rsyslog.conf の39行目は $*.* ^/usr/lib/scripts/patlite2.sh の部分でした。 やはり、スクリプトをたたくところの書き方(そもそも、ここに書くのが間違っているのか?)が違うようですね
y_waiwai

2018/04/01 12:52

先頭の *.* はどういう意味ですか?
guest

0

自己解決

皆様、ありがとうございました。
結果、このように変え、うまく実行されました。

# Apresia Loop検知(shutdown) $ActionMailTo alert@hoge.jp if $msg contains 'Loop detected' then :ommail:;mail_body if $msg contains 'Loop detected' then ^/usr/lib/scripts/patlite3.sh

いろいろと調べたりしたところ、そもそも39行目はメールモジュールへ
宛先を渡しているだけなので、ここに書いても意味がないことがわかりました。。
また皆さんにコメントいただいた*.*は、もしかしてフィルタされているのでは?と思い
全て出力するようにと途中で追加したものでした。

投稿2018/04/02 03:29

sonic883

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問