生活中的日志是记录你生活的点点滴滴,让它把你内心的世界表露出来,更好的诠释自己的内心世界。
而电脑里的日志可以是有价值的信息宝库,也可以是毫无价值的数据泥潭。对于运维技术人员来说,日志毫
无疑问起着至关重要的作用。
1.查看系统中的日志 rsyslog
此服务是用来采集系统日志的,他不生产日志,只是起到采集作用
2.rsyslog的日志文件目录
/var/log/messages | ## 服务信息日志 |
/var/log/secure | ## 系统登陆日志 |
/var/log/cron | ## 定时任务日志 |
/var/log/maillog | ## 邮件日志 |
/var/log/boot.log | ## 系统启动日志 |
3.日志管理服务
1) rsyslog
## 负责采集日志和分类存放日志
2) 日志分类
vim /etc/rsyslog.conf ##配置文件
什么类型的日志.什么级别的日志 /存放文件
*.* /var/log/westos
服务类型有:
auth | pam产生的日志 |
authpriv | ssh.ftp等登录信息的验证信息 |
cron | 时间任务相关 |
kren | 内核 |
lpr | 打印 |
邮件 | |
mark(syslog)-re=rsyslog | 服务内部的信息,时间标识 |
news | 新闻组 |
user | 用户程序产生的相关信息 |
uucp | unix to unix copy,unix主机之间相关的通讯 |
local 1~7 | 自定义的日志设备 |
日志的级别有:
debug | 有调试信息的,日志信息最多 |
info | 一般信息的日志,最常用 |
notice | 最具有重要性的普通条件的信息 |
warning | 警告级别 |
err | 错误级别,阻止某个功能或者模块不能正常工作的信息 |
crit | 严重级别,阻止整个系统或者整个软件不能正常工作的信息 |
alert | 需要立刻修改的信息 |
emerg | 内核崩溃等严重信息 |
none | 什么都不记录 |
注意:1.每次配置完文件后,一定要重启服务才能生效!!
systemctl restart rsyslog.service ##重启日志服务
2.从上到下,级别从低到高,记录的信息越来越少
3.详细的可以查看手册:man 3 syslog
e.g.我们查看配置文件中原有的日志项目
3)日志的远程同步
日志的同步要在发送和接收两端同时设定
a.发送端配置
vim /etc/rsyslog.conf ##配置日志采集文件
将所有类型所有级别的日志同步到ip地址为172.25.254.222的主机中,
@ip表示采用UDP的传输协议同步,@@表示采用TCP的方式传输协议进行同步
b.接收端配置
vim /etc/rsyslog.conf ##配置日志采集文件
去掉15、16行的注释符
如果采用TCP传输协议同步,需要去掉19、20行的注释符
重启日志服务,关闭防火墙,使配置生效
systemctl restart rsyslog.service ##重启日志服务
systemctl stop firewalld.service ##关闭防火墙
systemctl disable firewalld.service ##关闭防火墙开机自启
为了让我们实验结果更为清晰,我们清空日志内容,并指定日志内容,分别在接收端额发送端查看
> /var/log/messages ##清空日志文件
logger test ##指定文件test到日志中
4.日志采集格式的设定
配置的文件还是 /etc/rsyslog.conf
vim /etc/rsyslog.conf ##打开配置文件,设定采集格式
可以设定的格式内容有:
%timegenerated% | 显示日志时间 |
%FROMHOST-IP% | 显示主机ip |
%syslogtag% | 显示记录目标 |
%msg% | 日志内容 |
\n | 换行 |
例如:
$template LOCFMT,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg% \n"
## LOGFMT可以自定义,但必须是大写字母
*.info;mail.none;authpriv.none;cron.none /var/log/messages;LOCFMT
##定义之后要在相应的采集文件后面添加指定的文件采集格式
systemctl restart rsyslog.service
##重启日志服务,使配置文件生效
测试:
发送端:
接收端:
5.时间同步服务
服务名称 : chronyd
服务端:
配置文件 /etc/chrony.conf
vim /etc/chrony.conf ##打开时间同步配置文件,配置相关参数
1)允许指定ip或者网络位相同的的客户端来同步本机时间
2)设定服务端的时间优先级为10(本机不同步任何主机的时间,本机作为时间源)
客户端:
配置文件 /etc/chrony.conf
配置内容为:
server 172.25.254.222 iburst ##本机立即同步222主机的时间
配置完毕后,重启服务
systemctl restart chronyd.service ##重启时间同步服务
测试:
1)更改服务端的时间,发现客户端的时间被同步更改
2)查看时间源,可以看到同步的时间来源
##可以看到时间源中Source mode=server;IP为所同步的服务器的IP
6.timedatectl 命令
timedatectl ##管理系统时间
timedatectl status ##显示当前时间信息
timedatectl set-timezone "Asia/Shanghai" ##设置当前时区,更改当前时区分为东8区
timedatectl set-time "2016-08-08 12:12" ## 设置当前时间
timedatectl set-local-rtc 0/1 ##设置是否使用utc时间
timedatectl list-timezones ##查看支持的时区
timedatectl ##管理系统时间
1) timedatectl status ##显示当前时间信息
2) timedatectl set-timezone "Asia/Hong_Kong" ##设置当前时区,更改当前时区为香港的时区
3) timedatectl set-time "2019-02-07 12:12" ## 设置当前时间
4)timedatectl set-local-rtc 0/1 ##设置是否使用utc时间
5)timedatectl list-timezones ##查看支持的时区
7.查看内存中的日志 journalctl
journalctl -n 5 ##查看最近5条日志
journalctl -p err ##查看错误日志
journalctl -o verbose ##查看日志的详细参数
journalctl --since "**:**" ##查看从**:**开始的日志
journalctl --until "**:**" ##查看到**:**为止的日志
1)journalctl -n 5 ##查看最近5条日志
2) journalctl -p err ##查看错误日志
3) journalctl -o verbose ##查看日志的详细参数
4) journalctl --since "00:00" ##查看从00:00开始的日志
5) journalctl --until "00:02" ##查看到00:02为止的日志
需要注意的是,默认systemd-journald(内存中的日志)不保存到硬盘中,
所以关机后再次开机只能看到本次开机之后的日志,上一次关机之前的日志是无法查看的
那么如何使用systemd-journald保存系统日志?
使用下列命令可以保存系统日志(一般情况下不建议使用):
mkdir /var/log/journal ##新建一个存放目录
chgrp systemd-journal /var/log/journal ##指定目录的所有组为systemd-journal
chmod g+s /var/log/journal ##给用户所有组权限
killall -l systemd-journald
ls /var/log/journal
stat /var/log/journal/946cb0e817ea4adb916183df8c4fc817
reboot ##重启虚拟机
ls /var/log/journal
stat /var/log/journal/946cb0e817ea4adb916183df8c4fc817
重启:
查看日志:
可以看到重启前的日志依然存在
注意:这种方法不建议使用的原因是:当你把大量的日志信息保存到硬盘中,日积月累,你的硬盘会被不断填充,最后导致系统不能正常运行。