
編集1: syslog-ng 起動コマンド:
/usr/sbin/syslog-ng -u syslog -g syslog -R /tmp/syslog-ng.persist -F
使用されるコマンド:
syslog-ng-ctl verbose --set=on
そしてsyslog-ng-ctl verbose
syslog-ng
詳細モードで実行しようとしていますが、エラーが発生します:
制御ソケットの接続エラー、ソケット='/var/lib/syslog-ng/syslog-ng.ctl'、エラー='そのようなファイルまたはディレクトリはありません'
root@CHB:~# syslog-ng-ctl verbose
Error connecting control socket, socket='/var/lib/syslog-ng/syslog-ng.ctl', error='No such file or directory'
そこで ctl ファイルを作成し、必要に応じて権限を変更しましたが、再びエラーが発生しました:
制御ソケットへの接続エラー、ソケット='/var/lib/syslog-ng/syslog-ng.ctl'、エラー='接続が拒否されました'
root@CHB:~# touch /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# ls -l /var/lib/syslog-ng/syslog-ng.ctl
-rw-r--r-- 1 root root 0 Oct 21 19:11 /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# chown syslog /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# ls -l /var/lib/syslog-ng/syslog-ng.ctl
-rw-r--r-- 1 syslog root 0 Oct 21 19:11 /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# chgrp syslog /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# ls -l /var/lib/syslog-ng/syslog-ng.ctl
-rw-r--r-- 1 syslog syslog 0 Oct 21 19:11 /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# chmod +x /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# ls -l /var/lib/syslog-ng/syslog-ng.ctl
-rwxr-xr-x 1 syslog syslog 0 Oct 21 19:11 /var/lib/syslog-ng/syslog-ng.ctl
root@CHB:~# syslog-ng-ctl verbose
Error connecting control socket, socket='/var/lib/syslog-ng/syslog-ng.ctl', error='Connection refused'
root@CHB:~# syslog-ng-ctl verbose --set=on
Error connecting control socket, socket='/var/lib/syslog-ng/syslog-ng.ctl', error='Connection refused'
私のシステム情報
root@CHB:~# cat /etc/issue
Poky (Yocto Project Reference Distro) 2.0 \n \l
root@CHB:~# uname -a
Linux CHB 3.2.48 #1 SMP Tue Mar 14 15:52:38 CET 2017 i686 GNU/Linux
追加情報が必要な場合はお知らせください。
問題解決にご協力いただければ幸いです。
編集2:
設定ファイル
#syslog settings
CS_SYSLOG_DAEMON="/usr/sbin/syslog-ng"
CS_SYSLOG_NAME="syslog-ng"
# user/group
CS_SYSLOG_USER="syslog"
CS_SYSLOG_GROUP="syslog"
# syslog port/interface to be used in syslog-ng.conf in case of remote logging
CS_SYSLOG_PORT="2020"
CS_SYSLOG_INTERFACE="eth1"
# syslog specific parameters: user, group, persist file in /tmp, in the foreground (start-stop-daemon will take care of the spawn)
CS_SYSLOG_ARGS="-u $CS_SYSLOG_USER -g $CS_SYSLOG_GROUP -R /tmp/syslog-ng.persist -F"
CS_SYSLOG_EXTRA_ARGS=
init.dスクリプトの起動コマンドでは、上記の変数は
startdaemon $CS_SYSLOG_DAEMON $CS_SYSLOG_NAME $CS_SYSLOG_ARGS $CS_SYSLOG_EXTRA_ARGS
;;
答え1
詳細出力は /var/log/messages に保存されます。
ソケットが存在するディレクトリの権限を確認します。通常、ソケット ファイルはサービスの起動時に作成されますが、サービス自体によって作成されることもあります。そのため、どのユーザーがサービスを開始するかを確認します。次に、ソケット ファイルが作成されるディレクトリの権限を修正します。
syslog がサービスを開始するユーザーである場合、/var/lib/syslog-ng はユーザー syslog によって所有される必要があります。システムの詳細がわからないため、デバッグの目的のみで、グループに書き込みアクセス権も付与することをお勧めします。
rm /var/lib/syslog-ng/syslog-ng.ctl
chmod 770 /var/lib/syslog-ng
chown syslog:syslog /var/lib/syslog-ng
何かを破壊する可能性のある奇妙なファイルが配置されていないことを確認するために、syslog-ng.ctl ファイルを rm します。所有者とグループの読み取り、書き込み、実行の権限を変更します。システム上では、他のユーザーは何もする必要がないと思います。このディレクトリの所有者とグループを syslog に変更します。