热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

1.10Linux系统的日志管理

Linux系统的日志管理Journalctl服务Journalctl命令基础用法日志的永久存放Rsyslog服务日志采集的自定义更改日志采集格式设置系统时间NTP网络时间同步协议J

Linux系统的日志管理

  • Journalctl服务
    • Journalctl命令基础用法
    • 日志的永久存放
  • Rsyslog服务
    • 日志采集的自定义
    • 更改日志采集格式
  • 设置系统时间
    • NTP 网络时间同步协议


Journalctl服务

程序运行时可能会产生日志用于记录运行情况,对于日志的管理在Linux系统中有单独的服务.

systemd-journald.service ##日志服务
journalctl ##对应的日志查看命令
/run/log ##默认日志存放路径

Journalctl命令基础用法

journalctl命令用于对journald-service服务内存放的信息进行查看.
值得一提的是,systemd-journald 是用于内存的登录文件记录方式,因此在重启后之前保留的信息也会消失;换言之,journalctl查看您的是启动之后系统中的日志.

journalctl ##r日志查看命令
journalctl -n 5 ##查看最新的5条日志
journalctl --since "2021-01-01 00:00:00" ##查看2021年1月1日0点之后的日志
journalctl --until "2021-01-01 00:00:00" ##查看2021年1月1日0点之前的日志
##两者还可以组合,用来限制时间区间journalctl -o ##日志显示方式自定义参数-o short ##经典模式显示日志,也是默认方式-o verbose ##显示日志的全部字节-o export ##以适合传输和备份的二进制形式显示日志-o json ##json结构化显示输出-p ##显示指定等级的日志

日志在系统中是按照重要程度分级的,不同等级的权限和存储的日志内容不同.

0 emerg 系统的严重问题日志
1 laert 系统中立即需要更改的信息
2 cirt 严重级别,会导致系统软件不正常的日志
3 err 程序报错
4 warning 程序警告
5 notice 重要信息的普通日志
6 info 普通信息
7 debug 系统排错信息journalctl -F PRIORITY ##查看可控日志级别,超级用户下3,4,5,6,7为可控日志
journalctl -u ##查看指定服务
journalctl --disk-usage ##查看日志大小

基础日志查看
时间段日志
显示指定数目日志
自定义参数输入日志
程序等级输出
查看指定
限制硬盘大小

日志的永久存放

默认情况下日志存放在/run/log/journal目录下,当系统重启后内容就会重置,这显然是不符合我们的需求的.可以通过以下方式更改日志的存储来实现永久存放.

mkdir /var/log/journal ##创建日志永久保存目录
chgrp systemd-journal /var/log/journal ##更改所属组
chmod 2775 /var/log/journal ##使得后续创建文件的所属组也为系统日志
systemctl restart systemd-journald.service ##重启服务使之生效

服务重启后,日志的存放路径就会被重新定向到刚刚设置的/var/log/journal中,实现了永久存放.
永久保存日志

Rsyslog服务

Journal服务是RHEL7企业版之后新增的用于进行系统登陆服务的服务,而在这之前rsyslog用于对系统内的登陆进行记录抓取,有自己的配置文件,可以进行自定义.
在这里插入图片描述

rsyslog.service
日志存放位置:
/var/log/message ##系统服务日志,包括常规信息和系统报错
/var/log/secure ##系统认证信息日志
/var/log/maillog ##系统邮件信息日志
/var/log/cron ##系统定时任务日志
/var/log/boot.log ##系统启动信息日志配置文件:
/etc/rsyslog.conf

日志采集的自定义

通过对配置文件的修改,我们可以实现日志采集的自定义.如采集文件的内容筛选,日志的存放位置.

日志存放内容类型的筛选
auth ##用户认证
authpriv ##服务认证
cron ##时间任务
kern ##内核类型
mail ##邮件服务
news ##系统更新信息
user ##用户日志级别
debug ##程序排错信息
info ##程序常规的运行信息
notice ##总要信息的普通日志
warning ##程序警告
err ##程序报错
crit ##严重级别的导致系统软件工作不正常的日志
alert ##系统中立即需要更改的信息
emerg ##系统严重问题日志
none ##不进行采集

日志的存放位置不仅可以为本地位置,同样可以为远端位置.在选择远端位置时同样可以选择TCP或者UDP连接.

  • 选择UDP协议时,写法为@网络地址IP
  • 选择TCP协议时,写法为@@网络地址

