系统日志和时间
一:系统日志
1:基础
日志:就是包含系统,运行内核,服务,程序等信息,通过这些信息可以定位故障,帮助怕错
rhel7开始,系统中有2大日志服务
一个是systemd-journald日志
属于以失性日志,关机日志即可删除,系统启动日志,程序运行日志,服务日志等
查看方式:通过专门的检索工具,journalctl查看日志,日志信息以二进制的方式保存,/run/log/journal
第二个是rsyslog日志
属于持久性日志,日志可以保存到硬盘中去(永久性保存)
查看方式,cat,vim都行,日志信息保存到文本文件中
保存路径:/var/log
二:rsyslog日志
1:rsyslog日志
1:基础
配置文件:/etc/rsyslog.d和/etc/rsyslog.conf这2个
1)日志文件保存到/var/log目录下
/varlog/messages 大多数日志信息,
/var/log/secure 与安全和验证相关的日志信息
/var/log/mailog 与邮件相关的日志信息
/var/log/cron 与计划任务相关的日志信息
2)rsyslog根据优先级和日志类型进行处理
日志的类型:日志是有什么方式产生的,例如,是有认证的方式,时间的方式等
日志的优先级(8个):日志的错误和正确写在哪个文件里面中
优先级的描述:
none 不记录日志消息
emergency 内核崩溃,系统不可用
alert 必须立即进行处理
info 一般级别的日志信息
debug 调试级别信息(记录所有的信息)
记录的日志依次从少到多
日志的定义格式:类型.优先级 保存在哪个路径下
mail.info /var/log/xxx info级别及其以上的mai类型日志
mail.* /var/log/xxx mai类型日志的所有级别都保存
mail.=info /var.log/xxx 只有info级别mail类型日志
mail.!info /var/log/xxx 除了info级别以外的mail类型日志
mail.info;cron.info /var/log/xxx 记录多个类型优先级的日志
3)手动发送rsyslog日志
logger命令,往系统中写入日志
logger 选项 消息
常用的选项:
-l 记录logger的pid
-p 指定日志的优先级
-t 指定标记记录
步骤:
1)先在配置文件里面添加一个配置
2)然后重启日志服务
3)发送一个消息,日志文件就会出现
mail.info /var/log/rhel999 systemctl restart rsyslog logger -t mail -p mail.info -i "rhel999"
如果logger什么都不接的话,就默认发送到/var/log/messages
4)查看日志
root@cleint log]# head -n 10 messages Mar 3 12:46:35 node2 kernel: ACPI: AC: AC Adapter [ACAD] (on-line) Mar 3 12:46:35 node2 kernel: input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 Mar 3 12:46:35 node2 kernel: ACPI: button: Power Button [PWRF] Mar 3 12:46:35 node2 kernel: Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled Mar 3 12:46:35 node2 kernel: Non-volatile memory driver v1.3 Mar 3 12:46:35 node2 kernel: rdac: device handler registered Mar 3 12:46:35 node2 kernel: hp_sw: device handler registered Mar 3 12:46:35 node2 kernel: emc: device handler registered Mar 3 12:46:35 node2 kernel: alua: device handler registered Mar 3 12:46:35 node2 kernel: libphy: Fixed MDIO Bus: probed 日志的产生时间 日志产生的主机 日志产生的程序 日志产生的进程pid 日志的内容
2:日志服务器配置(客户端将信息发送给日志服务器里面)
配置一个日志服务器,就是所有的主机的日志消息都保存到一个日志服务器上面方便查看
基础了解:
rsyslog是一个c|s的架构,即多个客户端一个服务器之间的关系,基于udp和tcp进行转发
步骤:
配置服务端:
1)修改rsyslog配置文件,去掉几行注释信息
就是关于module(load="imudp")和后面的input(type="imtcp" port="514")这里的
就是加载一个imudp模块,是rsyslog的输入模块,监听这个514端口,可以通过这个发送消息,
2)定义一个日志类型.优先级
.*info /var/log/rhce
3)重启rsyslog服务以及关闭防火墙
systemctl restart rsyslog
systemctl stop firewalld(基于syslog协议)
配置客户端:
1)修改配置文件
.*info @服务器的ip地址
@表示tcp转发,@@表示udp转发
2)重启服务
systemctl restart rsyslog
3)手动尝试logger发送日志消息
总结:
即完成了多个客户端产生的日志都发送到一个日志服务器里面去了,就是查看日志的更加的简单了
三:日志轮训规则
就是如果以上面的方式来rsyslog来保存的日志的话,长此以往的话,这个日志的就会积累很多很多,然后占用的空间又大,为了解决这个问题,使用logrotate这个日志轮询,通过自动切割日志,通过轮询的策略来定义
配置文件都在/etc/logrotate.conf或者/etc/logrotate.d这个目录里面
参数详解:
missimgok:如果日志文件不存在的话,不会报错,而是继续处理其他的日志文件
daily:每天轮转日志文件
rotate 7:表示备份7分旧的文件,当日志被轮转的时候,logrotate就会重新命名,并在后面加上一个数字后缀,当第8份创建出来后,最旧的那份被删除
notifeempty:如果日志文件为空的话,不进行轮转,可以避免创建空的轮转日志文件
定义日志轮询规则:
一般的话,都是只需要复制其余的文件即可
cp bootlog rhel777 修改一下日志里面的路径即可 logrotate -f /etc/logrotate.conf #强制刷新
四:systemd-journald日志
1:基础
服务名systemd-journald
文件保存的路径为:/run/log,只能通过特点的检索工具来查看日志,无法直接的查看,会显示高亮
1)journalctl常用的选项:
-f 实时监控(tail -f /var/log/messages)
-n 列出最后指定条目的记录,默认10条
-p 指定日志的优先级
--since 指定对应的时间段 yyyy-mm-dd
2)根据不同的类型来查看对应的日志信息
_PID:进程的PID
_UID:运行该进程的用户的ID
_SYSTEMD_UNIT:启动进程的systemd单元
_COMM:指定命令的名称
_EXE:进程可执行文件的路径
案例)
[root@q7 /]# journalctl _SYSTEMD_UNIT=sshd.service Mar 07 08:23:47 q7 sshd[1059]: Server listening on 0.0.0.0 port 22. Mar 07 08:23:47 q7 sshd[1059]: Server listening on :: port 22.
常用的就是使用journalctl -xe,来查看报错
3)持久化存储journald日志
修改配置文件/etc/systemd/journald.conf这个配置文件
Storage一共有三个值
auto:如果目录/var/log/journal存在则持久化保存,如果不存在,则不持久化保存
persistent:不管目录是否存在,都持久化保存,目录不存在则自动创建
volatile:不持久化保存
修改后,重启服务,还需要刷新一下,journalctl --flush即可,就是将这个/run/log/下面的文件丢了过去
五:时间管理服务
1:timedatectl命令
查看系统时间的命令
timedatectl list-timezone 列出所有的地区
timedatectl set-timezone 修改时区
timedatectl set-time yyyy-mm-dd 修改系统时间
2:时间同步服务
rhel7之前的话,NTP服务进行时间同步
rhel7之后,chrony服务进行时间同步
服务名chronyd,服务的配置文件/etc/chrony.conf
参数详解:
pool 2.rhel.pool.ntp.org iburst 同步的网络时间源
#allow 192.168.0.0/16 允许哪些网段能访问
# Serve time even if not synchronized to a time source.
#local stratum 10 如果没有网络时间源的话,自己就是充当一个网络时间源
3:搭建一个时间同步服务器
就是局域网内的机器都同步一个机器上面
服务端配置:
allow 192.168.20.0/24
local stratum 10
重启服务器
systemctl restart chronyd
配置客户端:
server 192.168.20.110 iburst
重启服务即可
systemctl restart chronyd

浙公网安备 33010602011771号