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

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

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

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

Q&A

解決済

1回答

1793閲覧

rsyslogの設定について

syncrock

総合スコア209

Linux

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

0グッド

2クリップ

投稿2018/01/17 04:55

編集2018/01/17 07:52

rsyslogに自サーバで動いている各アプリケーションが
標準出力に何かを出力するようなことをした場合、
それらを全て掴むような設定などありますでしょうか。

tomcatのcatalinaに出力されるべきGCログが/var/log/messagesに出力されており、
GCログの出力先を設定すると/var/log/messagesに出力されない状態です。
つまり、標準出力で出される内容を掴んでいるのではと思っています。
デフォルトなのか別の意図で設定した内容が影響しているのかわかっていません。
rsyslogにそもそもそのような事を出来るような設定があれば調査したいため教えて頂きたいです。

OSはRHEL 7.3です。


imjournalをloadしています。
また、messagesの設定として*.infoになってます。
tomcatをsystemctlで起動している場合、標準出力に出力される内容は全てmessagesに出力されるということでしょうか・・・?

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

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

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

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

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

guest

回答1

0

ベストアンサー

tomcatをsystemctlで起動している場合、標準出力に出力される内容は全てmessagesに出力されるということでしょうか・・・?

そうだと思います。

systemctl から起動したプロセスの標準出力、標準エラー出力を journald が保持しています。
journalctl -u tomcat とすると、journald のログから tomcat にマッチするものを見ることができます。

rsyslogdimjournal モジュールで journald と連携し、journald からログをもらってログファイルに出力しています。
syslog の facility, priority は journalctl -o verbose -u tomcat で調べることができます。
SYSLOG_FACILITY=3 (daemon), PRIORITY=6 (info) になっていると思います。

投稿2018/01/17 09:40

TaichiYanagiya

総合スコア12146

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

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

syncrock

2018/01/18 00:31

回答ありがとうございます。 記載頂いたコマンドを実行したところ、おっしゃるとおりでした。 これを回避するためには、imjournalのロードをやめることになるのでしょうか。 もしくは、tomcatの標準出力は掴まないような設定が可能なのでしょうか。
TaichiYanagiya

2018/01/18 10:03

> これを回避するためには、imjournalのロードをやめることになるのでしょうか。 imjournal モジュールをロードしないと、tomcat だけでなく、他のシステムログも /var/log/messages に記録されなくなると思います。 > もしくは、tomcatの標準出力は掴まないような設定が可能なのでしょうか。 tomcat の systemd 用起動スクリプトの [Service] セクションで、StandardOutput=null と設定して、標準出力を捨ててしまうのはどうでしょうか(systemd.exec(5))。
syncrock

2018/01/18 23:22

> imjournal モジュールをロードしないと、tomcat だけでなく、他のシステムログも /var/log/messages に記録されなくなると思います。 他のシステムから出力される標準出力が。ということですよね? > tomcat の systemd 用起動スクリプトの [Service] セクションで、StandardOutput=null と設定して、標準出力を捨ててしまうのはどうでしょうか(systemd.exec(5))。 出来れば、Catalinaに出力したいので標準出力を捨てる・・・というのは控えたいのです。 GCログを別途指定する方法もありますが、運用的に出来ればcatalinaに出力したいと思ってます。
TaichiYanagiya

2018/01/19 02:32

> 他のシステムから出力される標準出力が。ということですよね? いえ、kernel や systemd のメッセージすべてです。 > 出来れば、Catalinaに出力したいので標準出力を捨てる・・・というのは控えたいのです。 tomcat のログが「Catalina」に出力されていて、さらに標準出力もマージしたいということでしょうか? 「Catalina」は tomcat プロセスから open されているのですよね? であれば、別のプロセスから「Catalina」に追記するのは危険ですので、tomcat 側で GCログを「Catalina」に出力する機能がないのであれば、別ファイルにするしかないと思います。
syncrock

2018/01/19 03:49

> tomcat のログが「Catalina」に出力されていて、さらに標準出力もマージしたいということでしょうか? マージというか、本来GCログは出力先を指定しない場合は標準出力に出力されます。 で、それがcatalina.outなので問題ないのですが、今はimjournalをロードしているために標準出力を掴んでいる状態になりcatalina.outにはかれずmessagesにはかれるという状態になっています。 やっぱりimjournalを生かしたままということであれば別ファイルになるんですかね。。。 ありがとうございます。
TaichiYanagiya

2018/01/19 04:07

起動時に "-outfile catalina.out -errfile catalina.out" を指定しても GCログが標準出力に出るのですか?
syncrock

2018/01/19 04:11

> 起動時に "-outfile catalina.out -errfile catalina.out" を指定しても GCログが標準出力に出るのですか? すいません、それは試せていませんでした。 起動スクリプトに追記するものでしょうか? もしくはtomcat.confのCATALINA_OPTSに設定するものでしょうか?
TaichiYanagiya

2018/01/19 04:30

CentOS 7.4, tomcat-7.0.76-3.el7_4.noarch に含まれる /usr/libexec/tomcat/functions の中の JSVC_OPTS を見て "-outfile" オプションがあると思ったのですが、この箇所は使われないようです。 起動スクリプトを修正して、標準出力を catalina.out にするしかないかもしれません。 (例) /usr/libexec/tomcat/server run start ↓ run start >> /var/log/tomcat/catalina.out 2>&1
syncrock

2018/01/19 05:40

回答ありがとうございます。 すぐに試せる環境に今いないため、後日試させて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問