Linux基础命令(九)系统日志和时间服务器

一、问题引入

(1)每天产生无数多的日志信息,但是日志是如何存放的?换句话说谁在管理这些日志?如何管理?

引申出:采集服务日志信息的服务==>rsyslog

特点:此服务只是用来采集系统日志信息,不产生日志信息,起到一个信息采集的作用!

白话:就是一个搬运工,将采集到的信息分门别类的保存到指定路径!

日志的作用:进程和操作系统内核需要能够为发生的事件记录日志 , 这些日志可用于系统审核和后续的故障排错

二、了解一下/var/log 目录中存储系统日志信息的文件

分门别类

日志文件                         用途

/var/log/messages       大多数系统日志信息记录在此处
/var/log/secure         安全和身份认证相关的消息和错误的日志文件(系统登陆的日志信息,需要用户名和密码的-->ssh等)
核心:su、ssh、ftp、polkit动作的记录信息!
/var/log/maillog        与邮件服务器相关的日志文件
/var/log/cron           与定时任务相关的日志文件
/var/log/boot.log       与系统启动有关的日志文件

polkit服务启动失败、polkit的配置

测试

(1)清空client的messages的信息,logger产生日志,观察messages文件内容

(2)清空server的secure的信息,client启动ssh,观察server的secure文件的内容

三、了解rsyslog服务

      1)rsyslog 服务的主配置文件为 /etc/rsyslog.conf

      图片:

 rsyslog配置含义、使用rsyslog搭建集中日志服务器、详细解释、rsyslog 定义格式、解决rsyslog日志分发过滤问题、rsyslog研究

    2)日志的类型和级别

   rsyslog的日志级别

7 debug     调试信息的日志,日志信息最多
6 info      一般信息的日志,最常用
5 notice    最具有重要性的普通条件的信息
4 warning   警告级别
3 error     错误级别,阻止某个功能或者模块不能正常工作的信息
2 crit      严重级别,阻止整个系统或者整个软件不能正常工作的信息
1 alert     需要立刻修改的信息
0 emerg     内核崩溃等严重信息

特点:从上到下级别越来越高,但是信息记录越来越少!

rsyslog的日志类型

auth           pam产生的日志
authpriv       ssh,ftp等登录信息的验证信息
cron           时间计划任务相关
kerl           内核
lpr            打印
mail           邮件
mark(syslog)   rsyslog服务内部信息,时间标识
news           新闻组
user           用户程序产生的相关信息
uucp           Unix主机之间相关的通信(了解)
local          1-7 自定义的日志设备

备注:uucp-->unix to unix copy

需求1:在日志采集的过程中保存一份信息到指定的文件中

问题引入

通常一个人要管理多台主机,每台主机都会产生无数的信息,我们总不至于登陆到每台主机上查看,引出了日志同步的问题!

需求2:日志信息的远程同步

实际:其实备份日志信息到指定的远程主机中,方便统一管理

查看文档

man 5 rsyslog.conf -->/machine-->定位到我们需要的UDP相应的文档说明!

      1)客户端的设置

    2)日志服务器的设置

    核心步骤:设置加载模块监听端口,以及关闭防火墙,开启rsyslog服务

    相应配置文件的说明

客户端命令行的测试

服务器端测试

排错:远程主机不能同步日志信息?

排错思路:(1)服务是否开启-->(2)端口是否开启-->(3)防火墙是否关闭

需求:我们发现远程同步过来的信息有许多,一但出现错误,我怎么能准确定位到这一台主机呢?

思路:设置不同的主机名,但是如果主机名一样呢?

解决方案:用ip来标示发送日志信息的每一台主机!

具体:在服务器端配置设置自定义日志的规则,客户端发送过来日志信息就会作相应的转换

客户端测试

logger Java编程!

日志服务器测试

 vim /etc/rsyslog.conf 
 systemctl restart rsyslog.service 
 > messages 
 cat messages 
 #展示信息:Apr  4 08:56:44 172.25.2.100 root:  Java编程!

注意:如果在客户端设置日志格式,则服务器端口始终显示的IP是回环地址

后续:将每天的日志打包然后同步到日志服务器的指定的目录下,更方便查看!

进一步需求

有多台使用tomcat搭建的web服务器,需要将日志集中管理!

初步方案:采用rsyslog远程同步到日志服务器上,由于tomcat的日志属于非syslog,所以需要"使用模块添加日志文件"!

