Linux系统之系统日志管理

rsyslog

此服务是用来采集系统日志的,他不产生日志,只起到采集作用

rsyslog的管理

##/var/log目录下文件含义

名称 方法
服务信息日志 /var/log/message
系统登陆日志 /var/log/secure
定时任务日志 /var/log/cron
邮件日志 /var/log/maillog
系统启动日志 /var/log/boot.log

##日志采集规则

指定日志采集路径————/var/log/file(什么类型,什么级别的日志)

##日志的类型

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

##日志的级别分为

名称 说明
debug 有调式信息的,日志信息的最多
info 一般信息的日志,最常用
notice 最具有重要性的普通条件的信息
warning 警告级别
errr 错误级别,阻止某个功能或模块不能正常工作的信息
crit 严重级别,阻止整个系统或整个软件不能正常工作的信息
alert 需要立刻修改的信息
emerg 内核崩溃等严重信息
none 内核崩溃等严重信息

从上到下,级别从底到高,记录的信息越来越少
详细可查手册:man 3 rsyslog

##把系统中所有的日志采集到/var/logwestos中
修改/etc/rsyslog.conf中的文件
在rule下填写*.*  指向/var/log/westos  如下图所示
[root@westos_client Desktop]# vim /etc/rsyslog.conf
##修改后重启采集日志(rsyslog)服务
[root@westos_client Desktop]# systemctl restart rsyslog.service
##使系统生成新的日志
[root@westos_client Desktop]# systemctl restart sshd.service
##查看/var/log/westos中的sshd的日志
[root@westos_client Desktop]# cat /var/log/westos
Jul 20 22:18:16 westos_client rsyslogd: [origin software=“rsyslogd” swVersion=“7.4.7” x-pid=“2966” x-info=“http://www.rsyslog.com”] exiting on signal 15.
Jul 20 22:18:16 westos_client rsyslogd: [origin software=“rsyslogd” swVersion=“7.4.7” x-pid=“3073” x-info=“http://www.rsyslog.com”] start
Jul 20 22:18:16 westos_client rsyslogd-2307: warning: ~ action is deprecated, consider using the ‘stop’ statement instead [try http://www.rsyslog.com/e/2307 ]
Jul 20 22:18:16 westos_client systemd: Stopping System Logging Service…
Jul 20 22:18:16 westos_client systemd: Starting System Logging Service…
Jul 20 22:18:16 westos_client systemd: Started System Logging Service.
Jul 20 22:18:20 westos_client systemd: Stopping OpenSSH server daemon…
Jul 20 22:18:20 westos_client sshd[2987]: Received signal 15; terminating.
Jul 20 22:18:20 westos_client systemd: Starting OpenSSH server daemon…
Jul 20 22:18:20 westos_client systemd: Started OpenSSH server daemon.
Jul 20 22:18:20 westos_client sshd[3084]: Server listening on 0.0.0.0 port 22.
Jul 20 22:18:20 westos_client sshd[3084]: Server listening on :: port 22.
Linux系统之系统日志管理_第1张图片
Linux系统之系统日志管理_第2张图片

日志的远程同步

  在真机中开启两台虚拟机,其中一台命名为westos_cilent,用来做测试端(发送方),ip地址为172.25.254.108;另一台命名为westos_server,ip地址为172.25.254.208,用来作服务端(接受方)
##日志发送方,在该文件中写入*.*  @172.25.254.208,其中@表示udp协议发送,@@表示tcp协议发送
[root@westos_client Desktop]# vim /etc/rsyslog.conf
##然后重启服务
[root@westos_client Desktop]# systemctl restart rsyslog.server

##日志接受方,在该文件中
15行 $ModLoad imudp ##日志接受模块
16行 $UDPServerRun 514 ##开启接受端口
[root@westos_client Desktop]# vim /etc/rsyslog.conf
##然后重启服务
[root@westos_client Desktop]# systemctl restart rsyslog.server
##关闭火墙
[root@westos_client Desktop]# systemctl restart rsyslog systemctl stop firewalld

##进行测试:
在两端都清空日志文件
[root@westos_client Desktop]# > /var/log/messages
[root@westos_server Desktop]# > /var/log/messages
在发送端生成日志
[root@westos_client Desktop]# logger test
在接收端和发送端查看
[root@westos_client Desktop]# cat /var/log/messages
[root@westos_server Desktop]# cat /var/log/messages
##两边内容一样,同步成功
Linux系统之系统日志管理_第3张图片
发送方(westos_cilent)主机截图
Linux系统之系统日志管理_第4张图片
接收方(westos_server)主机截图
systemctl disable firewalld ##可以设定火墙开机关闭

##日志采集格式设定

在vim /etc/rsyslog.conf中可以添加修改内容进行日志采集格式设定
例如:$template  NAME,"%timegenerated%  %FROMHOST-IP%  %syslogtag%  %msg% \n"

名称 说明
%timegenerated% 显示日志时间
%timegenerated% 显示日志时间
%FROMHOST-IP% 显示主机ip
%syslogtag% 显示日志记录目标
%msg% 显示日志内容
\n \n

##在指定日志中采用NAME格式 ————.  /var/log/westos;NAME
Linux系统之系统日志管理_第5张图片
##修改系统默认日志格式为NAME
A c t i o n F i l e D e f a u l t T e m p l a t e R S Y S L O G T r a d i t i o n a l F i l e F o r m a t 修 改 为 为 ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat修改为为 ActionFileDefaultTemplateRSYSLOGTraditionalFileFormatActionFileDefaultTemplate NAME
Linux系统之系统日志管理_第6张图片
重启系统后在文件中的更改才能生效

时间同步服务——chronyd

修改/etc/chrony.conf中的数据可以进行时间同步的相关内容
在服务端(westos_server):使用 vim  /etc/chrony.conf
在文件22行左右 ##允许这些客户端来同步本机时间——allow 172.25.254.108/24
在文件29行左右 ##本机不同步任何主机时间,本机作为主机 —— local stratum 10
然后重启服务:systemctl restart chronyd
Linux系统之系统日志管理_第7张图片>在客户端(westos_client): vim /etc/chrony.conf
##本机立即同步208主机时间 ——server 172.25.254.208 iburst
Linux系统之系统日志管理_第8张图片>然后重启服务:systemctl restart chronyd
测试:在客户端输入chronyc source -v
出现以下内容,即为测试成功
Linux系统之系统日志管理_第9张图片

管理系统时间——timedatecal

名称 方法
显示当前时间信息 timedatecal status
设定当前时间 timedatecal set-time
设定当前时区 timedatecal set-timezomne
设定是否使用utc时间 set-local-rtc 0
查看支持的所有时区 list-timezones

##显示当前时间信息
[root@westos_client ~]# timedatectl status
Local time: Sun 2019-07-21 09:31:21 EDT
Universal time: Sun 2019-07-21 13:31:21 UTC
RTC time: Sun 2019-07-21 13:31:29
Timezone: America/New_York (EDT, -0400)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2019-03-10 01:59:59 EST
Sun 2019-03-10 03:00:00 EDT
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2019-11-03 01:59:59 EDT
Sun 2019-11-03 01:00:00 EST
##设定当前时间
[root@westos_client ~]# timedatectl set-time 13:00
设定当前时区
[root@westos_client ~]# timedatectl set-timezone Asia/Shanghai
[root@westos_client ~]# timedatectl
Local time: Mon 2019-07-22 01:00:14 CST
Universal time: Sun 2019-07-21 17:00:14 UTC
RTC time: Sun 2019-07-21 17:00:16
Timezone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a

Linux系统之系统日志管理_第10张图片

日志查看工具——journal

名称 方法
查看最近三条日志 journalctl  -n 3
查看错误日志 journalctl  -p err
查看日志的详细参数 journalctl  -o verbose
查看从什么时间开始的日志 journalctl   --since
查看从什么时间为止的日志 journalctl   – --until

##查看最近三条日志
[root@westos_client ~]# journalctl -n 3
– Logs begin at Sun 2019-07-21 08:59:45 CST, end at Mon 2019-07-22 01:10:01 CS
Jul 22 01:10:01 westos_client.westos.com systemd[1]: Starting Session 48 of use
Jul 22 01:10:01 westos_client.westos.com systemd[1]: Started Session 48 of user
Jul 22 01:10:01 westos_client.westos.com CROND[6777]: (root) CMD (/usr/lib64/sa
##查看错误日志
[root@westos_client ~]# journalctl -p err
– Logs begin at Sun 2019-07-21 08:59:45 CST, end at Mon 2019-07-22 01:10:01 CS
Jul 21 08:59:45 localhost kernel: Failed to access perfctr msr (MSR c1 is 0)
Jul 21 08:59:47 localhost rpcbind[169]: rpcbind terminating on signal. Restart
Jul 21 08:59:58 westos_client.westos.com smartd[507]: Problem creating device n
Jul 21 08:59:58 westos_client.westos.com smartd[507]: In the system’s table of
Jul 21 09:00:07 westos_client.westos.com systemd[1]: Failed to start LSB: Start
Jul 21 09:00:07 westos_client.westos.com systemd[1]: Failed to start /etc/rc.d/
Jul 21 09:00:07 westos_client.westos.com rpcbind[1254]: Cannot open '/var/lib/r
Jul 21 09:00:07 westos_client.westos.com rpcbind[1254]: Cannot open '/var/lib/r
Jul 21 09:00:10 westos_client.westos.com libvirtd[1158]: libvirt version: 1.1.1
Jul 21 09:00:10 westos_client.westos.com libvirtd[1158]: Module /usr/lib64/libv
Jul 21 09:00:33 westos_client.westos.com bluetoothd[1816]: Parsing /etc/bluetoo
Jul 21 10:10:02 westos_client.westos.com systemd[1]: Failed to mark scope sessi
##查看日志的详细参数
[root@westos_client ~]# journalctl -o verbose
– Logs begin at Sun 2019-07-21 08:59:45 CST, end at Mon 2019-07-22 01:10:01 CS
Sun 2019-07-21 08:59:45.651453 CST [s=e42a391092aa4c4d96b1e22b51ab7c16;i=1;b=5a
PRIORITY=6
_TRANSPORT=driver
MESSAGE=Runtime journal is using 5.9M (max 47.3M, leaving 71.0M of free 467
MESSAGE_ID=ec387f577b844b8fa948f33cad9a75e6
_PID=81
_UID=0
_GID=0
_COMM=systemd-journal
_EXE=/usr/lib/systemd/systemd-journald
_CMDLINE=/usr/lib/systemd/systemd-journald
_CAP_EFFECTIVE=4402800cf
_SYSTEMD_CGROUP=/system.slice/systemd-journald.service
_SYSTEMD_UNIT=systemd-journald.service
_SYSTEMD_SLICE=system.slice
_SELINUX_CONTEXT=kernel
_BOOT_ID=5aa5861c1cad4c4d8dbe625df1789745
_MACHINE_ID=81343f9ea5964f1db7274f00e1291c46
_HOSTNAME=localhost
Sun 2019-07-21 08:59:45.657866 CST [s=e42a391092aa4c4d96b1e22b51ab7c16;i=2;b=5a
PRIORITY=6
_TRANSPORT=driver
##查看从14:53开始的日志
[root@westos_client ~]# journalctl --since 14:53
– Logs begin at Sun 2019-07-21 08:59:45 CST, end at Mon 2019-07-22 01:10:01 CS
##查看到14:52截至的日志
[root@westos_client ~]# journalctl --since 14:52
– Logs begin at Sun 2019-07-21 08:59:45 CST, end at Mon 2019-07-22 01:10:01 CS

##保存日志

  因为日志默认是保存在内存中的,所以每次开关机都这能查看开机之后的日志,上次的日志会自动被释放。我们想要看开机之前的日志只能将其保存在硬盘中,在调取查看。
在硬盘中建立一个存放日志的目录
[root@westos_client ~]# mkdir /var/log/journal
该目录所有组属于系统用户systemd-journal
[root@westos_client ~]# chgrp systemd-journal /var/log/journal/
该目录下创建的所有文件的组都和目录所属组相同,为systemd-journal
[root@westos_client ~]# chmod g+s /var/log/journal/
不关机重新启动systemd-journald
[root@westos_client ~]# killall -1 systemd-journald
查看 /var/log/journal/中内容
[root@westos_client ~]# ls /var/log/journal/
946cb0e817ea4adb916183df8c4fc817
Linux系统之系统日志管理_第11张图片

你可能感兴趣的:(linux)