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

日志的管理

在做以下实验时需先做的操作为:(1)打开两个虚拟机(desktop和server)并更改他们的ipÿ

在做以下实验时需先做的操作为:

(1)打开两个虚拟机(desktop和server)并更改他们的ip

    (可用nm-connection-eidtor  #图形设定ip)

(2)更改两个虚拟机的名称(hostnamectl set-hostname       

    node1.example.com #将虚拟机的名字改为node1)

(3)在真机中打开两个shell,用ssh命令分别连接两个虚拟机

注:ctrl+shift+t  #再打开一个shell

1.日志的采集规则:

*.*     文件名称(绝对路径)   #日志类型.日志级别    日志存放的文件

vim /etc/rsyslog.conf       #查看并修改采集日志文件配置,

                                        使我们能够采集日志到指定位置

systemctl stop rsyslog.service    #停止收集日志的服务

systemctl start  rsyslog.service  #开始收集日志的服务

 (1)日志类型

auth          #用户登陆日志(pam生日志)

authpriv      #服务认证日志(sshd认证)

kern          #内核日志

cron          #定时任务日志

lpr           #打印机日志

mail          #邮件日志

news          #新闻

user          #用户相关程序日志

local  1-7    #用户自定义日志

 

(2)日志级别

debug              系统调试信息

info                  常规信息

warning            警告信息

err                报错(级别低,阻止了某个工作不能正常工作)

crit               报错(级别高,阻止了整个软件或整个系统不能正常工作)

alert              需要立即修改的信息

emerg           内核崩溃

none            不采集任何日志信息

 

(3)系统常用日志

/var/log/messages     #所有日志级别的常规信息(不包含邮件,服务认证,定时任务)

/var/log/maillog      #邮件认证

/var/log/secure       #服务认证日志

/var/log/cron         #定时任务日志

 例如:

*.*  /var/log/log.all  #将所有级别所有类型的日志采集到/var/log/log.all里

auth.debug  /var/log/westos#用户登陆的系统调试信息放到/var/log/westos里

auth.*     /var/log/file  #将用户登陆的所有级别的日志放到/var/log/file里

注意:

日志可以直接看出系统中的错误,日志存在于内存中,修改rsyslog(配置文件)的意义在于将内存中的日志采集放到硬盘里

实验1.1具体操作步骤如下:

在服务端(note2)

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

   cat /var/log/messages       #查看日志(没有日志)

   systemctl restart sshd.service  #重启服务

   cat /var/log/messages       #(有日志)

   systemctl stop rsyslog.service  #停止收集日志的服务

   > /var/log/messages

   systemctl restart sshd.service

   cat /var/log/messages       #(没有日志)

   systemctl start  rsyslog.service  #开始收集日志的服务

   cat /var/log/messages      # (有日志)

 

实验1.2(将日志采集到指定位置)具体操作步骤如下:

在服务端(note2)

> /etc/rc.d/rc.local  #清空虚拟机一直产生的日志和脚本(本地日志)

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

cat /var/log/messages #查看日志是否被清空

vim /etc/rsyslog.conf #更改rsyslog.conf配置文件

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

*.info;mail.none;authpriv.none;cron.none                /var/log/messages

*.*                                                     /var/log/file

 cat /var/log/file



在客户端测试(note1)

ssh root@172.25.254.130    #连接服务端

exit                       #退出连接


在服务端

systemctl start  sshd.service #重启服务

cat /var/log/file          #查看日志内容(有node1登陆的记录)

 

2.日志的远程同步

   它的意义在于实现多台主机向一台主机传输日志,便于管理者高效的查看多台主机的日志。

 具体实验2操作步骤如下:

在服务端(发送方)

> /etc/rc.d/rc.local   #清空虚拟机一直产生的日志和脚本(本地日志)

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

cat /var/log/messages

vim /etc/rsyslog.conf

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

*.*             @172.25.254.130       #日志接收方地址

 systemctl restart  rsyslog.service    #重启配置文件

在客户端(接收方)

>  /etc/rc.d/rc.local  #清空虚拟机一直产生的日志和脚本(本地日志)

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

cat /var/log/messages

vim   /etc/rsyslog.conf        #设置接受方端口

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

15 $ModLoad imudp   #           #打开插件

16 $UDPServerRun 514           #打开插件接口(取消注释#即可)

systemctl restart rsyslog.service

systemctl stop firewalld      #关闭接收方防火墙

systemctl disable firewalld   #开机时开启防火墙

cat /var/log/messages         #查看日志

 

 

3.定义日志采集格式

$template  格式名称, "日志采集格式"

具体的日志采集格式:

%timegenerated%    #日志生成时间

%FROMHOST-IP%      #日志来源主机的IP

%systag%           #日志生成程序

%msg%              #日志内容

\n                 #换行

具体实验3操作步骤如下:

在客户端(接收方)

>  /etc/rc.d/rc.local   #清空虚拟机一直产生的日志和脚本(本地日志)

vim /etc/rsyslog.conf   #编辑配置文件,定义采格式

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

$template westos, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg% \n "                                                      #定义为westos格式

*.info;mail.none;authpriv.none;cron.none       /var/log/messages;westos

 

systemctl restart rsyslog.service

cat /var/log/messages          #查看日志

 



5. journalctl命令

      journalctl + 参数       #日志的查看

具体参数的含义:

 -p  err #查看报错日志

 -f      #监控 (用户ctrl+c结束监控)

 --since  时间点 --until  时间点  #查看从何时到何时的日志

 -o   verbose    #查看日志详细参数

 -n      3       #最新(new)的三条日志

 -o   verbose     #从详细参数中可以查到日志的PID   

 journalctl _PID=84    #直接查看PID为84的程序产生的日志

 

例如:journalctl  --since 01:30 --until 01:40  #查看从1:30到1:40产生的日

 

(1)对systemd-journald管理

默认此程序只负责对日志进行查看而不能对日志进行保存和采集

那么关机后再开机,只能查看到开机后的日志,因为系统之前的日志是保存在内存中的,

所以关机后就被清空了,那么在开机时用journalctl看不到的

(2)如何让systemd-journald将日志保存到硬盘中

mkdir /var/log/journal       #建立目录

groupadd systemd-journald    #建立组

chgrp systemd-journald /var/log/journal   #在该目录下的创建所有文件   均属于systemd-journald组

chmod g+s /var/log/journal   #

killall -1  systemd-journald  #结束组中的所有进程

journalctl -n 3    #查看关机之前的日志,以便后边对照观察

date    #查看时间

reboot  #重启

ssh root@172.25.254.230

journalctl   #(此时可查看到关机之前的所有日志)

 


6.时间同步

#在服务端共享时间

vim /etc/chrony.conf

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

29 local stratum           #共享时间共享功能并设定共享级别,

                            这个参数开启后本机不去同步别人的时间到本机

22 allow 172.25.254.0/24   #允许网络位相同的所有客户端来访问本机共享的时间

 

systemctl restart chronyd


#在客户端:

vim /etc/chrony.conf

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

server 172.25.254.230 iburst


systemctl restart chronyd

systemctl stop  firewalld  #关闭防火墙

chronyc sources -v

*********************************************************************

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.

 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,

| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.

||                                                 .- xxxx [ yyyy ] +/- zzzz

||                                                /   xxxx = adjusted offset,

||         Log2(Polling interval) -.             |    yyyy = measured offset,

||                                  \            |    zzzz = estimated error.

||                                   |           |                         

MS Name/IP address         Stratum Poll Reach LastRx Last sample

===============================================================================

^* 172.25.254.128               10   6    17     0  +6500ns[ +111us] +/-  988us

 



7.与timedatectl有关的命令

timedatectl                            #查看时间信息

timedatectl list-timezones             #查看所有时区

timedatectl set-timezone Asia/Shanghai #设置为上海的时区

 

timedatectl set-local-rtc  0           #使用UTC时间

vim /etc/adjtime                       #在此文件中显示UTC

timedatectl set-local-rtc  1           #使用local(本地)时间

vim /etc/adjtime                       #在此文件中显示local

 

timedatectl set-time "年-月-日  时:分:妙" #修改时间

date  #查看时间

例如 timedatectl set-time "2018-11-11 11:11:11"

 

8.与at有关的命令(延迟任务)

at 时间          #设定在该时刻要进行什么操作

at now+数字min   #在几分钟后要进行什么操作

at  -l                 #查看该操作的编号

at  -c  3              #查看编号为3要做什么操做

at  -r  3              #撤回编号为3的操作

 

例如:

at 16:00

>touch /mnt/file{1..3} #要做的操作

>                #(按ctrl+d)

注:做以上操作时需打开一个shell用ssh连接相同的虚拟机

   watch -n 1 ls /mnt 来监控,便于观察现象


vim   /etc/at.deny      #编辑at配置文件,指定黑名单(即用户不能执行at操作)

touch /etc/at.allow     #建立白名单的配置文件(系统默认没有白名单配置文件。白名单一旦出现,黑名单便会失效,即只有超级用户能执行at命令)

vim   /etc/at.allow     #编辑at配置文件,指定白名单,即指定用户和root用户才能>执行at操作

 

 

 

 

 

 


推荐阅读
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 在网站制作中随时可用的10个 HTML5 代码片段
    HTML很容易写,但创建网页时,您经常需要重复做同样的任务,如创建表单。在这篇文章中,我收集了10个超有用的HTML代码片段,有HTML5启动模板、空白图片、打电话和发短信、自动完 ... [详细]
  • 本文介绍了如何在多线程环境中实现异步任务的事务控制,确保任务执行的一致性和可靠性。通过使用计数器和异常标记字段,系统能够准确判断所有异步线程的执行结果,并根据结果决定是否回滚或提交事务。 ... [详细]
  • CentOS系统安装与配置常见问题及解决方案
    本文详细介绍了在CentOS系统安装过程中遇到的常见问题及其解决方案,包括Vi编辑器的操作、图形界面的安装、网络连接故障排除等。通过本文,读者可以更好地理解和解决这些常见问题。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 本文详细介绍了如何规划和部署一个高可用的Etcd集群,包括主机配置、软件安装、防火墙设置及集群健康检查等内容。通过合理的硬件配置和网络规划,确保Etcd集群在生产环境中的稳定运行。 ... [详细]
  • 配置多VLAN环境下的透明SQUID代理
    本文介绍如何在包含多个VLAN的网络环境中配置SQUID作为透明网关。网络拓扑包括Cisco 3750交换机、PANABIT防火墙和SQUID服务器,所有设备均部署在ESXi虚拟化平台上。 ... [详细]
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
  • 20100423:Fixes:更新批处理,以兼容WIN7。第一次系统地玩QT,于是诞生了此预备式:【QT版本4.6.0&#x ... [详细]
  • 哈密顿回路问题旨在寻找一个简单回路,该回路包含图中的每个顶点。本文将介绍如何判断给定的路径是否构成哈密顿回路。 ... [详细]
  • 本文探讨了在 OpenStack 环境中使用虚拟机部署 Ceph 集群后,外部服务器通过浮动 IP 无法访问该集群的问题,并提供了详细的解决方案。 ... [详细]
  • 本文详细介绍了 iBatis.NET 中的 Iterate 元素,它用于遍历集合并重复生成每个项目的主体内容。通过该元素,可以实现类似于 foreach 的功能,尽管 iBatis.NET 并未直接提供 foreach 标签。 ... [详细]
  • 本题探讨了在一个有向图中,如何根据特定规则将城市划分为若干个区域,使得每个区域内的城市之间能够相互到达,并且划分的区域数量最少。题目提供了时间限制和内存限制,要求在给定的城市和道路信息下,计算出最少需要划分的区域数量。 ... [详细]
  • 本文深入探讨了传输层的另一个重要协议——用户数据报协议(UDP)。在了解了TCP协议的基础上,我们将详细解析UDP的工作原理、应用场景及其优缺点,帮助读者全面理解为什么需要UDP。 ... [详细]
author-avatar
嘎嘎19850820
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有