Linux_日志管理理论概述
一、日志系统
1、kernel ——>物理终端(/dev/console) ——> /var/log/dmesg(系统启动时信息(包括错误信息)记录到该文件)
或者:# dmesg 或 # cat /var/log/dmesg
2、系统日志
- /var/log/messages:系统标准错误日志信息;非内核产生的引导信息;各子系统产生的信息
- /var/log/maillog:邮件系统产生的日志信息
- /var/log/secure:与安全相关的日志信息
3、日志详细程度:
- 日志级别:级别越低越详细
4、系统日志服务
- syslog:centos5
- rsyslog:centos6,是syslog的升级版
- 特性:
- 多线程
- 支持UDP,TCP,SSL,TLS协议
- 支持使用MySQL、PGSQL和Oracle实现日志存储
- 默认没启用此功能,需要加载rsyslog支持此类存储方式的模块,并配置其可使用mysql存储日志
- 强大的过滤器,可实现过滤系统日志信息中的任何部分
- 自定义输出格式
- 特性:
5、elasticsearch,logstash,kibana = elk
- elasticsearch:存储,分析日志
- logstash:日志收集工具
- kibana:前端展示工具
二、日志服务(syslog/rsyslog)
1、syslog和rsyslog服务均有两个进程
- syslogd:系统,非内核产生的日志信息
- klogd:内核,专门负责记录内核产生的日志信息
2、日志服务的配置文件:
- syslog服务的配置文件:/etc/syslog.conf
- rsyslog服务的配置文件:/etc/rsyslog.conf
3、配置文件格式定义:
- facility.priority action //设备/来源/服务.日志级别 动作(日志记录到哪)
- facility可以理解为日志的来源或设备,目前常用的facility有以下几种:
-
auth 认证相关的 authpriv 权限、授权相关的 cron 任务计划相关的 daemon 守护进程相关的 kern 内核相关的 lpr 打印机关的 mail 邮件相关的 mark 标记相关的 news 新闻相关的 security 安全相关的,与auth类似 syslog syslog自己的 user 用户相关的 uucp unix to unix cp相关的 local0到local7 用户自定义使用 * *表示所有的facility
-
- priority(log level)日志的级别,一般有以下几种级别(从低到高),级别越低,信息越详细:
-
debug 程序或系统的调试信息 info 一般信息 notice 不影响正常功能,需要注意的消息 warning/warn 可能影响系统功能,需要提醒用户的重要事件 err/error 错误信息 crit 紧急,比较严重的 alert 必须马上处理的 emerg/panic 会导致系统不可用的 * *表示所有的日志级别 none 跟*相反,表示啥也没有
-
- action(动作)日志记录的位置:
-
系统上的绝对路径 普通文件,如:/var/log/xxx | COMMAND 管道,通过管道送给其他的命令处理 终端 终端,如:/dev/console @HOST 远程主机(远程主机必须要监听在tcp或udp协议514端口上提供服务),如:@10.0.0.1 用户 系统用户,如:root * 登录到系统上的所有用户
-
4、格式定义的例子:
- mail.info /var/log/maillog 表示将mail相关的,级别为info及info以上级别的信息同步记录到/var/log/maillog文件中
- mail.* -/var/log/maillog 表示将mail相关的所有日志信息异步记录到/var/log/maillog文件中,路径前的“-”表示异步模式
- auth.=info @10.0.0.1 表示将auth相关的,级别为info的信息记录到10.0.0.1主机上去。前提是10.0.0.1要能接收其他主机发来的日志信息
- user.!=error 表示记录user相关的,但不包括error级别的日志信息
- user.!error 与user.error相反
- *.info 表示记录所有的日志信息的info级别
- mail.* 表示记录mail相关的所有级别的信息
- *.* 表示 记录所有级别的所有日志信息
- cron.info;mail.info 多个日志来源可以用分号隔开
- cron,mail.info 与cron.info;mail.info是一个意思
- mail.*;mail.!=info 表示记录mail相关的所有级别的信息,但是不包括info级别的
5、文件记录(/var/log/message)的日志的格式:
- 事件产生的日期时间 主机 进程(pid): 事件内容
- 有些日志记录为二进制格式:/var/log/wtmp,/var/log/btmp
- /var/log/wtmp:当前系统成功登录的日志,可使用last命令查看其内容
- /var/log/btmp:当前系统失败的登录尝试的日志,可使用lastb命令查看其内容
6、lastlog命令:显示当前系统每一个用户最近一次的登录时间