Linux日志管理及时间同步

Linux日志管理及时间同步

日志是可以直接看出系统中的错误,日志在内存里,由服务决定

##一、查看系统中的日志rsyslog

1.rsyslog
此服务是用来采集系统日志的。其不产生日志,只是起到采集作用。

2.rsyslog的管理
#系统常用日志
/var/log/messages ----所有日志级别的常规信息(不包含邮件,服务认证,定时任务)
/var/log/secure --------- 系统登陆日志
/var/log/maillog --------- 邮件日志
/var/log/crog -------------定时任务日志
/var/log/secure ----------服务认证日志
/var/log/boot.log --------系统启动日志
/var/log/cron -------------定时任务日志

#日志类型

auth 用户登陆日志(pam生产日志)
authpriv 服务认证日志(sshd认证)
kern 内核日志
lpr 打印机日志
cron 定时任务日志
mail 邮件日志
news 新闻
user 用户相关程序日志
local 用户自定义日志

#日志级别

debug 系统调试信息
info 常规信息
notice 最具有重要性的普通条件的信息
warning 警告信息
err 报错(级别低,阻止了某个功能不能正常工作)
crit 报错(级别高,组织整个软件或整个系统不能正常工作)
alert 需要立即修改信息
emerg 内核崩溃
none 不采集任何日志信息

注意:从上到下,级别从低到高,记录的信息越来越少

##二、日志的远程同步

做实验前要清空其它没有的数据,以防出错!

 > /var/log/messages    #清空日志
>  /etc/rc.d/rc.local  #清空虚拟机一直产生的日志和脚本

日志的远程同步实验步骤:
注意:
1)这个实验中自定义发送方和接受方,只要自己能记住就可以,但是千万不能混乱,可以用“ifconfig”查看IP
2)更改完配置文件后一定要“systemctl restart rsyslog.service”重启服务器,否则后面的操作毫无意义
3)一定要在接收方关闭防火墙,否则会对外来发送方发送的日志进行屏蔽

(1)在日志发送方

 vim  /etc/rsyslog.conf
  ##########################修改文件
    *.*     @172.25.254.200    ##"@"表示udp协议发送,“@@”表示tcp协议发送(将所有日志的所有调试信息发送到接收方地址)(172.25.254.200为日志接收方IP)
  ##########################
systemctl  restart  rsyslog.service    ##重启rsyslog服务器
systemctl  restart  sshd.service       ##重启后在接收方才可以看到日志

在这里插入图片描述
(2)在日志接收方

vim /etc/rsyslog.conf
  ##########################修改文件
  15  $ModLoad imudp                ##开启日志接收模块
  16  $UDPServerRun 514             ##开启接收端口
  #########################
  systemctl restart rsyslog.service ##重启rsyslog服务器

在这里插入图片描述
(3)在接收方关闭防火墙

systemctl stop firewalld      ##关闭防火墙 
systemctl disable firewalld   ##关闭防火墙对接收的屏蔽
systemctl status firewalld    ##查看防火墙状态

火墙为关闭状态
在这里插入图片描述
(4)测试

1)在发送方和接收方都清空日志文件

>  /var/log/messages     ##清空日志

2)在日志的发送方

logger  hahaha                 ##建立日志
cat  /var/log/messages    ##查看日志信息文件(看是否产生日志hahaha)

在这里插入图片描述
3)在日志的接收方查看

cat  /var/log/messages    ##查看日志信息文件(看是否接收到日志hahaha)

在这里插入图片描述
三、设定日志采集格式
参数对应的含义:
%timegenerated% ------ #日志生成时间
%FROMHOST-IP% ----- #日志来源主机的IP
%syslogtag% ------------- #日志生成程序
%msg% -------------------- #日志内容
\n ----------------------------- #换行

vim  /etc/rsyslog.conf
########################编辑文件
$template 格式名称,“日志采集格式”          ##格式名称随便写

*.info;mail.none;authpriv.none;cron.none   /var/log/messages;格式名称
#########################

$template HAHAHA,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n" (在rules下写)
示例:

vim  /etc/rsyslog.conf

在这里插入图片描述
编辑完后一定要重启
在这里插入图片描述
四、时间同步

1.时间同步服务
服务名称:chronyd

1)在服务器端共享时间

vim /etc/chrony.conf
####################文件修改
29 local stratum 10         ##开启时间共享功能,本机作为时间源(时间源的优先级为10)
                            ##这个参数开启后本机不去同步别人的时间到本机
22 allow 172.25.254.0/24    ##允许那些客户端来访问本机共享的时间
####################
systemctl restart chronyd   ##重启chronyd
systemctl stop firewalld    ##关闭火墙

在这里插入图片描述
2)客户端

vim /etc/chrony.conf

删掉3,4,5,6行
在这里插入图片描述
输入 server 172.25.254.72 iburst----##server 服务端IP iburst(立即更改)

在这里插入图片描述

systemctl restart chronyd       ##重启

3)测试,在客户端

[root@localhost ~]# date 11111111
Mon Nov 11 11:11:00 EST 2019
[root@localhost ~]# 
[root@localhost ~]#chronyc sources -v

在这里插入图片描述
如果出现“^* ”就说明试验成功,已经和172.25.254.72的时间同步

utc时间计算方式:世界时间+时区

2.修改时间------timedatectl 命令

    timedatectl              ##显示当前时间信息

在这里插入图片描述

timedatectl set-timezone "America/New_York"     ##更改时区为西五区

在这里插入图片描述

timedatectl set-time "2012-12-12 12:12"       ## 设置时间为2012-12-12 12:12

在这里插入图片描述

    法1: timedatectl set-local-rtc 0/1       ##设置是否使用utc时间
     										  ##0--否,1--是
    法2: vim /etc/adjtime                    ##文件中LOCAL和UTC只能运行一个
timedatectl list-timezones                   ##查看支持的时区

五、查看内存中的日志

1.日志查看工具:journalctl

 journalctl -n 4                ##查看最近四条日志
 journalctl -p err              ##查看错误日志 
 journalctl --since 11:00       
 journalctl --since 11:00 --until 11:00:30  ##查看11:00以后,11:00:30以前的日志
 journalctl -o verbose          ##查看日志的详细参数,例如:_PID=651  journalctl _PID=651
 journalctl  -f                 ##用户ctrl+c结束监控

2.如何使用systemd-journald保存系统日志到硬盘中

默认此程序只负责对日志进行查看而不对日志进行保存和采集
那么关机后再开机,对日志进行查看,只能查看到开机后的日志
系统之前的日志因为是保存在内存中的,所以关机后就被清空了,那么在开机是用journalctl看不到

使用下列命令可以保存系统日志(一般情况下不建议使用)

mkdir /var/log/journal
chown  root.systemd-journal  /var/log/journal     ##更改文件所有人
chmod  g+s /var/log/journal     ##在目录中创建的文件都自动归属到目录所在组
killall -1 systemd-journald 
journalctl -n 3            ##查看日志前三行内容
date                       ##查看现在的时间
reboot                     ##退出系统
ssh [email protected]    ##再次连接
journalctl                 ##查看日志

存入硬盘后可以看到关机前的内容,这是因为把这些日志都保存到了硬盘里。就算关机重启日志也不会清空
使用systemd-journald保存系统日志(慎用,不会自动关,会占用内存越来越大)

猜你喜欢

转载自blog.csdn.net/weixin_44297303/article/details/86545500