syslog日志收集器

syslog是早期的centos版本的日志收集器。在老版本的Linux系统中,Red Hat Enterprise Linux 3/4/5默认是使用的syslog作为系统的日志工具。

syslog的两个重要的守护进程:

1、syslogd:system。主要以收集系统服务为主

2、klogd:kernel。主要以收集内核信息为主

syslog的两个重要的工作机制:

1、支持单机模式

2、支持C/S架构,可通过UDP或TCP协议提供给日志记录服务。

rsyslog日志收集器

Rsyslog可以简单的理解为syslog的超集,从RHEL 6 开始系统默认使用了Rsyslog。

rsyslogd的进程名:rsyslogd

rsyslog的配置文件:/etc/rsyslog.conf

rsyslog的特性:

1、多线程

2、UDP,TCP,SSL

3、存储日志信息与MYSQL、PGSQL等数据库管理系统。

4、强大的过滤器,实现过滤日志信息中任何部分的内容。

5、自定义输出格式

rsyslog日志收集器重要术语:

facility:设施,从功能或程序上对日志进行分类:

auth,authpriv,cron,daemon,kern,Ipr,mail,mark,news,security,user,uucp,local0-local7,syslog

这一部分主要在/etc/rsyslog.conf文件中的"RULES"部分。

priority:优先级,这里理解为日志级别:

    debug:包含详细的开发情报的信息,通常只在调试一个程序时使用。
    info:情报信息,正常的系统消息,比如骚扰报告,带宽数据等,不需要处理。
    notice: 不是错误情况,也不需要立即处理。
    warning: 警告信息,不是错误,比如系统磁盘使用了85%等。
    err:错误,不是非常紧急,在一定时间内修复即可。
    crit:重要情况,如硬盘错误,备用连接丢失。
    alert:应该被立即改正的问题,如系统数据库被破坏,ISP连接丢失。
    emerg:紧急情况,需要立即通知技术人员。

指定级别:

      * :所有级别

      none:没有级别

      priority:此级别以高于此级别的所有级别;

      =priority:仅此级别

      .............

rsyslog服务器:

/etc/rsyslog.conf文件,这里我们开启tcp端口514

记录于MySQL日志中:

rsyslog还是相对比较简单的日志收集方案,如果有高性能和分布式需求,可以考虑用Flume、ELK等。

Flume采集rsyslog(日志源也可以是其它的日志,比如nginx日志等)发送到Kafka存储日志,做后续处理等。

Flume在保证高可靠上的措施要比rsyslog的优势:

  1. 在消息队列的存储上(对应为Channel组件)可以选择存储到磁盘或者内存以及两种混合的模式。
  2. 在传输上支持故障转移和负载均衡。保证传输质量。
  3. 输出可支持RPC以及Elastic Serach服务器集群等方式。

Linux下/var/log目录下的各种日志文件讲解

1)/var/log/secure:记录用户登陆系统的信息,比如SSH,telnet,ftp等记录

2)/var/log/btmp:记录登陆失败的信息,被编码过,所以必须使用last解析

3)/var/log/messages:在开机运行中几乎所有的系统发生的错误都在此记录。

4)/var/log/boot.log:记录一些开机或者关机启动的一些服务信息

5)/var/log/cron:用来记录crontab这个服务执行任务计划产生的日志

6)/var/log/utmp:记录现在登陆的用户

7)/var/log/dmesg:内核日志

8)/var/log/kern:内核产生的信息

9)/var/log/daemon.log:系统监控程序产生的日志。

ref: - syslog与rsyslog的了解与比较 - 日志管理Rsyslog - rsyslog和flume的对比分析(日志采集) - Forward syslog messages to flume with rsyslog