RHCE——分析和存储日志

系统日志架构

在Linux 7 中系统消息由systemd-journaldrsyslog负责。
系统日志消息由systemd-jourmald转发到rsyslog,而rsyslog经过处理,将日志文件写在/var/log下面。

linux日志文件概述

日志文件 用途
var/log/messages 大多数系统日志记录
var/log/secure 安全和身份认证相关的消息和错误的日志文件
/var/log/maillog 发送到系统或从系统发出的电子邮件的活动
/var/log/cron 与定期执行的相关文件
/var/log/boot.log 自检过程

查看日志文件

rsyslog的配置文件在/etc/rsyslog.conf
日志文件由rsyslog负责维护,包括许多的应用的日志文件,有类似Apache Web日志也存在/var/log的对应的文件中。

rsyslog.conf中示例规则部分

#### RULES ####

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
#*.*                                                    @xx.xx.xx.xx 
//表示将本机日志存储到指定的服务器上
# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog


# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 :omusrmsg:*

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log

在另一台机器存储服务器的日志

目的是可以防止非法入侵抹除日志文件

 1. 在要备份日志的机器上
[student@localhost 桌面]$ vim /etc/rsyslog.conf 
 2. 在配置文件中添加配置传送方向
#*.*                      @xx.xx.xx.xx 
3. 重启服务                          
[student@localhost 桌面]$ systemctl restart rsyslog.service 
 4. 在备份文件存储的机器上
 [root@desktop ~]# vim /etc/rsyslog.conf 
 5. 修改文件,开启514端口的TCP,和UDP服务
 # Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
 6. 重启服务
 [root@desktop ~]# systemctl restart rsyslog.service 
 7. 关闭防护墙
 [root@desktop ~]# systemctl stop firewalld.service

日志文件轮转

logrotate程序是一个日志文件管理工具。用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到“转储”作用。可以节省磁盘空间。下面就对logrotate日志轮转操作做一梳理记录:

1)配置文件介绍
Linux系统默认安装logrotate工具,它默认的配置文件在:
/etc/logrotate.conf
/etc/logrotate.d/

利用tail监控日志文件

实时监控文件后10行的内容

[root@desktop ~]# tail -f /var/log/messages

使用logger发送日志消息

[root@desktop ~]# logger "456"

查看systemd日志条目

通过journalctl查找事件

要以root身分现实完整系统日志

[root@desktop ~]# journalctl 
[root@desktop ~]# journalctl -n 5  
#显示最后五行的日志
[root@desktop ~]# journalctl -p err 
#仅列出优先级在err及以上的日志
[root@desktop ~]# journalctl -f
#动态查看日志后10行
[root@desktop ~]# journalctl --since today
#显示当天记录
[root@desktop ~]# journalctl --since "2017-7-29 00:00:00" --until "2017-7-30 00:00:00"
#查询该时段的日志


[root@desktop ~]# journalctl _SYSTEMD_UNIT=avahi-daemon.service
#仅指定一个匹配条件, 显示所有符合该匹配条件的日志


[root@desktop ~]# journalctl _SYSTEMD_UNIT=avahi-daemon.service _PID=28097

#指定了两个不同字段的匹配条件, 显示同时满足两个匹配条件的日志
[root@desktop ~]# journalctl 
-- Logs begin at 日 2017-03-19 00:06:49 CST, end at 一 2017-07-31 22:06:45 CST. 
3月 19 07:58:21 debug010000002015.local.alipay.net systemd-journal[91]: Runtime 
3月 19 07:58:21 debug010000002015.local.alipay.net systemd-journal[91]: Runtime 

详细journalctl命令

保存systemd日志

配置永久systemd文件

[root@desktop ~]# mkdir /var/log/journal1
[root@desktop log]# chown root:systemd-journal /var/log/journal1
[root@desktop log]# chmod 2755 /var/log/journal1
[root@desktop journal1]# killall -USR1 systemd-journald

保持准确时间

关于当前关于时间的系统设置

[student@localhost 桌面]$ datetiamctl
bash: datetiamctl: 未找到命令...
[student@localhost 桌面]$ timedatectl 
      Local time: 一 2017-07-31 22:41:55 CST
  Universal time: 一 2017-07-31 14:41:55 UTC
        Timezone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
[student@localhost 桌面]$ timedatectl list-timezones 
# 显示系统支持的时区
[student@localhost 桌面]$ timedatectl set-timezones Africa/Abidjan
# 设定时区
[student@localhost 桌面]$ timedatectl set-time 90000
# 设定时间
[student@localhost 桌面]$ timedatectl set-ntp true
# 通过ntp自动获取时间

配置和监控chrondy

chrondy服务通常与配置的NTP服务器同步,使通常不精确的本地时钟(RTC)保持准确
其配置文件在/etc/chrony.conf
NTP服务,
更改本地的时间源
国内常用NTP及其地址

# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.rhel.pool.ntp.org iburst
server 1.rhel.pool.ntp.org iburst
server 2.rhel.pool.ntp.org iburst
server 3.rhel.pool.ntp.org iburst
# server 210.72.145.44 iburst

更改时间源后,重启服务

[student@localhost 桌面]$ systemctl restart chronyd.service 

# 详细输出
[root@localhost ~]# chronyc sources -v
210 Number of sources = 4

  .-- 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
===============================================================================
^* news.neu.edu.cn               2   6    77    10    -13ms[  -21ms] +/-   60ms
^- biisoni.miuku.net             2   6    77     9  -6064us[-6064us] +/-  179ms
^- 61-216-153-105.HINET-IP.h     3   6   137     2  +5213us[+5213us] +/-  116ms
^+ 59.46.44.253                  2   6    77    10    +52ms[  +52ms] +/-  117ms

你可能感兴趣的:(RHCE,linux)