Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)


 Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等


1.日志服务:所谓日志就是对系统程序的状况进行观测的记录,我们可以通过查看日志来对计算机系统的“健康状况”进行监测,即是预防或者修正系统中出现的问题。

      

(1).日志的生成方式:日志在内存中,rsyslog服务将日志从内存中采集到硬盘中并保存

                                   由各个进程生成日志,一个程序采集日志(rsyslog.service)

                                   日志的主配置文件/ect/rsyslog.conf(可用来定义日志生成的具体格式)

(2).日志采集规则(配置文件/etc/rsyslog.conf)

执行vim/etc/rsyslog.conf,可看到如下,规定了日志生成以及观测的规则。

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

格式如下

                                       .         *               文件名称
分别对应:“*”:日志类型.     “*”:日志级别   存放日志的文件

I.日志类型
auth          用户登陆日志(pam程序产生日志)
authpriv     服务认证日志(sshd认证)
kern          内核日志
cron          定时任务日志
lpr             打印机日志
mail           邮件日志
news         新闻
user          用户相关程序日志
local 1-7    用户自定义日志
II.日志级别
debug        系统调试信息
info            常规信息
warning      警告信息
err             报错(级别低,阻止了某个功能的正常工作)
crit             报错(级别高,阻止整个软件或整个系统致使其不能正常工作)
alert           需要立即修改信息
emerg        内核崩溃
none          不采集任何日志信息

例:

 *.info;mail.none;authpriv.none;cron.none                /var/log/messages (除了邮件,认证服务,定时任务外的其他系统服务的日志都存放在/var/log/messages中)

可以通过"cat"指令来查看日志,还可以通过">"符号来清空日志信息。

查看:cat /var/log/messages

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

清空:>/var/log/messages;再执行cat /var/log/messages

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

附上系统常用日志存放位置:
/var/log/messages            所有日志级别的常规信息(不包含邮件,服务认证,定时任务)
/var/log/maillog                 邮件日志
/var/log/secure                 服务认证日志
/var/log/corn                    定时任务日志

III.配置日志格式:$template

在/etc/rsyslog.conf 下进行对日志配置信息的进行修改(让程序按系统要求的方式进行运行)

       注:配置文件是系统和程序进行交流的途径,即系统通过配置文件对程序进行一定规则方式的运行

       修改配置文件后务必重启服务

vim /etc/rsyslog.conf

编辑如下:

    $template + 格式名称,“日志采集格式”
*.info;mail.none;authpriv.none;cron.none          /var/log/messages;格式名称
%timegenerated%                      日志生成时间
%FROMHOST-IP%                    日志来源主机的IP
%syslogtag%                             日志生成来源程序
%msg%                                     日志内容
\n                                               换行

例子:

$template test,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
*.info;mail.none;authpriv.none;cron.none          /var/log/messages;test

运行示例:

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

cat /usr/log/mesages后

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

                    

                    注:可通过man rsyslog.conf来了解日志修改格式。

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)



(3)日志的远程同步:对多个主机的日志进行管理

作为系统管理员。往往会遇到对不止一个主机的状况进行监控,一个一个的去看未免太过繁琐,这时候就可以将各个主机的日志同不到一个服务器中,进行观测。

具体操作如下:

发送端:对发送端主机的rsyslog服务进行配置

/vim/etc/rsyslog.conf
*.*                    @IP              将日志发送到指定主机中
systemctl restart rsyslog      重启服务

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)


接收端对接收端主机的rsyslog服务进行配置。

15 $Mdoload imudp                    接受传输 

16 $UDPServerRun 514             通过514接口进行传输

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

systemctl restart rsyslog
systemctl stop firewalld         关闭防火墙      对防火墙进行关闭,否则将无法接收同步过来的日志
systemctl disable firewalld    开机不自动开启防火墙

并在接收方定义日志采集格式,方便观测,具体如上述配置日志格式:   $template + 格式名称,“日志采集格式”

示例如下:

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

重启服务后,在接收端查看日志。

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)


(4)实时日志监控指令 journalctl       注:企业7之后才有此命令

journalctl                    对日志进行查看,直接查看内存中的日志,只能对本机日志进行监控,不能同步其他主机日志,关机或重启服务后消失
journalctl     -n3              观测最新三行日志
journalctl     -p err          对错误进行观测,(-p 后加指定的信息,)
journalctl     -f                          默认显示十行。随着匹配日志的增长而持续输出。只显示错误、冲突和重要告警信息
journalctl     --since time --until time        监控指定时间段
journalctl     -o verbose             查看日志详细参数 _PID=NUM      
journalctl _PID=NUM

由于journalctl指令是对内存中的日志进行观测,在重启机器后会消失,当想要保存有用的日志时,就需要如下指令了
执行如下指令:
mkdir /var/log/journal                                 建立目录
chgrop systemd-journal /var/log/journal    修改目录所有组
chmod g+s /var/log/journal                        修改权限
killall -1 systemd-journald                        重新启动服务

验证是否保存
journalctl -n 3
date
reboot

journalctl 

注:建立文件后的直至将会被保存到硬盘中,重新启动后也存在。

示例如下:

建立文件后

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

重启后:

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

可看到日志被保存下来。



2.进行时间同步           

在进行日志同步时,两个主机时间如果不一致,将会导致判断错误等诸多问题,此时就需要对不同主机的系统时间进行同步了。

(1)重新设定时间     timedatectl set-time "xx:xx:xx"

   timedatectl list-timezones                              列出时区列表
   timedatectl set-timezone Asia/Shanghai       设置成上海时间  
   timedatectl                                                    列出详细信息
       Local time: Sat 2018-04-14 16:05:17 CST
       Universal time: Sat 2018-04-14 08:05:17 UTC
       RTC time: Sat 2018-04-14 08:05:16
       Timezone: Asia/Shanghai (CST, +0800)
       NTP enabled: yes
       NTP synchronized: yes
       RTC in local TZ: no
       DST active: n/a
   date
   Sat Apr 14 16:05:23 CST 2018
   timedatectl set-local-rtc 0      使用UTC时间    注:所谓UTC时间就是世界标准时间
    date
   Sat Apr 14 16:05:46 CST 2018
   vim /etc/adjtime                    查看使用的时间
   timedatectl set-local-rtc 1     使用本地时间

(2)在服务器端共享时间

对时间同步的配置文件进行修改

         vim /etc/chrony.conf
第29行 local stratum 10                 开启时间共享功能并设定共享级别,
                                                       开启此参数后本机不回去同步别机时间到本机
第22行 allow 172.25.151.0/24       允许此网段的主机进行时间同步(具体网段根据具体情况而定)

systemctl restart chronyd.service  重启服务

关闭时间服务器防火墙。

在客户端:
vim /etc/chrony.conf
server 服务端IP iburst
systemctl restart chronyd.service
chronyc sources -v                         检测是否同步成功

示例如下:

在服务器端:

修改配置文件

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

重启服务,关闭防火墙

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

在客户端:

编辑配置文件

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)

重启服务,验证同步结果

Linux菜鸟成长日记(Linux系统管理日志,时间管理。rsyslog,journalctl,chrony,timedatectl等)