1. 程式人生 > >zabbix-agent無法啟動的問題

zabbix-agent無法啟動的問題

最近公司某伺服器重啟後發現上邊部署的zabbix客戶端無法啟動並有如下報錯:

zabbix_agentd [28973]: cannot create PID file [/var/run/zabbix/zabbix_agentd.pid]: [2]     No such file or directory

Fresh install of zabbix22-agent fails to start because the agent cannot create its PID file.

systemctl start zabbix-agent

cat /var/log/zabbix/zabbix_agentd.log

zabbix_agentd [2625]: cannot create PID file [/var/run/zabbix/zabbix_agentd.pid]: [2] No such file or directory

檢視/var/run/目錄下未找到zabbix/目錄,手動建立此目錄並在目錄下建立了檔案zabbix_agentd.pid,執行systemctl start zabbix-agent後發現此檔案又消失了

最後解決辦法如下: 新建一個zabbix目錄

mkdir /var/run/zabbix

授權使用者使用

chown root:zabbix /var/run/zabbix

改變目錄許可權

chmod 0775 /var/run/zabbix

修改安全環境

chcon -u system_u -t zabbix_var_run_t /var/run/zabbix

下邊附上chcon命令的用法: chcon命令是修改物件(檔案)的安全上下文,比如:使用者、角色、型別、安全級別。也就是將每個檔案的安全環境變更至指定環境。使用–reference選項時,把指定檔案的安全環境設定為與參考檔案相同。chcon命令位於/usr/bin/chcon。下面讓我們詳細講解一下chcon命令的使用方法。 語法

chcon [選項]... 環境 檔案... 
chcon [選項]... [-u 使用者] [-r 角色] [-l 範圍] [-t 型別] 檔案... 
chcon [選項]... --reference=參考檔案 檔案...

選項

-h, --no-dereference:影響符號連線而非引用的檔案。
--reference=參考檔案:使用指定參考檔案的安全環境,而非指定值。 
-R, --recursive:遞迴處理所有的檔案及子目錄。 
-v, --verbose:為處理的所有檔案顯示診斷資訊。 
-u, --user=使用者:設定指定使用者的目標安全環境。
-r, --role=角色:設定指定角色的目標安全環境。
-t, --type=型別:設定指定型別的目標安全環境。 
-l, --range=範圍:設定指定範圍的目標安全環境。

以下選項是在指定了-R選項時被用於設定如何穿越目錄結構體系

-H:如果命令列引數是一個通到目錄的符號連結,則遍歷符號連結。 
-L:遍歷每一個遇到的通到目錄的符號連結。 
-P:不遍歷任何符號連結(預設)。 
--help:顯示此幫助資訊並退出。 
--version:顯示版本資訊並退出.

例項

如果你想把這個ftp共享給匿名使用者的話,需要開啟以下:

chcon -R -t public_content_t /var/ftp

如果你想讓你設定的FTP目錄可以上傳檔案的話,SELINUX需要設定:

chcon -t public_content_rw_t /var/ftp/incoming

允許使用者HHTP訪問其家目錄,該設定限僅於使用者的家目錄主頁:

setsebool -P httpd_enable_homedirs 1 chcon -R -t httpd_sys_content_t ~user/public_html

如果你希望將samba目錄共享給其他使用者,你需要設定:

chcon -t samba_share_t /directory

共享rsync目錄時:

chcon -t public_content_t /directories

希望對大家有幫助!!