补充:可以全局同步

#默认保存日志信息的文件所使用的日志格式

$ActionFileDefaultTemplate SYSLOG

具体:将自定义的日志信息格式赋值给$ActionFileDefaultTemplate即可

rsyslog研究

####################################

、netstat命令

特点:是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络端口设备的状态信息!

参数说明

-a                       显示所有选项,默认不显示LISTEN相关
-n                       拒绝显示别名,能显示数字的全部转化成数字,以网络ip代替名称,显示网络连接情形
-t                       仅显示tcp相关选项
-u                       仅显示udp相关选项
-l                       仅列出有在 Listen (监听) 的服務状态
-p                       显示建立相关连接的程序名和PID
-e                       显示以太网统计。此选项可以与 -s 选项结合使用
-r                       显示路由信息,路由表
-s                       显示每个协议的统计

常用的组合: antlupe

时间服务器 (NTP)

解释:NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议!

时间服务器作用

大数据产生与处理系统是各种计算设备集群的,计算设备将统一、同步的标准时间用于记录各种事件发生时序,

如E-MAIL信息、文件创建和访问时间、数据库处理时间等。

大数据系统内不同计算设备之间控制、计算、处理、应用等数据或操作都具有时序性,

若计算机时间不同步,这些应用或操作或将无法正常进行,

大数据系统是对时间敏感的计算处理系统,时间同步是大数据能够得到正确处理的基础保障,是大数据得以发挥作用的技术支撑。

大数据时代,整个处理计算系统内的大数据通信都是通过网络进行。

时间同步也是如此,利用大数据的互联网络传送标准时间信息,实现大数据系统内时间同步。

网络时间同步协议(NTP)是时间同步的技术基础

场景:淘宝的时间同步问题!

思路:某一台主机把时间共享出来,其它主机都同步它的时间!

服务端设置:编辑 /etc/chrony.conf配置文件

注意:有顺序的,位置不能写错!

客户端设置:编辑 /etc/chrony.conf配置文件

服务器端操作

1)编辑文件
2)重启服务

客户端测试

说明:date 11112111-->直接通过配置文件的形式修改日期的!

测试:每次客户端改变日期,客户端都要重启服务才能时间才能同步生效(只有启动服务才能读取配置文件才会去同步)!

测试步骤:客户端修改时间--->服务器修改配配置文件--->客户端修改配置文件,然后重启服务!

防火墙的问题:服务器关闭防火墙!

CentOS7 的时间同步方法

问题双系统经常会发生时间错乱的问题!

解决方案:将local时间记录给BIOS中,而不是utc(伦敦本初子午线时间)中的!

timedatectrl命令的参数说明:

timedatectl  status               --显示当前的状态信息
             set-time             --设置当前时间(修改配置文件形式)
             set-timezone         --更改时区(东八区-->中国:Asia/Shanghai)
             set -local-rtc 0|1   --1表示采用local同步BIOS的时间!
             list-timezone        --查看是否支持所有的时区

链接1链接2、使用chrony代替ntp同步时间、tail -f、细节问题

、日志分析命令

journal

journalctl      ## 日志查看工具

-n 5            ## 查看最近生成的 5 条日志
-p err          ## 查看系统报错
--since --until ## 查看某个"时间段"生成的日志
-o verbose      ## 查看日志能够使用的条件参数

需求1:某个服务重启了,但是想查看此PID和COMM的信息!

需求2:查看某个时间段的日志信息!

扩展:如何使用systemd-journal保存系统日志

默认:systemd 日志保存在 /run/log/journal/机器码/system.journal 中 , 这意味着系统重启时会被清除!

mkdir /var/log/journal                        ##     创建一个保此"内存"日志信息的目录
chgrp systemed-journal /var/log/journal       ##     改变用户组
chmod g+s /var/log/journal                    ##     设置特殊权限关键之前保存内存信息!
killall -1 systemd-journald                   ##     重启服务

ps aux|grep journal                           ##     查看此systemd-journald服务
ls /var/log/journal                           ##     目录名是每一个机器的机器码!
bootctl                                       ##     查看机器的机器码!

细节:设置相应的选项后,第一次保留的是reload到reboot之间的信息,下次就是全部的信息!

好处:启动后就可以利用历史数据 , 形成永久日志!

注意:没有特殊需要的话,不建议此设置,时间长了容易磁盘爆满!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值