因为可以设置将文件发送到远程主机,所以配置文件的设置分成了两个部分:即服务端和客户端都需要进行设置.

  • 服务端设置日志类型,修改存放位置为客户端IP,实现定向自定义存放
  • 客户端设置接受协议和接受端口,修改或关闭火墙设置.
  • 重启双边服务,对发送和接受情况进行测试,

发送段设置
接收端设置

更改日志采集格式

通过上面的实验,我们发现通过配置文档可以自定义以下内容

  • 日志存放什么
  • 存放在哪里
  • 以什么协议存放

但是系统日志本身的格式冗长复杂,无用项多,不利于我们进行信息筛选.查看日志的目的是寻找能够解决我们遇到问题的信息,过于冗杂的信息应该丢弃以避免对于我们查阅的影响.那么理所当然的,日志的采集格式也是可以修改的,同样在配置文件/etc/rsyslog.conf中.

对于日志采集格式的修改分为两方面

  • 自定义采集的格式规则
  • 选择对什么采集类使用该规则

定义日志采集格式规则
$template 规则名称,"采集内容关键词"举例
$template Test,"%FROMHOST-ip% %timegenerated% %syslogtag% %msg%\n"
常用关键词一览
%FROMHOST-ip% ##日志来源主机的IP
%timegenerated% ##日志生成时间
%msg% ##日志信息内容
%syslogtag% ##生成日志的服务
\n ##换行符对采集目标应用日志的方法为在存储位置后加入";规则名"

设置完成后重启服务
因为采集格式是客户端的事,所以修改与服务端无关.
在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

设置系统时间

计算机内实际保存着三个时间,系统时间,UTC时间(世界标准时间)和RTC时间(硬件时间),常见的双系统时间不正确的问题就是系统时间与RTC时间不统一造成的.我们可以通过指令对时间进行修改.

timedatectl ##查看计算机时间
timedatectl set-time "2021-01-22 14:26:00" ##设置系统时间为后者
timedatectl list-timezone ##查看时区列表
timedatectl set-timezone "Asia/Shanghai" ##设置时区为上海
timedatectl set-local-rtc 0 ##将硬件时间调整为与UTC时间一致
timedatectl set-local-rtc 1 ##将硬件时间调整为与系统时间一致
clock -s ##将系统时间同步到RTC时间
hwclock -s ##将RTC时间同步到系统时间硬件时间不会自动同步,只会在开机时刷写,可通过上诉两条指令进行同步.

当前时间时区列表设置时区设置时间
RTC与UTC同步
RTC与系统时间同步

NTP 网络时间同步协议

在上一章节我们通过timedatectl对系统时间进行了设置,但是设想一下,在服务器群组中有若干台计算机,通过这种方式逐一进行设置不仅是低效的而且因为人工操作的缘故,时间设置也不一定准确.有没有什么方式能够使得其他计算机的时间都与同一台计算机相同呢?

有的,NTP时间同步协议就能够完成这一点.负责分发时间的那台计算机叫做NTP服务器,而其他的客户机都从这台机器上获取和同步时间.这种方式极大简化了大批量计算机群组的时间设置难度,提高了设置的精确度.

时间同步服务
chronyd.service相关配置文件
/etc/chrony.conf

与日志发送相似,既然NTP协议将机器分为了客户端和服务端,那么对于配置文件的修改自然也是在双端进行的.

  • 在客户端设定从什么地方接收时间同步
  • 在服务端设置允许哪些主机从本机同步时间,并设定本机为时间同步服务器,而不从其他主机同步时间.
    服务端时间设置修改错误时间
    客户端时间设置
    完成设置后重启双边服务,短暂等待能够看到客户端时间同步为了服务端时间.

推荐阅读
  • 在做以下实验时需先做的操作为:(1)打开两个虚拟机(desktop和server)并更改他们的ipÿ ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 搞懂 ELK 并不是一件特别难的事
    点击下方“民工哥技术之路”,选择“设为星标”回复“1024”获取独家整理的学习资料!本篇文章主要介绍ELK的一些框架组成,原理和实践&#x ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 我是这样学习Linux下C语言编程的-把程序输出信息加到系统日志里去关键词:Linux系统日志syslog服务程序syslogd ... [详细]
  • IIS服务器配置NXLog进行syslog转发(并解决GMT+8小时时差问题)
    IIS服务器配置NXLog进行syslog转发(并解决GMT+8小时时差问题) ... [详细]
  • Flume 开源分布式日志收集系统
    为什么80%的码农都做不了架构师?Flume--开源分布式日志收集系统Flume是Cloudera提供的一个高可用的、高可靠的开源分布式海量日志收集系统 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
author-avatar
CC周兵价_667
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有