我有一个 Amazon Linux 2023 Web 服务器,它已经正常运行了数周。今天早上,它莫名其妙地停止响应了大约两个小时,然后才(莫名其妙地!)恢复。根据我们的日志,面向用户的服务器应用程序都没有崩溃,Web 服务器只是无法查询mongod
在这段时间内在同一节点上运行的数据库守护程序。
检查journalctl
日志时,我注意到服务器开始出现异常行为的几秒钟内记录了一个异常。
Feb 02 18:06:51 ceres.swiftinit.org audit[374371]:
AVC avc: denied { name_connect } for pid=374371 comm="NIO-ELT-0-#1" dest=27017
scontext=system_u:system_r:init_t:s0
tcontext=system_u:object_r:mongod_port_t:s0
tclass=tcp_socket permissive=1
374371
是 Web 服务器的 PID,27017
是标准端口。这个日志事件是什么意思?是否与应用程序在这段时间内mongod
无法通信有关?mongod
答案1
该消息是来自 SELinux 的拒绝,表明该进程 (374371) 试图执行未配置的操作 - 在这种情况下,通过(我认为)DNS 名称连接到网络。
您可以通过运行 来允许它setsebool -P httpd_can_network_connect_db 1
,但如果它正常工作,然后短暂地不工作,那么我会倾向于关闭该设置。可能是由于某种短暂的原因,mongo 服务通过非本地 IP 解析,而 HTTPD 试图使用该 IP?
无论如何 - SELinux 是导致该消息的原因,在盲目关闭它之前,值得对其进行一些调查和阅读。它旨在防止恶意软件逃脱应用程序的限制,因此可能只是在做它的工作。