RHCSA教程 第十一章 日志分析与存储

1.系统中的日志文件

日志文件 存储的消息类型
/var/log/messages 大多数系统日志消息处存放处。
/var/log/secure 与安全性和身份验证时间相关的syslog消息。
/var/log/maillog 与邮件服务器相关的syslog消息。
/var/log/cron 与计划任务执行相关的syslog消息
/var/log/boot.log 与系统启动相关的消息。

2.rsyslog服务管理的日志配置文件

[root@clear log]# rpm -qa | grep rsyslog
rsyslog-relp-8.1911.0-3.el8.x86_64
rsyslog-gssapi-8.1911.0-3.el8.x86_64
rsyslog-8.1911.0-3.el8.x86_64
rsyslog-gnutls-8.1911.0-3.el8.x86_64
[root@clear log]# rpm -qc rsyslog-8.1911.0-3.el8.x86_64
/etc/logrotate.d/syslog
/etc/rsyslog.conf       #一般服务文件以.conf结尾,改文件是日志服务的配置文件
/etc/sysconfig/rsyslog
[root@clear log]# vim /etc/rsyslog.conf

 

3.记录日志的规则

日志文件配置格式:
mail.*  /var/log/vsftpd.log

AAAA.BBBB CCCC


AAAA 产生日志的设备(类别)   #如何产生的日志
BBBB 日志的级别             #日志有不同安全级别,类似轻重缓急的严重程度,发出警告
CCCC 保存日志的位置          #在系统中保存日志文件的路径

4.rsyslog配置文件类别(产生日志的设备)

类别(facility)
Kern 内核
authpriv 授权和安全
cron 计划任务
mail 邮件
daemon 系统守护进程
user 普通用户级别的
syslog 由rsyslog生成的信息
local0~local7 自定义本地策略
* 所有类别

5.日志的等级(日志级别)

man 3  syslog
0 EMERG(紧急) 会导致主机系统不可用的情况
1 ALERT(警告) 必须马上采取措施解决的问题
2 CRIT(严重) 比较严重的情况
3 ERR(错误) 运行出现错误
4 WARNING(提醒) 可能会影响系统功能的事件
5 NOTICE(注意) 不会影响系统但值得注意
6 INFO(信息) 一般信息
7 DEBUG(调试) 程序或系统调试信息等
8 * 所有等级
9 none 不记录日志
解释:
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
*.info   *所有设别    .点代表后面的等级及以上等级,也就是info以上的等级全记录
;分号是不同设备等级的分隔符号
mail.*                                                  -/var/log/maillog
- 代表先记录缓存,再记录硬盘,减轻硬盘i/o读写压力。

6.使用logger发送测试日志信息

1、打开servera  rsyslog服务 
2、配置vim /etc/rsyslog.conf
添加  *.debug     /var/log/messages.debug
3、重启rsyslog日志服务
4、[root@servera ~]# tail -n 0 -f /var/log/messages.debug 
开另一个窗口
5、logger -p user.debug "Debug test messages"

tail /var/log/messages.debug

7.journalctl知识点

传统日志服务rsyslog。而新添加的日志服务是systemd-journal,它也是一个日志管理服务,可以收集来自内核、系统早期启动阶段的日
志,以及系统进程在启动和运行中的一些标准输出与错误输出。此日志一旦重启既消失,因为保存在了/run/log/journal/*/*.journal结
尾,该文件是一个二进制日志文件,需要用journalctl命令查看。

tail -n 5

journalctl 查看系统日志
journalctl -n   通过q或ctrl接触观看  ,此命令显示方式类似与tail
journalctl -n 5 

journalctl -p err  日志等级
journalctl -f 
journalctl -p err 
journalctl -p info
  (deubg、info、notice、warning、err、crit、alert、emerg)

journalctl --since "2020-02-28 22:53:35" --until "2020-02-28 22:53:40"
常用字段 含义
_COMM 命令名称
_EXE 进程的可执行文件的路径
_PID 进程的PID
_UID UID
_SYSTEM_UNIT 启动该进程的systemd单元
journalctl -o verbose 
journalctl _HOSTNAME=localhost
journalctl _HOSTNAME=localhost _PID=1

8.设置永久保存journal服务文件方式

mandb
man -k journal
man 5 journald.conf  , Storage=

[root@clear journal]# cp -a /run/log/journal/ /var/log/journal
[root@clear journal]# ll -d /var/log/journal
drwxr-sr-x. 4 root systemd-journal 86 Nov 19 04:30 /var/log/journal
[root@clear journal]# systemctl restart systemd-journald
[root@clear journal]# ll /var/log/journal/3a2b4da8dabb4729935c193e58ad052d/  #字符串目录名字每个人的可能不一样。不要复制我的笔记。
total 8192
-rw-r-----. 1 root root 8388608 Nov 19 04:30 system.journal

9.保持准确的系统时间

[root@servera log]# timedatectl 
               Local time: Sat 2020-02-29 08:51:49 CST
           Universal time: Sat 2020-02-29 00:51:49 UTC
                 RTC time: Sat 2020-02-29 08:11:07
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
          
[root@servera log]# timedatectl list-timezones     
[root@servera log]# timedatectl set-timezone Asia/Hong_Kong 
[root@servera log]# timedatectl 
               Local time: Sat 2020-02-29 08:55:48 HKT
           Universal time: Sat 2020-02-29 00:55:48 UTC
                 RTC time: Sat 2020-02-29 08:15:06
                Time zone: Asia/Hong_Kong (HKT, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

修改时间方法
timedatectl set-time "2020-02-30 10:00:00"
Failed to set time: NTP unit is active
timedatectl set-ntp false 
timedatectl set-time "2020-02-30 10:00:00"
timedatectl set-ntp true 

10.chrony

[root@servera ~]# systemctl enable --now chronyd
[root@servera ~]# systemctl status chronyd
[root@servera ~]# vim /etc/chrony.conf   #大概第7行 server 后面添加服务器'地址'或'域名'。
server classroom.exmaple.com iburst
[root@servera ~]# systemctl  restart chronyd.service
[root@servera ~]# chronyc sources -v
210 Number of sources = 1

  .-- 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
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* classroom.example.com         8   6   377    25  -3837ns[  +21us] +/-  627us

[root@node1 ~]# timedatectl 
               Local time: Sat 2022-11-19 05:03:30 EST
           Universal time: Sat 2022-11-19 10:03:30 UTC
                 RTC time: Sat 2022-11-26 06:07:04
                Time zone: America/New_York (EST, -0500)
System clock synchronized: yes   #表示时间服务同步
              NTP service: active
          RTC in local TZ: no
THE END