文章目录
一、日志
1、日志的功能
(1)用于记录系统,程序运行中发生的各种事件
(2)通过阅读日志,有助于诊断和解决系统故障
2、日志文件的分类
(1)内核及系统日志
- 由系统服务rsyslog统一进行管理,日志格式基本相似
- 主配置文件/etc/rsyslog.conf
(2)用户日志
记录系统用户登录及退出系统的相关信息
(3)程序日志
由各种应用程序独立管理的日志文件,记录格式不统一
3、linux系统内核日志消息的优先级别
(1)数字等级越小,优先级越高,消息越重要——可自定义
(2)举例
- mail.info /var/log/maillog
比指定级别更高的日志级别,包括指定级别自身 - mail.=info /var/log/maillog
明确指定日志级别为info,保存到/var/log/maillog - mail.!info /var/log/maillog
除了指定的日志级别(info)所有日志级别信息 - *.info /var/log/maillog
所有facility的info级别,保存到目录里 - mail.* /var/log/maillog
mail的所有日志级别信息 - mail.notice;news.info /var/log/maillog
mail 的notice以上级的日志级别和news的info以上级别 - mail,news.crit - /var/log/maillog
mail和news的crit以上的日志级别异步保存
(3)异步模式和同步模式
异步模式下,程序会启动一个或多个线程来处理数据,主线程在处理完任务后不必等待子线程的处理结果,可以立即返回并继续处理其他任务,子线程在处理完数据后会把处理结果返回给主线程,由主线程进行下一步操作。异步模式可以提高程序的并发处理能力,适用于处理一些需要等待时间较长的操作,例如网络请求、I/O 操作等。
同步模式下,程序在处理完一个任务之后,必须等待处理结果返回后才能进行下一步操作。
同步模式下程序的处理是按顺序进行的,不能并发处理多个任务。同步模式适用于一些需要同步处理的任务,例如一些计算任务、数据处理任务等。
4、日志保存位置
(1)日志默认位置
/var/log目录下
(2)主要日志文件介绍
5、日志包含的信息内容
二、用户日志分析
1、保存了用户登录,退出系统等相关信息
2、分析工具
(1)显示当前登录系统的用户信息——————users
(2)显示目前登录系统的用户信息(比users详细)————————w
(3)列出截止目前登录过系统的用户信息(包括时间)——————last
(4)查询登录失败的用户记录——————————————————lattb
3、由相应的应用程序独立进行管理
(1)web服务:/var/log/httpd/
access_log ——记录客户访问事件
error_log————记录错误事件
(2)代理服务:/var/log/squid/
access.log
cache.log
(3)分析工具
(4)文本查看
grep 过滤检索
webmin 管理套件中查看
awk,sed等文本过滤
格式化编辑工具
例如:
tail -f /var/log/messages————————————————————————最新记录
cat /var/log/messages | grep ‘15:40:01’——————————————————搜索时间
4、日志管理策略
(1)策略
- 及时做好备份和归档
- 延长日志保存期限
- 控制日志访问权限:日志中包含各类敏感信息,如账户、口令等
- 集中管理日志:将服务器上的日志文件发送到统一的日志文件服务器上;便于日志信息的统一收集、整理和分析;杜绝日志信息的意外丢失,恶意篡改或删除
(2)日志一般的保存时间 - 程序日志:一般只保留当天历史日志或者两天左右的
- 数据日志:(数据库)最少保留一年
- 用户信息日志:永久保存
- 企业根据业务需要自定义保留时间
三、日志实验
1、将ssh服务日志单独存放
(1)关闭服务端和客户端的防火墙、selinux
服务端IP地址:192.168.198.99
客户端IP地址:192.168.198.100
setenforce 0——————————————————关闭安全机制
systemctl stop firewalld————————————关闭防火墙
(2)修改配置文件
vim /etc/rsyslog.conf ————————————————管理内核以及系统日志统一管理工具
vim /etc/ssh/sshd_config——————————————修改配置文件
(3)重启服务
(4)验证
另一台服务端登录:ssh root@192.168.198.100
2、配置日志服务器来收集日志
发送服务器:客户端 192.168.198.99
收集服务器:服务端 192.168.198.100
(1)关闭服务端和客户端防火墙、selinux
(2)配置发送方:
修改客户端配置文件,并启动服务
vim /etc/rsyslog.conf
(3)配置接收方:
vim /etc/rsyslog.conf
(4)测试
四、journalctl 日志管理工具
日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从messages这个文件里读取信息。
Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,
查看所有日志(内核日志和应用日志)。
日志的配置文件是/etc/systemd/journald.conf
1、查看所有日志
默认情况下,只保存本次启动的日志
journalctl
journalctl -r————————————————————————(-r)表示倒序,从尾部看
2、查看内核日志
不显示应用日志
journalctl -k
3、查看系统本次启动的日志
journalctl -b [-0] #默认就是0
4、查看上一次启动的日志
需更改设置,如上次系统崩溃,需要查看日志时,就要看上一次的启动日志
journalctl -b -1
5、显示尾部指定行数的日志
查看的是/var/log/messages的日志,但是格式上有所调整,如主机名格式不一样而已
journalctl -n 20
6、查看某个服务的日志
journalctl -u nginx.service
7、查看指定进程的日志
journalctl _PID=1
8、查看指定用户的日志
journalctl _UID=0 --since today
journalctl _UID=0 --since yesterday
9、journalctl -xe
查看systemd journal中的所有错误信息,包括启动过程中的错误和系统运行期间的错误。
-x选项显示更加详细的错误信息,
-e选项跳转到日志的末尾,从而查看最新的错误信息。
五、把ssh服务的日志保存在KY这个目录
现在模拟这个日志被删除,通过xfsdump,恢复这个日志文件
systemctl stop firewalld.service
setenforce 0
mkfs.xfs /dev/sdb1
mkdir /ky
mount /dev/sdb1 /ky
df -h
vim /etc/rsyslog.conf——————73下面一行添加local6.* /ky/ssh.log
vim /etc/ssh/sshd_config ————32行注释掉(syslogfacillty),下面一行添加SyslogFacilli1ty LOCAL6
systemctl restart sshd
systemctl restart rsyslog.service
另一台虚拟机:登录ssh @192.168.198.100
回到备份那边
cd /ky
ls
xfsdump -f /opt/backup /dev/sdb1 [-L backup -M sdb1]————备份
ls
rm -rf *——————————————删除
xfsrestore -f /opt/backup /ky————————恢复