zoukankan      html  css  js  c++  java
  • /var/log/messages文件监控

    近来项目中遇到一个问题,情况是这样的,我们使用ELK中的LOGSTASH来监控LINUX的系统日志文件:/var/log/messages文件,但这个文件默认的权限是600,这样很为难,

    我们使用特定的日志收集用户启动LOGSTASH进程,这样对于没有权限的文件就无法监控了.

    以下记录我寻找答案的经历.

    我不熟LINUX文件权限管理,知其一二,主要是不懂UMASK,直接的想法是chmod o+r /var/log/message不就行了.

    但是这个文件是会滚动的,滚动后生成的日志权限又变成600了, 总不能一直启动一个进程来检查,然后再改,而且这个进程要运行在ROOT权限下.

    1.使用SUDO来操作LOGSTASH,这个方案最好,但现在我们通过SHELL来进行,现在有些小麻烦,但是我觉得还是得通过这种方法,这是最合理的方法.

    2.想办法获取读的权限

    我曾开始想到使用chmod -R o+r /var/log 的方法来测试,随便测试了一个文件,以为是正确的,其实我的测试是错误的,因为ROOT的UMASK默认就是022.

    所以不用改,默认生成的文件其他组用户就有读的权限.

    经同事提醒,我转移到UMASK上面.找了一些资料.

    默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认 权限是755(7-0,7-2,7-2)
    umask 0003 创建后的文件权限是rw-rw-r--
    而且一开始也不熟/var/log/messages的来源,找到SYSLOG,找到RSYSLOG,然后再慢慢清楚了.

    rsyslog是SYSLOG的替代品,现在默认很多系统就使用RSYSLOG了,我用的CENTOS,还有REDHAT都是这样.

    http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch05_:_Troubleshooting_Linux_with_syslog#.V7HLZbM_Dod

    然后找到/etc/init.d/rsyslog 编缉查看 ,找到 umask 077 ,释然.终于找到你了.

  • 相关阅读:
    Python菜鸟之路:Python基础-线程、进程、协程
    Python菜鸟之路:Python基础-Socket编程-2
    Python菜鸟之路:Python基础-Socket基础-1
    react-native 使用 antd-mobile-rn UI进行开发app
    Java基础
    Java基础
    Java基础
    Java基础
    Java基础
    Java基础
  • 原文地址:https://www.cnblogs.com/huaxiaoyao/p/5774520.html
Copyright © 2011-2022 走看看