目录
绪论:
工作中主要为:配置文件,日志文件
看日志:根据报错的信息,能够定位出服务、系统故障原因、或者定位出是谁的故障
1、日志分析
日志:系统、程序运行必然会产生相关的运行信息,这些信息统一会记录在日志当中
· 系统自定义:系统创建完之后系统会自动生产一个用于记录系统运行的日志文件。
· 主要是针对第三方服务:不是系统自带的,由程序员自定义的软件或者第三方开发的一些软件,运行在系统上。一些日志是第三方服务自带的,不需要人工配置。另外是服务本身没有记录日志的功能,需要人工配置日志文件。
1.1 系统日志
系统日志:/var/log/messages 这个日志文件包含了所有系统以及服务,包括第三方(必须要配置在systemd的文件里面,有它的运行配置文件)。如果是yum或者rpm方式安装的会自动添加到systemd,不需要手工配置
messages里面包含的第三方服务只有运行日志,没有具体的第三方服务的业务日志。第三方服务有自己的业务日志
1.2 日志基本格式
系统日志:系统自带的,messages。httpd作为第三方服务,为什么能在系统日志当中:因为是它配置在系统服务的目录当中,可以由系统进行操作(开、关、重启),控制运行的记录可以记录在系统日志中
访问日志、报错日志都在自己的业务日志中
发生时间,必带的记录。进行了哪些操作、执行了什么任务、返回了什么结果,还有具体的业务信息,这些也是必带的信息
管理系统日志的服务:systemctl status rsyslog
系统的配置文件:
*.info;mail.none;authpriv.none;cron.none /var/log/messages
*:表示所有
info:日志级别,表示所有info以上,包含info级别的日志,都记录到 /var/log/messages
mail:邮件
none:日志级别,不记录,没有级别
authpriv:权限
cron:计划任务
emerg:紧急
crit:严重
local:自定义服务的日志(0-7),对应的服务也必须配置
1.3 日志消息的级别
改配置文件之前一定要备份
例:cp /etc/rsyslog.conf /opt/rsyslog.conf.bak.20230628
改完之后重启服务:systemctl restart rsyslog
补充:
tail -f :动态查看
awk:切片查看
sed:范围查看
1.4 日志管理的策略
· 日常工作中对于日志:业务型日志,一般来说保留两到三天
· 日志的保存类型不同,期限不同,用户信息永久保存,不能删除,而且要定期备份。
其他类型:如交易记录等保留半年。但是会有备份,想查也能查询到,但是不在第一页面展示
· 权限控制:一般核心业务的日志,只有少数权限人员可以查看
生产环境:运维人员一般会有root密码
补充:
users :显示当前登录系统的所有用户列表
users -w:详细显示
last:截至目前为止所有登陆过系统的用户列表
lastb:查询登录失败的用户记录
1.5 实验
1.5.1 实验1 把服务日志单独存放(ssh服务为例)
关防火墙,安全机制
vim /etc/rsyslog.conf
自定义local7下面添加:local6.* /var/log/ssh.log 把local6自定义的服务日志保存到ssh.log里面去
vim /etc/ssh/sshd_config
set nu 第32行注释掉,不再往它所指定的日志发
把它下面那行删掉,编辑:
SyslogFacility LOCAL6 保存退出
systemctl restart rsyslog.service
systemctl restart sshd
另外一台:
ssh root@ip地址
cd .var/log
cat ssh.log
1.5.2 实验2 配置日志服务器来收集客户机的日志
发送方:
关防火墙,安全机制
vim /etc/rsyslog.conf
19 20行注释掉:
54行给#注释,复制一下 后面加上@@IP地址 往哪里发
systemctl restart rsyslog.service
netstat -antp | grep 514 看端口有没有起来
到接收方:
vim /etc/rsyslog.conf
19 20行注释掉
systemctl restart rsyslog.service
发送方:
logger "this is ky30"
tail -f /var/log/messages
此时发送方之前的日志不往他自己的messages发了,而是往接收方发