Linux日志管理学习
1、日志介绍 日志记录了系统每天发生的各种事情,可以通过它检查错误发生的原因,或者受到攻击留下的痕迹。为了便于管理日志通常存放在/var/log/下,一部分程序公用一个日志文件,一部分程序使用单个的日志文件,有些大型服务程序日志文件较多,会建立相应的子目录来存放日志文件。 2、日志类型 /var/log/secure:系统安装日志,文本格式,应周期性分析 /var/log/btmp:当前系统上,用户的失败尝试登录相关的日 志信息,二进制格式,lastb命令进行查看 /var/log/wtmp:当前系统上,用户正常登录系统的相关日志 信息,二进制格式,last命令可以查看 /var/log/lastlog:每一个用户最近一次的登录信息,二进制格 式,lastlog命令可以查看 /var/log/dmesg:系统引导过程中的日志信息,文本格式 文本查看工具查看 专用命令dmesg查看 /var/log/messages :系统中大部分的信息 /var/log/anaconda : anaconda的日志(centos6没有) 3、日志配置 Redhat5 服务名: syslog 配置文件:/etc/syslog.conf C/S架构:通过TCP或UDP协议的服务完成日志记录传送, 将分布在不同主机的日志实现集中管理 事件记录格式:日期时间 主机 进程[pid]: 事件内容 centos6 7 服务名:rsyslog 特性:多路工作模块,通过UDP, TCP, SSL, TLS, RELP协议的服务完成日志记录传送, 将分布在不同主机的日志实现集中管理 ,自定义输出格式,关系型数据库实现日志存储 配置文件:/etc/rsyslog.conf,/etc/rsyslog.d/*.conf 库文件: /lib64/rsyslog/*.so 配置文件格式:由三部分组成 MODULES:相关模块配置 GLOBAL DIRECTIVES:全局配置 RULES:日志记录相关的规则配置 RULES配置格式: facility.priority; facility.priority… target facility: 设施,从功能或程序上对日志进行归类 auth, authpriv, cron, daemon,ftp,kern, lpr, mail, news, security(auth), user, uucp, local0-local7, syslog priority: 优先级别,从低到高排序 debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic) *: 所有级别 none:没有级别,即不记录 PRIORITY:指定级别(含)以上的所有级别 =PRIORITY:仅记录指定级别的日志信息 target: 文件路径:通常在/var/log/,文件路径前的-表示异步写入 用户:将日志事件通知给指定的用户,* 表示登录的所有用户 日志服务器:@host,把日志送往至指定的远程服务器记录 管道: | COMMAND,转发给其它命令处理 例: 5、日志管理 Systemd 统一管理所有 Unit 的启动日志。带来的好处就是 ,可以只用journalctl一个命令,查看所有日志(内核日志和 应用日志)。日志的配置文件是etc/systemd/journald.conf 查看所有日志(默认情况下 ,只保存本次启动的日志) journalctl 查看内核日志(不显示应用日志) journalctl -k 查看系统本次启动的日志 journalctl -b journalctl -b -0 查看上一次启动的日志(需更改设置) journalctl -b -1 日志默认分页输出,--no-pager 改为正常的标准输出 journalctl --no-pager 6、日志滚动或者日志转储 日志长期记录会形成一个很大的文件,对于查找信息很不方便,所以在配置文件/etc/logrotate.conf中设定达到一定大小或者每隔一定时间生成新的日志文件,称为日志转储,旧的文件通常以日志名+日期的格式存储,可以在配置文件自定义。