Linux系统中的日志管理
试验环境配置
首先我们先进行试验环境的配置;本次试验环境的配置如下:
本次试验需要两台连同的主机,进行试验,并做如下设置:
图 1 实验环境配置 首先先通过hostnamectl set-hostname 更改两台主机名称,后我们通过ssh 服务,在rhtl_7中,使主机rhtl_8与rhtl_7显示在一台主机中,方便实验结果的观察。因为要进行数据传输,所以当配置好环境是,需要分别关闭两台主机的防火墙:systemctl stop firewalld
一、journald
1.1 基本简介
服务名称:systemd-journald.service
服务管理命令:jouranlctl
默认日志的存放路径:/run/log
1.2 journalctl的基本用法
命令参数 含义 -n number 查看日志的最后number行 --since " ****-**-** **:** " 从****-**-** **:**时间起查看日志 --until " ****-**-** **:** " 查看****-**-** **:**之前的日志 -o 指定显示的方式 shrot 按照经典模式显示日志 verbose 显示日志的全部字节 export 适合传出和备份的二进制格式 json JS格式显示输出 -p 显示指定的级别 0 (emerg) 系统严重问题的日志 1 (alert) 系统中立即更改的重要信息 2 (crit) 严重级别,会导致系统软件不能正常工作 3 (err) 程序报错 4 (warning) 程序警告 5 (notice) 重要的普通日志信息 6 (info) 普通信息 7 (debug) 程序排错信息 -f 监控日志信息 -F PRIORITY 查看可控日志的层级 -u 服务名称 查看指定服务的日志 --disk-usage 查看日志大小 --vacuum-size=1G 设定日志存放内存,超过该内存原数据会自动删除 --vacuum-time=1W 设定日志在系统中最长存放时长 journalctl _PID= 查看指定ID的日志信息 图 1 journalctl查看日志
图 2 jouranlctl中按时间节点查看
图 3 jurnanclt中查看日志的格式 图 4 jurnanclt中查看日志的格式 图 5 jurnanclt中查看不同等级日志 【注】当指定日志类别时,也可以直接跟数字:journalctl -p 0;
图 6 jurnanclt中设置日志的文件大小,按名称查看日志 图7 jurnanclt中监控日志的方式 图 8 jurnanclt中按照ID查看日志 【注】上述日志都是在、/run/log暂时存放的,开机后,原日志会被删除。
1.3 日志永久存放的设定
实验素材:
图 9 设定永久存放日志的目录 重启后,日志的存放路径就为:/var/log/journal,且永久存放。
图10 测试永久存放的效果
二、rsyslog
2.1 基本知识
服务名称:rsyslog.service
日志存放路径:
/var/log/messages 系统服务日志,常规信息,服务报错 /var/log/secure 系统认证信息日志 /var/log/maillog 系统邮件信息日志 /var/log/cron 系统定时任务信息日志 /var/log/boot.log 系统启动信息日志 配置文件路径:/etc/rsyslog.conf
日志的查看:rsyslog.service中的日志,是以文件形式存储的,所以我们可以通过:cat,less等命令进行直接查看。
2.2 自定义日志采集路径
2.2.1 常用的日志类型
名称 含义 auth 用户认证 authpriv 服务认证 cron 时间任务 kern 内核类型 邮件 news 系统更新信息 user 用户类型 2.2.2 日志级别
rsyslog日志类型和journald日志类型较为相似:
类别 级别含义 emerg 系统严重问题日志 alert 系统中要立即更该的信息日志 crit 严重级别会导致系统软件不能正常运行 err 程序报错 warning 程序警告 notice 普通日志中的重要日志 info 普通信息日志 debug 程序排错日志 none 不包含该日志 2.2.3 路径自定义
在配置文件(/etc/rsyslog.conf)中,编写所要改变的日志的路径,级别:
图 11 设定rsysctl日志存储路径 图 12 重定义rsyslog日志存储路径的结果 2.3 更改日志采集格式
2.3.1 定义日志采集格式:
$template WESTOS, "%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n"
【注】在格式设定后,要重启服务,是设定生效。
2.3.2 设定日志采集格式的应用:
将设定的日志采集格式的标志,跟在所要设置的日志目录下。
【例】*.* /var/log/messages;WESTOS
图 13 配置rsyslog日志显示格式,并观察结果 2.4 远程日志的同步
根据设定的实验环境,将rhtl_8(172.25.254.104)中的日志存放到rhtl_7(172.25.254.105)中:
(1)配置rhtl_7的设置:
在配置文件(/etc/rsyslog.conf)中打开日志接受的插件,并指定插件使用接口:
图 14 配置rhrl_7的配置文件 配置完成,对rsyslog日志服务进行重启(这里不能进行重新装载):systemctl restart rsyslog.service
启动完成,检查所配置的文件:netstat -antlupe | grep rsyslog (网络命令的参数,见后续文章)
图 15 重启rhrl_7的rsyslog服务,并观察配置结果 (2)配置rhtl_8的设置
在配置文件(/etc/rsyslog.conf)设定发送的日志文件及接收的主机:
【例】*.* @172.25.254.105 ##将所有日志文件通过UDP格式发送到rhtl_7(172.25.254.105)中
图 16 配置rhrl_8的配置文件 【注】因为我们的日志传输一般都在内网进行,所以在考虑传输速率,而忽略安全时,我们采用UDP报文传输,同样在外网考虑安全性时,采用TCP报文传输,格式如下:*.* @@172.25.254.105
配置完成,对rsyslog日志服务进行重启(这里不能进行重新装载):systemctl restart rsyslog.service
(3)对上述日志传输进行测试:
logger wetsos test message
图 17 测试传输日志结果 【注】因为实验需要传输数据,防火墙会对实验产生一定的影响,故在实验室,应首先查看火墙状态,将打开的火墙首先进行关闭。
三、timedatectl
3.1 时间设定
timedatectl set-time "2020-02-13 14:43:30"
3.2 时区设定
3.2.1 时区设定: timedatectl set-timezone "Asia/Shanghai"
图 18 设置时间和时区 3.2.2 查看可设定的时区:timedatectl list-timezones
3.3 时间计算方式设定
图 19 按照utc方式计算当地时间 该命令中含有参数0和1:0表示系统用utc方式计算时间;1表示用cst方式计算时间
【注】CST:为美国、澳大利亚、古巴或中国的标准时间;
UTC:协调世界时,又称世界统一时间、世界标准时间、国际协调时间。
四、时间同步服务
4.1 基本知识
服务名称: cheonyd.service
配置文件: /etc/chrony.conf
4.2 同步时间配置
我们这里是将rhtl_7(172.25.254.105)的时间同步到rhtl_8(172.25.254.104)中,在同步过程中,分别对台主机进行时间设定:
(1)配置rhtl_7中的配置文件(/etc/chrony.conf):
图 20 配置rhrl_7的配置文件 (2)配置rhtl_8中的配置文件(etc/hrony.conf):
图 21 配置rhrl87的配置文件 (3)配置完成后,重启rhtl_8中的时间配置服务:systemctl restart chronyd;
(4)查看配置效果:chronyc sources -v
图 21 查看时间同步的效果
上述为Linux下系统中的进程的基本介绍,若有问题,欢迎大家指出;因实验有时结果会覆盖上一条命令的操作,若上述内容还有所不懂,欢迎留言,会在第一时间给尽自己所能,给大家解决。愿上述内容有所用!