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

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

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

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

3回答

5336閲覧

syslogのlogの振り分けについて教えていただきたいです

t4gforce

総合スコア5

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2020/08/15 21:51

編集2020/08/15 22:07

前提・実現したいこと

syslogでログのファシリティに応じてログファイルを変更したいのですが、期待したとおりに振り分けられないので、教えていただきたいです。

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

ファシリティがlocal0のログのみを、/var/log/mylog.logに保存したいのですが、下記の設定だと、
local0以外のログも/var/log/mylog.logに追記されてしまいます。

該当のソースコード

現在、/etc/rsyslog.d/50-default.confは、以下の内容になっています。

auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog #cron.* /var/log/cron.log #daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log #lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log #user.* -/var/log/user.log local0 -/var/log/mylog.log

試したこと

local0 -/var/log/mylog.log
にした状態で、
logger -p local1.info "Test local1"
を実行すると、local1にもかかわらず、/var/log/mylog.logに追記されてしまいます。

また、/etc/rsyslog.d/50-default.confを変更し、
local0.* -/var/log/mylog.log
としたところ、ファシリティがlocal0のログが、追記されたりされなかったりします。
追記したりされなかったりというのは、logger -p local0.info "Test local0"とコマンドを打っても、追記される場合と、追記されない場合があるということです。
その現象が起こる条件については、調べてもわかりませんでした。

調べたところ、local0.*とすれば良いと書いてあるサイトが多いのですが、その方法だとうまく行っておりません。
syslogに対する知識不足で、解決策がわからず、困っています。
どなたかご教授いただけないでしょうか。

補足情報(FW/ツールのバージョンなど)

OS : Ubuntu 16.04.6 LTS
rsyslogd : 8.16.0

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

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

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

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

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

guest

回答3

0

>追記したりされなかったりというのは、logger -p local0.info "Test local0"とコマンドを打って>も、追記される場合と、追記されない場合があるということです。

短時間に、同じメッセージが連続して発生して、ログ出力が抑止されている、
ということはないでしょうか(syslogが元々持つ機能です)

時間を開けたり、メッセージを変えたりするとどうでしょう。

投稿2020/08/15 23:10

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

t4gforce

2020/08/15 23:29

回答していただきありがとうございます。 教えていただいたとおり、loggerのコマンドを、メッセージを変えたり、時間を開けてコマンドを打ちましたが、追記されたりされなかったりという状態です。 また、logger -p local1.info "Test local1"のようにファシリティを変えても/var/log/mylog.logに追記されてしまう事があるのですが、こちらも疑問なので教えていただけないでしょうか。 よろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2020/08/16 00:03

>local0.* -/var/log/mylog.log ファイル名の先頭のハイフンをとってみてはどうでしょう。 ハイフンは、バッファリングあり、の意味なので、すぐにログが出力されないのかも。 そのうえで、 あらためて、 sudo /etc/init.d/rsyslog restart して、時間をあけたり、メッセージを変えたりしてみてどうなりますか。
t4gforce

2020/08/16 00:27 編集

アドバイスしていただきありがとうございます。 先頭のハイフンを取り、sudo /etc/init.d/rsyslog restartした上で時間を開けたりメッセージを変えたりしましたが、結果は変わらず追記されたりされなかったりという状態です。 また、local0.*ではなくlocal0だけの方でもハイフンを取り色々やってみましたが、local0の方はlocal0以外のファシリティのログを出力してしまうことも変わらずでした。 また、/var/log/syslogを確認したのですが、loggerコマンドでファシリティをlocal0にし出力したのにlocal0.*で出力されなかったメッセージと、local0.*に出力されたメッセージの全てが、/var/log/syslogに書き込まれていました。 何度も質問してしまい申し訳ありませんが、なにか他に試すべきことなどあれば教えて下さい。
guest

0

自己解決

受信したログをホスト名で振り分けることでとりあえず解決しました。

投稿2020/08/16 11:24

t4gforce

総合スコア5

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

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

0

*.*が
>>/var/log/syslogに書き込まれ

るように記述されているようにお見受けしますが・・

投稿2020/08/16 10:39

hana_yama_san

総合スコア923

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問