linux的系统日志

1.系统日志默认分类

/var/log/messages            系统服务及日志,包括服务的信息,报错等等
/var/log/secure                  系统认证信息日志
/var/log/maillog                 系统邮件服务信息
/var/log/cron                      系统定时任务信息
/var/log/boot.log               系统启动信息

2.日志管理服务rsyslog

(1)rsyslog负责采集日志和分类存放日志

(2)rsyslog日志分类

vim /etc/rsyslog.conf              主配置文件

服务,日志级别                          /存放文件

*.*            /var/log/westos

*.*;authpriv.none    /var/log/westos

systemctl restart rsyslog


格式

日志设备(类型).(连接符号)日志级别  日志处理方式(action)

日志设备(可以理解为日志类型)

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                 警告级别
err                          错误级别,阻止某个功能或者模块不能正常工作的信息
crit                         严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert                       需要立刻修改的信息
emerg                   内核崩溃等严重信息
none                    什么都不记录
注意:从上到下,级别从低到高,记录的信息越来越少
详细的可以查看手册: man 3 syslog

连接符号

.xxx: 表示大于等于xxx级别的信息
.=xxx:表示等于xxx级别的信息
.!xxx:表示在xxx之外的等级的信息

实例

(1)记录到普通文件或设备文件

*.*     /var/log/file.log       # 绝对路径

*.*     /dev/pts/0

测试: logger -p local3.info ‘KadeFor is testing the rsyslog and logger ‘   logger 命令用于产生日志


(2)发送给用户(需要在线才能收到)

*.*   root

*.*   root,kadefor,up01             使用,号分隔多个用户

*.*   *                                            *号表示所有在线用户

(3)忽略,丢弃

local3.*   ~                忽略所有local3类型的所有级别的日志

(4)执行脚本

local3.*    ^/tmp/a.sh           ^号后跟可执行脚本或程序的绝对路径

                                               日志内容可以作为脚本的第一个参数.

                                               可用来触发报警

日志同步

systemctl  stop  firewalld                                       关闭两台主机的火墙

配置日志发送方

*.*             @172.25.0.11               通过udp协议把日志发送到11主机,@udp,@@tcp

配置日志接受方

15 $ModLoad imudp                 日志接收插件

16 $UDPServerRun 514           日志接收插件使用端口

netstat -anulpe | grep rsyslog

udp        0      0 0.0.0.0:514             0.0.0.0:*                           0          122073     32654/rsyslogd     

udp6       0      0 :::514                  :::*                                0          122074     32654/rsyslogd     

-a                      all

-n                     不做解析

-t                      tcp

-u                     udp

-p                    进程名称

-e                    扩展信息

测试

> /var/log/messages            两边都作

logger test message           日志发送方

tail -f /var/log/message       日志接收方

日志采集格式

$template WESTOS, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated%             显示日志时间%FROMHOST-IP%             显示主机ip
%syslogtag%                     日志记录目标
%msg%                               日志内容
\n                                            换行
$ActionfileDefaultTemplate WESTOS
*.info;mail.none;authpriv.none;cron.none                /var/log/messages;<<WESTOS>>

3.日志分析工具journal

systemd-journald                           进程名称
journalctl                                          直接执行,浏览系统日志

-n 3                                                    显示最新3条 
             
-p err                                                 显示报错

-f                                                        监控日志

--since --until                     --since "[YYYY-MM-DD] [hh:mm:ss]" 从什么时间到什么时间的日志
-o verbose                                      显示日志能够使用的详细进程参数
                                  _SYSTEMD_UNIT=sshd.service服务名称
                                 _PID=1182进程pid

对systemd-journald管理
默认情况下此程序会忽略重启前的日志信息,如不忽略:
mkdir /var/log/journal
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal
killall -1 systemd-journald
ls /var/log/journal/4513ad59a3b442ffa4b7ea88343fa55f
system.journal user-1000.journal

4.时间同步

(1)服务端

yum install chrony -y                  安装服务

vim /etc/chrony.conf                  主配置文件

21 # Allow NTP client access from local network.

22 allow 172.25.0.0/24            允许谁去同步我的时间

27 # Serve time even if not synchronized to any NTP server.

28 local stratum 10                   不去同步任何人的时间,时间同步服务器级别


systemctl restart chronyd

systemctl stop firewalld


(2)客户端

vim /etc/chrony.conf

  3 server 0.rhel.pool.ntp.org iburst

  4 server 1.rhel.pool.ntp.org iburst====> server ntpserverip iburst

  5 server 2.rhel.pool.ntp.org iburst====>

  6 server 3.rhel.pool.ntp.org iburst


systemctl restart chronyd


测试:

[root@localhost ~]# 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

||                                                /   xxxx = adjusted offset,

||         Log2(Polling interval) -.             |    yyyy = measured offset,

||                                  \            |    zzzz = estimated error.

||                                   |           |                        

MS Name/IP address         Stratum Poll Reach LastRx Last sample

===============================================================================

^* 172.25.0.11                  10   6   377    41   +170us[ +201us] +/-  191us


5.timedatectl命令

timedatectl        status                显示当前时间信息

            set-time                              设定当前时间

            set-timezone                    设定当前时区

            set-local-rtc 0|1                设定是否使用utc时间


                     list-timezone          查看支持的所有时区

猜你喜欢

转载自blog.csdn.net/qq_41880412/article/details/79891802