GNU/Linux >> Linux の 問題 >  >> Linux

JournalctlでSyslogがログに記録されないようにしますか?

systemdによって管理される単純なPythonスニペットがあります rsysogdにログを記録するサービス 構成ファイルを定義して、定義した形式でsyslogサーバーに配置するデーモン。これは今のところ正常に機能しています。

以下のコードでは、サーバーにログオンする文字列として引数を渡します。以下のコードをモジュールとして使用しており、ロギングのみに使用しています。実際のスクリプトでは、これをロギングの目的で使用しています。

#!/usr/bin/env python

import syslog
import sys

syslog.openlog(facility=syslog.LOG_LOCAL0)
syslog.syslog(syslog.LOG_INFO, sys.argv[1])

アプリケーションはsystemdによって管理されているため journalctl -xeから見たときに、syslogのコピーを利用できるようにしています。 およびjournalctl -u <my-service> ジャーナルログに記録している他の重要な情報があるので、これは起こりたくありません。

サービス定義は

です
[Unit]
Description=Computes device foobar availability status

[Service]
Type=simple

EnvironmentFile=/etc/sysconfig/db_EndPoint
ExecStart=/usr/bin/python /opt/foobar/foobar.py
WatchdogSec=60
RestartSec=10
Restart=always
LimitNOFILE=4096

[Install]
WantedBy=default.target

および/etc/systemd/journald.conf ファイル、有効にしていない 利用可能なオプションの。このjournald.confドキュメントを調べて、ForwardToSyslog=noを使用しました journaldを再起動しました としてのサービス

systemctl restart systemd-journald

また、サービスユニットを再起動しましたが、syslogサーバーへのログアウトが表示されますおよび ジャーナルログにも。ここで欠けているオプションは何ですか?

承認された回答:

rsys[l]ogdデーモンにログを記録するsystemdサービスによって管理される単純なPythonスニペットがあります[…]

いいえ、していません。

あなたが持っているのは、systemdジャーナルにログを記録するサービスです。よく知られている/dev/logをリッスンしているサーバー Pythonプログラムが通信しているソケットはrsyslogdではありません 。 systemd-journaldです 。 rsyslogd 反対側に取り付けられている systemd-journaldの 、そしてあなたのPythonプログラムはそれに話しかけていません。

このことから、systemd-journaldを介してものを送信しない唯一の方法は明らかです。 その他を使用することです rsyslogdにルーティングします 、ない Pythonライブラリがデフォルトで使用するよく知られたソケット。それはすべて、rsyslogdをどのように構成したかによって異なります。 。

  • imudpを使用してUDPサーバーをオンにしている可能性があります モジュール。この場合、そのようなUDPサーバーと通信する別のPythonライブラリを使用して、Pythonプログラムにそれを使用するように指示できます。 (Pythonのsyslogライブラリは、よく知られているローカルソケットを使用するように配線されています。)
  • または(そして、マシンの外でUDPサービスを公開しないように注意する必要がある場合は)rsyslogdを指定することもできます。 よく知られていない2番目のAF_LOCAL imuxsockでこれを設定してリッスンするソケット モジュールの構成。繰り返しになりますが、Pythonプログラムにそれを使用し、別のPythonライブラリを使用するように指示する必要があります。
関連:プラグインを許可したい場合、Safariがすべてのサイトで私に尋ねないようにするにはどうすればよいですか?

Pythonプログラムで正確に行うことは、この回答の範囲を超えています。

さらに読む

  • https://unix.stackexchange.com/a/294206/5132

Linux
  1. Journalctl:ターミナルでテキストが切り捨てられないようにする方法は?

  2. パッケージがインストールされないようにする必要がありますか?

  3. Pythonを3.4.3から3.5に更新する方法は??

  1. シェルからPythonスクリプトを実行する方法

  2. CentOS / RHEL :無効なリポジトリが yum キャッシュにダウンロードされないようにする方法

  3. PythonでMSワードファイルからテキストを抽出する

  1. Linux で SSH クライアントを閉じた後にバックグラウンド プロセスが停止しないようにする方法

  2. Bash からの Python モジュールのインポート

  3. ソースからビルドされた python をアンインストールしますか?