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

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

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

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

Q&A

解決済

2回答

18457閲覧

CentOS7でsendmailのログファイルmaillogへログが出力されない

kaicho2015to18

総合スコア15

CentOS

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

0グッド

0クリップ

投稿2019/02/18 00:36

編集2019/02/19 14:51

解決策

当問題は解決しました。解決策を以下に記載します。

◆解決策◆
0. /var/lib/rsyslog/imjournal.stateを削除(実際には、ファイル名を変更)
0. rsyslogを再起動

 ↓↓↓↓
meillogへログが出力されるようになりました。

解決!!
やったーーー!

当問題は解決したものの、実は、本当に解決したい問題は、sendmailでメールを送信できないという問題なのです。そのためにmailのログが必要でした。少しずつ、一歩ずつ前進。がんばる。。。

◆解決への手順◆

[1] /var/log/messagesの確認

/var/log/messages を参照すると、以下のエラーメッセージが出力されていました。

sd_journal_get_cursor() failed: 'Cannot assign requested address'

[2] エラーメッセージについて検索

このメッセージをググったところ、CentOS7をVMで利用している場合に出るバグとの事でした。
(Bug 1088021)
当環境はDITのVPSです。おそらくVPSと言っても、VMの仮想環境でレンタルをしているのだと思います。
なので、このバグに該当するのではないかと思います。

バグの説明を読んでいくと、以下の内容が記載されています。

you can delete /var/lib/rsyslog/imjournal.state and restart the daemon as a workaround.

この操作を行うと治るのではないかと判断しました。

CentOS7でsendmailのログファイルmaillogへログが出力されない

sendmailのサービスを再起動してもmaillogへログが出力されません...
何をしたらログが出力されるのか教えて下さい(>_<)

  • Webminでの操作方法を教えて頂きたいです
  • もしくはCentOSのCUI上での操作方法でもよいです

1日ネット等で調べてあれこれやってみたのですが解決には至りませんでした。。。

環境等

CentOSバージョン
7.0.146

Sendmailバージョン
8.14.7

Webminバージョン
1.881

ログが出なくなった経緯1

  1. maillogを手動で削除

ログがいっぱい溜まっていたので、ログを一度削除しました。
0. maillogファイルを新規に作成
イメージ説明

※この後の操作と結果、結果を受けて試した事は以下の通りです。

操作
Sendmilのサービスを再起動

結果
maillogへログが出力されなくなりました...

試したこと
[1].ログサービスを再起動

bash

1$ systemctl restart rsyslog.service

[2].Sendmailのサービスを再起動
maillogへはログが出力されませんでした...
maillogのサイズは依然として0バイト...うぅ
イメージ説明

ログが出なくなった後に試したこと

  1. Webdminのシステムログ設定画面において、maillogの出力設定を削除

※以下の部分を削除しました。
イメージ説明
0. maillogの出力設定を新規に作成
イメージ説明
↓↓↓
イメージ説明
0. 上図の"変更を適用"をクリックし、変更を適用
0. Sendmailのサービスを再起動
再起動は、Webmin上の下図の画面にある"sendmailを開始"ボタンをクリックする事で再起動を行いました。
イメージ説明
それでも、maillogへはログが出力されませんでした...うぅぅ
イメージ説明

回答を受けての操作1

  1. maillogファイルの削除

$ rm maillog

  1. ログサービスの再起動

$ systemctl restart rsyslog.service

  1. sendmailサービスの再起動

$ systemctl restart sendmail.service

結果
maillogファイルは作成されませんでした。
No create maillog.

回答を受けての操作2

/etc/syslog.confに記載されているメールのログに関わる設定を、以下のように記載し直しました。

mail.none /var/log/maillog

mail.* /var/log/maillog

その上で、以下の操作をしまた。

1.maillogのパーミッションを666として、実行権限以外を有効
2.rsyslogサービスを再起動
3.sendmailサービスを再起動

結果
maillogへsendmailメールのログは出力されませんでした…

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

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

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

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

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

Stan_Dma

2019/02/18 00:48 編集

The problem would be the file is owned by root user. Just remove the file and do not recreate it by yourself.
Stan_Dma

2019/02/18 02:15

Need not chmod. Remove it and leave it, then the file may be recreated by the mail system.
Stan_Dma

