1. 日志记录了系统中相关信息,一般记录在文件中,也可以给用户和主机发送日志 2
日志记录了系统中相关信息,一般记录在文件中,也可以给用户和主机发送日志
rpm包装的日志存储在 /var/log下
/var/log下常见的系统日志
dmesg 开机时内核自检信息,也可直接输入dmesg
wtmp
永久记录所有用户登录、注销信息,同时记录系统的启动、重启、关机事件,不能vi,要用last查看
lastlog
记录用户最后一次登录时间,不能用vi,要用lastlog查看
btmp
记录错误登陆的日志,不能通过vi查看,而要使用lastb
message
记录了系统重要的日志。这个日志文件会记录Linux系统的绝大多数重要信息,如果系统出问题,首先要检查的就是这个日志文件
什么时候,在哪台主机,用哪个服务程序,做了什么事
解释为 6月5日 14点59分26秒 localhost主机使用systemd服务关掉了DHCPv4服务的守护进程
cron 记录了定时任务相关日志
boot.log
开机启动日志
mail.log邮件相关信息
/var/run/utmp
记录了当前已经登陆的用户信息,随着用户登录和注销不断变化,不能直接vi,而要用w,who,users等命令
secure
记录验证和授权方面的信息,只要涉及账户和密码的程序都会记录。ssh服务,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录
yum.log
查看安装过的包
/var/log常见的程序日志
/var/log/httpd
/etc/rsyslog.conf日志配置文件
服务名称
authpriv 安全和认证相关消息
mail 邮件收发信息
cron 系统定时任务cront 和 at 产生的日志
news 与新闻服务器相关的日志
local0-local7 为本地预留的服务
符号
* 任意等级
任意大于等于emerg的都要报警
. 只要比后面的等级高(含本等级)就记录,authpriv.* 代表了任何日志都写下来
.= 代表记录所需等级日志,*.=emerg 只要等级是emerg等级就记录
.! 代表不等于,也就是除了该等级的如之外,其他等级等级的日志都记录
- 代表日志先保存在内存中,当日志够多之后在向文件保存
日志等级
debug 一般的调试信息说明
info 基本的通知信息
notice 普通信息但,是有一定的重要性
warning 警告信息,但是不影响服务或系统的运行
err 错误信息,一般会影响到服务或系统运行
crit 临界状况信息,比err等级还要严重
alert 警告状态信息,必须立即采取行动
emerg 疼痛等级信息,系统已经无法使用
none 不报错
日志等级如果写none,忽略这个日志服务,*.info;mail.none;authpriv.none;cron.none 代表记录所有比info级别高的日志,除了mail authpriv cron 日志
/etc/rsyslog.conf 文件内容
模块
tcp udp端口
时间格式
$IncludeConfig /etc/rsyslog.d/*.conf 加载此目录下的文件
由上图可知:
由此图可知,绝大多数日志都放入messages中,authpriv服务,mail服务,cron服务,单独存储到自己对应的日志中,任何服务到了疼痛级别都会先所有用户发送信息
定义自己的日志
vim /etc/rsyslog.conf
加入*.crit /var/log/alert.log(如果比crit级别高就写入alert日志中)
systemctl restart rsyslog 重启服务,成功生成
日志轮替
rpm包切割轮替
日志需要进行切割(按照天数切割保存)和轮替(日志文件超出保存范围会进行删除),日志轮替可以借助linux系统自带的/etc/logrotate.conf配置文件中dateext参数
在/var/log可以清楚的查看到日志被切割
查看轮替配置文件/etc/logrotate.conf
全局配置定义了每周轮替一次,下面局部配置函数定义了一个月轮替一次,按照下面自带函数优先生效,最多保存4个日志,新建cron,按照日期显示,压缩未开启,可以手动开启,包含/etc/logrotate.d下的配置文件(其他服务的日志写在此目录下)
/var/log/wtmp日志轮替函数意思为:一个月执行一次轮替, 创建新的日志并指定权限(0664) 所有者(root) 所属组(utmp),最小限制1M,小于1M文件不轮替
logrotate 配置文件的主要参数
daily 日志的轮替周期是每天
monthly 日志的轮替周期是每月
compress 日志轮替时,旧的日志进行压缩
create mode owner group 建立新的日志,同时指定新日志的权限与所有者和所属组,如create 0600 root root,同时logrotate也会重命名原始日志文件
mail address 当日志轮替时,输出内容通过邮件发送到指定邮件地址
notifempty 如果日志为空文件,则不进行日志轮替
minsize 日志轮替最小值,文件达不到此大小,不进行切割
size 大小 日志只有大于指定大小才进行日志轮替
dateext 使用日期作为论题日志文件后缀
missingok 在日志轮循期间,任何错误将被忽略
sharedscripts 此关键字之后脚本只执行一次
prerotate/endscript 日志在轮替之前执行脚本.endscript代表脚本结束
postrotate/endscript 日志在轮替之后执行脚本,endscript代表脚本结束
将自己的日志或者源码包加入日志轮替
方法一:直接在/etc/logrotate.conf配置文件中写入该日志的轮替策略
方法二(推荐):在/etc/logrotate.d目录中建立该日志的轮替文件,在该轮替文件中写入正确的轮替策略.
具体步骤
在/etc/log/alert.log建立的基础上继续创建 vi /etc/logrotate.d/alert
为了保证日志不会被误删除,提前先加上锁,chattr +a /var/log/alert.log,并在文件下编辑
logrotate命令
具体实现:logrotate -vf /etc/logrotate.conf(配置文件名)
C/S架构,远程收集日志
rsyslog 支持TCP和UDP
netstat
-a 列出所有网络连接
-n 以数字显示端口号
-p 显示进程信息(pid)
-t显示所有TCP协议
-u显示所有UDP协议
实验:
hostname可以查看主机名:修改主机名hostname client 和hostname server 之后执行bash
vim /etc/rsyslog.conf ,去掉注释,其中514指的是端口号
修改完配置文件一定要重启服务或重新加载:system restart rsyslog
然后查看一下端口号看看服务是否启动:netstat -anupt | grep :514
修改客户端的配置文件vim /etc/rsyslog .conf,并修改内容,此时存入的目标文件位置改成@192.168.1.10:514(UDP服务)或者@@192.168.1.10:514(TCP服务)
保存退出重启服务:systemctl restart rsyslog
在服务端查看日志tail -f /var/log/messages可以清楚的看出服务端主机名转化为客户端
在客户端上logger "hello" 可以在服务端命令行看到
journalctl日志查看(系统重启失效)
systemd-journald用来管理日志
journalctl -xe 用于查看服务的错误日志
journaclt -n m查看系统最新m条日志
journalctl -p err(系统日志级别)根据日志级别查看日志
选项种类
journalctl _PID=1 --since today 查看指定进程的日志
journalctl --disk-usage显示日志占据硬盘空间
journalctl -f 实时监控服务日志
按照时间查看--since和--until
journalctl --since="2012-10-30 18:17:16"
journalctl --since "20 min ago"
journalctl --since yesterday
journalctl --since="2012-10-30 18:17:16" --until="2020-10-30 18:18:15" 指定查看时间区间日志信息
journalctl --since 09:00 --until "1 hour ago"
journalctl --since"15:15" --until now
日期格式:date +"%Y-%m-%d %H:%M:%S"
时间探讨:
%s显示时间戳(从1970年1月1日到现在过了多少秒)
%y只显示年份的后两位
%D显示月/日/年
%h中文显示月份
发布者:LJH,转发请注明出处:https://www.ljh.cool/35631.html
评论列表(1条)
ipsa assumenda velit in perferendis iste delectus. quo aut at ut non doloremque velit consequatur assumenda repudiandae rerum. et ut provident a dolorem aspernatur commodi repellendus nisi quia aperia