运维笔记11(linux系统日志rsyslogd,采集日志分类存放服务journalctld,时间同步服务chronyd)

概述:系统日志的分类,负责采集日志和分类存放的服务rsyslog,负责收集并存储各类日志数据的系统服务systemd-journald。

1.日志服务rsyslog

熟悉rhel5或者一些老版本系统的同学一定知道syslog是系统的日志服务,这次介绍的是rsyslog是syslog的多线程增强版,现在Fedora、Ubuntu,、rhel6、centos6默认的日志系统都是rsyslog了。rsyslog主要用来收集系统产生的各种日志,日志默认放在/var/log/目录下。


配置文件定义格式为:facility.priority action
facility 可以理解为日志的来源或设备目前常用的facility有以下几种:
auth #认证相关
authpriv #权限,授权相关
cron #任务计划相关
daemon #守护进程相关的
kern #内核相关
lpr #打印相关

mail #邮件相关

mark #标记相关

news #新闻相关

security #安全相关,与auth类似

rsyslog #syslog自己的

user #用户相关

uucp #unix to unix cp 相关的

local0到local7 #用户自定义使用

* #表示所有的facility


priority(log level)日志的级别,一般有以下几种级别(从低到高)
debug #程序或系统的调试信息
info #一般细腻些
notice #不影响正常功能,需要注意的消息
warning/warn #可能影响系统的功能,需要提示用户的重要事件
err/error #错误信息
crit #比较严重
alert #必须马上处理的
emerg/oanic #会导致系统不可用的
* #表示所有的日志级别
none #跟*相反,表示啥也没有


action(动作)日志记录的位置
系统上的绝对路径 #普通文件 如: /var/log/xxx
| #管道 通过管道送给其他命令处理
终端 #终端 如:/dev/console
$HOST #远程主机 如:@10.0.0.1
用户 #系统用户 如root
* #登陆到系统上的所有用户,一般emerg级别的日志是这样定义的


定义格式例子:
mail.info /var/log/mail.log #表示将mail相关的,级别为info及info以上级别的信息记录到/var/log/mail.log文件中
auth.=info @10.0.0.1 #表示将auth相关的,info的信息记录到10.0.0.1主机上去。
user.!=error #表示记录user相关的,不包括error级别的信息
user.!error #与user.error相反,比error低的所有信息(不包括error)
*.info #所有日志信息的info级别和以上级别
mail.* #mail的所有级别信息
*.* #所有日志所有级别
cron.info;mail.info #用“;”可将多个日志来源隔开
cron,mail.info #等价于上一条
mail.*;mail.!=info #记录mail相关的日志,级别上除了info级别。



日志同步的例子:将一台主机上的认证相关日志同步到另一台主机上,发送日志为client,接收日志为server

当然前提一定要关闭防火墙

client端:

auth.*                                                  @192.168.1.171
auth.* 代表发送auth设备的信息,一切级别 @表示用udp发送,@@表示用tcp发送


service端:

# Provides UDP syslog reception
$ModLoad imudp				#加载udp插件,曾经红帽5或者6使用的是/etc/sysconfig/syslog 中的dprecated -r 参数,现在用这个代替了。
#这个代替了
$UDPServerRun 514			#启用udp


日志文件的滚动

滚动的意思就是每过一定时间,就会将存储日志的文件换一个,比如原来是messages,滚动一次,就将messages存到messages.1,再用messages存储。

这些在/etc/logrocate.conf下保存着。

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4		#保存几个版本

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
这里规定了一些关于日志滚动的细节。
/etc/logrotate.d里面放置的是一些自己规定的服务的滚动机制。 2.日志采集服务journalctld

systemcd-journald #进程名称

systemcd-journald #进程名称
journalctl #直接执行,浏览系统日志
-n 3 #显示最新3条
-p err #显示报错
-f #监控日志
--since --until #--since “[YYYY-MM-DD] [hh:mm:ss]” --until "[]" --until的格式与上相同,从什么时间开始到什么时间结束
-o verbose #显示日志能够使用的详细进程参数,_SYSTEMD_UNIT=sshd.service服务名称,_PID=1182进程pid


systemd-journald管理
系统默认的情况下如果系统重启就会忽略掉重启前的日志信息(这些信息是journalctl抓取的),我们可以创建一个目录,让他把日志文件存放在那里。这样就算重启后也后保留之前的日志文件。
mkdir /var/log/journal
chown root:190(systemd-journald) /var/log/journal
killall -1 systemd-journald

这个服务的配置文件是

/etc/systemd/journald.conf


3.时间同步服务chronyd

两台服务器日志同步时,如果时间不同步会有很多问题,比如转账日志等,接下来先简单介绍下系统的时间。

通过timedatectl查看

[root@2+2 ~]# timedatectl
      Local time: 一 2016-10-24 21:36:50 CST
  Universal time: 一 2016-10-24 13:36:50 UTC
        RTC time: 一 2016-10-24 13:36:49
        Timezone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a
可以看到有Local time,Universal time RTC time,时区,时间同步服务是否打开,时间是否同步,RTC时间是否在本地时区等。

set-time #设定当前时间,格式为"2012-10-30 18:17:16"
set-timezone #设定当前时区
set-local-rtc 0|1 #设定是否使用UTC时间
##其中rtc时间代表硬件时间,当位0时候,硬件时间与UTC时间一致,当为1的时候,硬件时间与当地时间同步。

UTC时间是协调世界时(英:Coordinated Universal Time ,法:Temps Universel Coordonné),又称世界统一时间,世界标准时间,国际协调时间。

首先安装chronyd

yum install chronyd

systemctl start chronyd

systemctl enable chronyd

确定火墙关闭

vim /etc/chronyd.conf

server:

# Allow NTP client access from local network.
allow 192.168.1.0/24
#以该服务器为时间同步服务器的网段

# Serve time even if not synchronized to any NTP server.
local stratum 10 #级别,数字越大级别越低

client:

server 192.168.1.201 iburst #iburst的意思是立即同步


设置好后可以通过

chronyc sources -v 查看是否同步成功

[root@2+2 ~]# chronyc sources -v
210 Number of sources = 0

  .-- 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
===============================================================================
同步成功客户端会显示^*服务端同步成功。


你可能感兴趣的:(学习总结,运维学习)