nginx access.log 不写入日志问题

6 篇文章 0 订阅
2 篇文章 0 订阅

nginx access.log 不写入日志问题

兄弟们,理了个大普,我以为可能是权限什么的问题导致不能写入日志,实际上 keepalived 只会绑定一台机器

故事是这样的:线上出了个小问题,本想着看下两台nginx服务器日志的,突然发现有一台机器的日志好多天没写入了,于是开始更改权限 chmod 777 access.log 发现还是不能写入,后来又翻了翻我自己的笔记看看权限是不是有其它问题,笔记如下:

#Operation not permitted  删除不了,不能修改文件
# 查看文件权限
lsattr access.log
#chattr命令用于修改文件属性,chattr命令需要root权限。
chattr access.log


lsattr 文件属性说明:

a: append only; 系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。

c: compressed; 系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。

d: no dump; 在进行文件系统备份时,dump程序将忽略这个文件。

i: immutable; 系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
# end 


# linux 有两套权限 rwx和selinux权限

getenforce 查看是否打开状态
setenforce 1是启用 setenforce 0 是放开(会写入日志,不会警告)
ls -Z 查看 unconfined_u:object_r:usr_t:s0 权限等

然后当我排查并且设置后还是不会写入,如图
在这里插入图片描述
其实正常情况下是会写入的,后来我尝试单独访问,在另外一台服务器上 curl 发现是会写入日志的
在这里插入图片描述
其实分析到这里就能想到问题了,我们有一个 keepalived 的应用,是一直没有转发到这台机器上来,后来我把这台机器的 keepalived 应用重启了 systemctl restart keepalived,然后就发现日志在写入了。

完了后我跟领导汇报后领导跟我来了句 “那这样52上还会有日志吗?”,我去另外一台服务器一看还真没写入了,我当时人都傻了。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以在OpenResty配置文件中使用ngx_http_log_module模块的功能来进行日志分割。具体的配置步骤如下: 1. 在nginx.conf文件中添加以下配置: ``` http { ... log_format access_log '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; ... } ``` 这里定义了一个名为access_log日志格式,包含了访问者的IP地址、访问时间、请求内容、状态码、响应大小、来源页和用户代理等信息。 2. 在server或location块中,添加access_log指令,指定日志文件路径和日志格式,例如: ``` server { ... access_log /usr/local/openresty/nginx/logs/access.log access_log; ... } ``` 这里将访问日志写入到指定路径的access.log文件中,并使用上一步定义的access_log日志格式。 3. 使用logrotate等工具对日志文件进行定期切割和压缩,例如: ``` /usr/local/openresty/nginx/logs/access.log { daily rotate 7 missingok notifempty compress delaycompress create 0644 nobody nobody } ``` 这里使用daily选项对日志文件进行每日切割,保留最近7天的日志文件,使用compress选项对旧日志文件进行压缩。其他选项的含义可以使用man logrotate命令查看。 以上就是配置OpenResty访问日志分割的三个步骤。配置完成后,OpenResty将会自动将访问日志写入到指定的日志文件中,并在需要时进行切割和压缩,以便于管理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值