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 查看支持的所有时区