Linux系统日志管理和时间同步服务
一、系统日志管理
1、rsyslog ##此服务是用来采集系统日志的,他不产生日志,只起到采集的作用
2、rsyslog 的管理
日志的说明:
/var/log/messages | 服务信息日志 |
---|---|
/var/log/secure | 系统登陆日志 |
/var/log/cron | 定时任务日志 |
/var/log/maillog | 邮件日志 |
var/log/boot.log | 系统启动日志 |
指定日志采集路径:
什么类型的日志.什么级别的日志 /var/log/file ##日志采集规则
日志的类型:
日志 | 作用 |
---|---|
auth | pam产生的日志 |
authpriv | ssh、ftp等登陆信息的验证信息 |
cron | 时间任务相关 |
kern | 内核 |
邮件 | |
mark(syslog)-rsyslog | 服务内部的信息,时间标识 |
news | 新闻组 |
user | 用户程序产生的相关信息 |
uucp | unix to unix copy unix主机之间相关的通讯 |
local 1~7 | 自定义的日志设备 |
日志的级别分为:
日志名称 | 作用 |
---|---|
debug | 有调试信息的,日志信息最多 |
info | 一般信息的日志,最常用 |
notice | 最具有重要性的普通条件的信息 |
warning | 警告级别 |
err | 错误级别,阻止某个功能或者模块不能正常工作的信息 |
crit | 严重级别,阻止整个系统或者整个软件不能正常工作的信息 |
alert | 需要立即修改的信息 |
emerg | 内核崩溃等严重信息 |
none | 什么都不记录 |
注意:从上到下,级别从低到高,记录的信息越来越少
操作示例:
目的:
把系统中所有日志采集到/var/log/westos文件中
操作:
vim /etc/rsyslog.conf
* . * /var/log/westos
systemctl restart rsyslog
测试:
systemctl restart sshd ##命令目的是为了生成日志
cat /var/log/westos ##此文件中出现日志信息
3、日志的远程同步
在日志的发送方:
vim /etc/rsyslog.conf
* . * @172.25.254.200##“@”表示udp协议发送,“@@”表示tcp协议发送
将任意类型任意级别的日志文件远程传输到200这台主机:
重新启动rsyslog:
systemctl restart rsyslog
在日志的接受方:
vim /etc/rsyslog.conf
修改第15,16行:
15 $ModLoad imudp ##日志接收模块
16 $UDPServerRun 514 ##开启接收端口
重新启动rsyslog:
systemctl restart rsyslog
在接收方查看网络端口514是否开启:
systemctl stop firewalld ##关闭火墙
systemctl disable firewalled ##设定火墙开机关闭
查看防火墙的状态:
dead表示关闭,disabled表示开机不启动。
测试:
在发送方和接收方都清空日志文件
> /var/log/messages
在日志的发送方
logger test
cat /var/log/messages ##查看日志已经生成
从结果可以看出,实现了日志的远程同步。
注意:在日志同步的过程中可能会出现以下问题
此时,日志文件虽然同步了过来,但是存在多余信息,在出现此问题的主机上执行以下操作,重启虚拟机可以解决此问题。
4、日志采集格式的设置
日志采集格式如下:
% timegenerated%a | 显示日志时间 |
---|---|
%FROMHOST-IP% | 显示主机ip |
%syslogtag% | 日志记录目标 |
%msg% | 日志内容 |
\n | 换行 |
1>指定日志采集格式设定:
- vim /etc/rsyslog.conf #编辑日志配置文件
第48行输入以下内容:
意思是设定一个叫WESTOS的日志采集格式,此采集格式包含主机ip,日志时间,记录目标,日志内容和换行。
再写入以下内容:
将所有类型所有级别的日志文件以WESTOS的形式传输到指定的文件中。
重启rsyslog服务:
查看日志,按照我们要求的格式显示日志信息:
2>修改系统默认日志采集格式: - vim /etc/rsyslog.conf #编辑日志配置文件
第30行输入以下内容:
修改系统默认日志采集格式为WESTOS。
重启日志服务并进行测试:
5、时间同步服务
服务名称:chronyd
在服务端:
编辑时间服务文件
修改第22行和第29行的内容:
允许那些客户端来同步本机时间:
本机不同步任何主机的时间,本机作为时间源:
重启时间服务:
关闭防火墙:
在客户端:
编辑以下内容:
重启时间同步服务:
执行以下命令:
显示结果如下,出现^和*表示时间同步成功:
查看两台主机的时间是否一致:
服务端的时间为:
客户端的时间为:
结果表明时间同步成功。
6、timedatectl命令
timedatectl ##管理系统时间
timedatectl status | 显示当前时间信息 |
---|---|
timedatectl set-time | 设置当前时间 |
timedatectl set-timezone | 设置当前时区 |
timedatectl set-local-rtc 0或1 | 设置是否使用utc时间 |
timedatectl list-timezone | 查看支持的所有时区 |
timedatectl status 显示当前时间信息
此时时区为America/New_York
- timedatectl list-timezones #查看支持的时区
- timedatectl set-timezone Asia/Shanghai #设置当前时区为上海时区
- timedatectl set-local-rtc 1 #设置使用utc时间
- timedatectl set-time "2019-10-21 15:41:25 " #设置当前时间
- timedatectl set-ntp false #设置NTP关闭
7、日志查看工具
1>journalctl #日志查看工具
journalctl -n 3 | 查看最近三条日志 |
---|---|
journalctl -p err | 查看错误日志 |
journalctl -o verbose | 查看日志的详细参数 |
journalctl --since | 查看从什么时间开始的日志 |
journalctl --until | 查看到什么时间为止的日志 |
-
journalctl -n 3 #查看最近三条日志
-
journalctl -p err # 查看错误日志
-
journalctl -o verbose #查看日志的详细参数
-
journalctl --since #查看从什么时间开始的日志
2>将日志保存在系统硬盘中
默认systemd-journal是不保存系统日志到硬盘中的,关机之后再开机只能看到开机以后的系统日志,关机前的日志无法查看,此实验目的就是关机重启之后还能看到关机之前的系统日志。
实验过程如下:1、在/var/log下创建一个文件夹journal
2、将/var/log/journal的所属组改成systemd-journal,这样这个文件才会被系统所识别去记录日志
3、是这个目录下的所有文件的所属组都是systemd-journal
4、重新加载日志服务
具体实现代码如下:
重启主机之后查看日志文件,从时间上可以看出,关机的之前日志得以保存:
- 点赞
- 收藏
- 分享
- 文章举报
- linux学习入门 基础部分(9)[1.系统日志默认分类2.日志管理服务rsyslog3.日志分析工具journa4.时间同步5.timedatectl命令]
- Linux系统日志管理、同步、采集、分析
- Linux系统日志管理、同步、采集、分析
- linux系统基本命令之系统日志和时间同步
- linux 主机时间同步及管理系统时间
- Linux 基础操作(九)————系统日志、时间同步、修改时区
- rsync通过服务的方式同步、linux系统日志、screen工具
- Linux系统中不同主机的时间同步服务
- Linux学习第三十四篇:rsync通过服务同步,Linux系统日志,screen工具
- rsync通过服务同步、linux系统日志、screen工具
- 10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 scre
- 系统日志的管理与时间同步的设定
- linux必须知道的服务,定时任务,日期同步,日志切割,进程管理
- Linux系统日志管理:(4)rysylog日志服务、日志服务器以及日志转储
- linux笔记 1-11-系统日志之时间同步
- Linux系统服务管理 ntsysv,日志, exec,xargs , screen ,curl,
- Linux系统日志管理、同步、采集、分析
- rsync通过服务同步、linux系统日志
- linux的rsync服务同步、系统日志及screen工具介绍
- 10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具