2019/02/18 03:01

How bout again systemctl restart rsyslog.service after removing the maillog (do nothing more than removing)?
kaicho2015to18

2019/02/18 03:13

$ rm maillog $ systemctl restart rsyslog.service . . . maillog file was not created.
Stan_Dma

2019/02/18 04:28

Some mailing execution would be needed to create the maillog. When you would like to choice a simpler way, 'reboot' your whole system.
kaicho2015to18

2019/02/18 14:22

I restarted the server, but the current situation did not change.
Stan_Dma

2019/02/19 00:23

Do you mean you restarted the server daemon service, or reboot your OS on the server software is runninb? Its not a problem. Why not mail a mail something like that: # cat > /tmp/email.txt << "EOF" Subject: Test Mail This is a test mail. EOF # sendmail root@localhost < /tmp/email.txt
kaicho2015to18

2019/02/19 14:43

arigatou. The problem has been resolved. delete /var/lib/rsyslog/imjournal.state and restart the daemon as a workaround.
guest

回答2

0

Rsyslogdの再起動は正常に完了してますか?

再起動時messagesにほ再起動出来ているログが出力されてますか?
Syslog再起動後,rootで fuser -c /var/log/*を実行し結果を見せてください。

投稿2019/02/19 13:18

scsi

総合スコア2840

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

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

kaicho2015to18

2019/02/19 14:16

回答、ありがとうございました。 messagesログを確認した所、以下のエラーメッセージが出力されていました。 sd_journal_get_cursor() failed: 'Cannot assign requested address' このせいで、maillogが出力されていないようでした。 このメッセージをググった所、解決策がわかりました。
guest

0

ベストアンサー

ログファイルを消して作ったのなら、必要なことはrsyslogの再起動だけです。ログファイルに書くのはrsyslogなので。
ファイルの所有者やパーミッションが正しいという前提ですが。

それ以外に色々やってしまったのは元に戻してください。

投稿2019/02/18 02:54

otn

総合スコア84423

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

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

kaicho2015to18

2019/02/18 14:14

回答ありがとうございます。 maillogのパーミッションを666として実行権限以外を有効にした上で、rsyslogサービスを再起動したのですが、ログが出力されません… このログ出力に関する設定ファイルで、 /etc/rsyslog.conf メールに関するログの出力設定が以下の部分なのですが、これだけで合っているのでしょうか? mail.none /var/log/maillog
kaicho2015to18

2019/02/18 14:23

サーバを再起動しましたが、現状は変わりませんでした... うぅなんでーー
otn

2019/02/18 15:11

プライオリティがnoneだからですね。noneという英単語の意味がわからなかったんでしょうか? 以前出ていたと言うことで有れば、そのときはnone以外だったはずで、そのときの状態に戻してください。 他にも元に戻していない物は元に戻しましょう。
kaicho2015to18

2019/02/18 21:55 編集

回答ありがとうございます。 noneの英単語としては 無し の意味なのは理解しています。ただ、 /etc/rsyslog.conf での設定上、noneがどの様な意味なのか、分かっていませんでした。 これを踏まえて、以下のように記載し直しました。 mail.* /var/log/maillog その上で、以下の操作をしまた。 1.maillogのパーミッションを666として実行権限以外を有効 2.rsyslogサービスを再起動 3.sendmailサービスを再起動 結果 maillogへsendmailメールのログは出力されませんでした… システムログ設定での、maillogの出力に関わる、変更前の設定はわからない状態です。 rsyslog.confへの設定を記載する際に、以下の内容だけでは足りないのでしょうか? mail.* /var/log/maillog
otn

2019/02/19 13:24

> mail.* /var/log/maillog mail関係の全てのログを書くなら、この記述で合っています。 可能性としては、ぱっと思いつくのは、 ・/etc/rsyslog.conf 以外の設定ファイルを読んでいる(考えにくいが) ・/etc/rsyslog.d/* に何かmailの記述がある など。
kaicho2015to18

2019/02/19 14:14

色々と助けて頂きまして、ありがとうございました! 解決しました。
kaicho2015to18

2019/02/19 14:19

決定打ではありませんでしたが、素早いレスと、解決策を少しづつ絞り込んで頂きましたので、ベストアンサーとさせて頂きました。 大変ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問