设为首页 收藏本站
查看: 848|回复: 0

[经验分享] Linux日志(二)

[复制链接]

尚未签到

发表于 2018-5-18 13:13:00 | 显示全部楼层 |阅读模式
  日志的工作原理及配置


  •   syslog
      syslog同closelog、openlog共同给system logger发送消息
      Linux由许多子系统构成,例如网络、内存文件访问等,这些子系统需要给用户发送一些消息,这些消息内容包括消息的来源及重要性等。所有的子系统都会把消息发送到一个可以维护的公用区域,于是就有了syslog程序。
      syslog负责接收消息,这些消息包含了内核和程序产生的错误信息、警告信息及其他信息。并把这些消息发送到日志文件中,如/var/log/messages.一些重要信息也会显示在用户的窗口上。
      syslog有两个重要文件:syslogd和syslog.conf
      syslog能够接受访问系统的日志信息并且根据“/etc/syslog.conf”配置文件中的指令处理这些信息。守护进程和内核提供了访问系统的日志信息。所有的希望生成日志信息的程序都可以向syslog接口请求生成该信息。
      syslog守护进程
      Linux由许多子系统组成的,在后台中由许多daemon程序运行,这些程序处理一些日常的工作。每一个子系统发出日志消息的时候都会给消息指定一个类型。一个消息分成两部分:“设备”和“级别”,“设备”标识发出消息的子系统,可以把同一类型的消息组合在一起,“级别”标识消息的重要程度,其范围从debug(最不重要)到emerg(最重要),设备和级别组合起来称为priority。
      syslog在后台运行,并把消息从日志区转移到日志文件中。
      syslog.conf文件
      这个文件告诉了syslog程序如何根据消息的来源和级别来报告消息
      该文件使用如下形式
      factility.level action
      syslog.conf的第一列facility。level用来指定日志功能和日志级别,中间用.隔开,可以使用*来匹配所有的日志功能和日志的级别。第二列action是消息的分发目标。
      facility.levle字段也被称为选择域(seletor)
      facility指定syslog功能,主要包括一下这些:
      auth 由pam_pwdb报告的认证活动。
      authpriv包括特权信息如用户在内的认证活动
      cron 与cron和at有关的信息
      daemon 与inetd守护进程有关的信息
      kern 内核信息,首先通过klogd传递、
      lpr 与打印服务有关的信息
      mail 与电子邮件有关的信息
      mark syslog内部功能用于生成时间戳
      news 来自新闻服务器的信息
      syslog 由syslog生成的信息
      user 由用户程序生成的信息
      uucp 由uucp生成的信息
      local0---local7 与自定义程序使用,例如使用local5作为ssh功能
      * 通配符代表除了mark以外的所有功能
      

      level 级别,决定消息的重要性
      每个功能对应的优先级是按一定的顺序排列的,emerg是最高级,其次是alert,以此类推。缺省时,在/etc/syslog.conf记录中指定的级别为该级别和更高的级别。如果希望使用确定的级别可以使用两个运算符号!(不等)和=。
      例:user.=info 表示告知syslog接受所有的在info级别上的user功能信息。
      下面的等级重要性逐级递减:
      emerg 系统不可用
      alert 需要立即被修改的条件
      crit 阻止某些工具或子系统功能实现的错误条件
      err 阻止工具或某些子系统实现的错误条件
      warning 预警信息
      notice 具有重要性的普通条件
      info 提供信息的消息
      debug 不包含函数条件或问题的其他信息
      none 没有重要级别,通常用于拍错
      * 所有级别,除了none
      action 字段作为动作域,所表示的活动具有许多灵活性,特别是,可以使用名称管道的作用是可以使syslog生成后处理信息。
      syslog主要支持以下活动:
      file  将信息追加到指定的文件尾
      terminal  完全的串行或并行设别标志符
      @host  远程的日志服务器
      username  将消息写到指定的用户
      named pipe  指定使用mkfifo命令来创建FIFO文件的绝对路径
      *   将消息写到所有的用户
      选择域指明消息的类型和优先级;动作域指明syslog接收到一个与选择标准相匹配的消息时所执行的动作。每个选项是由设备和优先级组成。当指明一个优先级时,syslog将记录一个拥有相同或更高优先级的消息。比如如果指明"crit",则所有标志为crit、alert和emerg的消息将被记录。每行的行动域指明当选择域选择了一个给定消息后应该把他发送到什么地方。
  • klogd 守护进程
    klog是一个从UNIX内核接受消息的设备  
    klogd
    守护进程获得并记录 Linux 内核信息。通常,syslogd 会记录 klogd
    传来的所有信息。也就是说,klogd会读取内核信息,并转发到syslogd进程。然而,如果调用带有 -f filename 变量的 klogd
    时,klogd 就在 filename 中记录所有信息,而不是传给 syslogd。当指定另外一个文件进行日志记录时,klogd
    就向该文件中写入所有级别或优先权。Klogd 中没有和 /etc/syslog.conf 类似的配置文件。使用 klogd 而避免使用
    syslogd 的好处在于可以查找大量错误。
    日志管理及日志保护
    logrotate程序用来帮助用户管理日志文件,它以自己的守护进程工作。logrotate周期性地旋转日志文件,可以周期性地把每个日志文件重命名
    成一个备份名字,然后让它的守护进程开始使用一个日志文件的新的拷贝。在/var/log/下产生如maillog、maillog.1、
    maillog.2、boot.log.1、boot.log.2之类的文件。它由一个配置文件驱动,该文件是
    /etc/logroatate.conf。
    以下是logroatate.conf文件例子:
    # see "man logrotate" for details
    # rotate log files weekly
    weekly
    #以7天为一个周期
    # keep 4 weeks worth of backlogs
    rotate 4
    #每隔4周备份日志文件
    # send errors to root
    errors root
    #发生错误向root报告
    # create new (empty) log files after rotating old ones
    create
    #转完旧的日志文件就创建新的日志文件
    # uncomment this if you want your log files compressed
    #compress
    #指定是否压缩日志文件
    # RPM packages drop log rotation information into this directory
    include /etc/logrotate.d
    # no packages own lastlog or wtmp -- we'll rotate them here
    /var/log/wtmp {
        monthly
        create 0664 root utmp
        rotate 1
    }

在网络应用中,有一种保护日志的方式,在网络中设定一台秘密的syslog主机,把这台主机的网卡设为混杂模式,用来监听子网内所有的syslog包,这
样把所有需要传送日志的主机配置为向一台不存在的主机发送日志即可。这样即使黑客攻陷了目标主机,也无法通过syslog.conf文件找到备份日志的主
机,那只是一个不存在的主机。实际操作中还可以辅以交换机的配置,以确保syslog包可以被备份日志主机上的syslog进程接受到。比如把
syslog.conf中的传送日志主机设为
@192.168.0.13,但实际网络中不存在这个日志主机,实际可能是192.168.0.250或者其他主机正在接受syslog包。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-461747-1-1.html 上篇帖子: Linux时间 时区 同步 下篇帖子: Linux作业10
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表