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的优势:
- 在消息队列的存储上(对应为Channel组件)可以选择存储到磁盘或者内存以及两种混合的模式。
- 在传输上支持故障转移和负载均衡。保证传输质量。
- 输出可支持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