在詳細模式下執行 syslog-ng

在詳細模式下執行 syslog-ng

編輯1:syslog-ng啟動命令:
/usr/sbin/syslog-ng -u syslog -g syslog -R /tmp/syslog-ng.persist -F

使用的命令:

syslog-ng-ctl verbose --set=onsyslog-ng-ctl verbose

我嘗試syslog-ng在詳細模式下運行,但出現錯誤:

連接控制套接字時出錯,socket='/var/lib/syslog-ng/syslog-ng.ctl', error='沒有這樣的檔案或目錄'

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 檔案並根據需要更改了權限,但隨後再次出現錯誤:

連線控制套接字時出錯,socket='/var/lib/syslog-ng/syslog-ng.ctl', error='連線被拒絕'

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。

相關內容