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

希望对大家有帮助!!

猜你喜欢

转载自blog.csdn.net/weixin_43279032/article/details/83828781