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命令:显示当前系统每一个用户最近一次的登录时间
原文地址:https://www.cnblogs.com/itwangqiang/p/13545662.html