系统日志管理
1. 系统日志
系统日志是记录系统中硬件, 软件和系统问题的信息, 同时还可以监视系统中发生的事件. 用户可以通过它来检查错误发生的原因, 或者寻找受到 ××× 时 ××× 者留下的痕迹. 系统日志包括系统日志, 应用程序日志和安全日志.
2. 系统日志默认分类
/var/log/messages 系统服务的日志, 包括服务的信息, 报错等等
/var/log/secure 系统登陆认证信息日志
/var/log/maillog 系统邮件服务信息日志
/var/log/cron 系统定时任务信息日志
/var/log/boot.log 系统启动信息日志
3. 系统日志采集
1. 日志管理服务 rsyslog
rsyslog 负责采集日志和分类存放日志, 并不产生日志
2. 采集日志的文件配置
vim /etc/rsyslog.conf ------------>主配置文件
*.*/var/log/westos
服务. 日志级别 存放文件
配置时写入格式
日志设备 (类型).(连接符号) 日志级别 日志处理方式(action)
如 *.* 表示采集所有系统日志
(1)日志设备(类型)
auth pam 产生的日志
authpriv ssh,ftp 等登录信息的验证信息
cron 时间任务相关
kern 内核
lpr 打印
mail 邮件
mark(syslog)-rsyslog 服务内部的信息, 时间标识
news 新闻组
user 用户程序产生的相关信息
uucp unix to unix copy, unix 主机之间相关的通讯
local 1~7 自定义的日志设备
(2)连接符
.xxx 表示大于等于 xxx 级别的信息
.=xxx 表示等于 xxx 级别的信息
.!xxx 表示在 xxx 之外的等级的信息
(3)日志级别
debug 有调式信息的, 日志信息最多
info 一般信息的日志, 最常用
notice 最具有重要性的普通条件的信息
warning 警告级别
err 错误级别, 阻止某个功能或者模块不能正常工作的信息
crit 严重级别, 阻止整个系统或者整个软件不能正常工作的信息
alert 需要立刻修改的信息
emerg 内核崩溃等严重信息
none 什么都不记录
ps: 从上到下, 级别从低到高, 记录的信息越来越少
详细的可以查看手册: man 3 syslog
(3)采集日志存放目录
可以自定义目录, 不过一般放在 / var/log / 底下.
! 自定义采集的每条日志的格式!
在日志接收方编辑文件: vim /etc/rsyslog.conf
在文件的第 46 行 ####RULES#### 后换行写入:
$template LOGFMT, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
格式 格式命名 :(冒号) "具体格式"
%timegenerated% 显示日志时间
%FROMHOST-IP% 显示主机 ip
%syslogtag% 日志记录目标
%msg% 日志内容
\n 换行
例如:
*.*/var/log/westos;LOGFMT
配置完成以后重启服务
systemctl restart rsyslog
2. 日志的远程同步
1. 关闭日志发送方和接收方的防火墙
systemctl stop firewalld 关闭两台主机的火墙
systemctl disable firewalld 设置开机不启动
2. 配置日志发送方
编辑文件: vim /etc/rsyslog.conf
*.* @172.25.254.157 ---------->通过 udp 协议把日志发送到 157 主机
ps:@ 一个 @表示使用 udp 协议发送
@@ 两个 @表示使用 tcp 协议发送
systemctl restart rsyslog 重启日志服务
3. 配置日志接收方
编辑文件: vim /etc/rsyslog.conf
在第 15,16 行
$ModLoad imudp 志接收模块(插件)
$UDPServerRun 514 开启日志接收插件使用端口
重启日志服务: systemctl restart rsyslog
4. 测试
> /var/log/messages 两边都作清空日志记录
logger test message 日志发送方产生测试日志(ogger 命令后跟字符常用来测试日志是否被记录)
tail -f /var/log/messages 查看接收端日志文件 messages 后 10 行(看是否存在刚刚写入的测试日志)
3. 时间同步服务
服务名称: chronyd
1. 服务端(共享时间同步给其他主机的一端)
yum install chrony -y 安装服务(安装系统时已经安装, 如果没有此服务再按照命令安装)
同步时间需要关闭防火墙: systemctl stop firewalld
编辑文件: vim /etc/chrony.conf
在第 21~30 行
# Allow NTP client access from local network.
allow 172.25.254.0/24 ------------>允许谁去同步我的时间(此处允许 ip 前三位一样的主机)
# Serve time even if not synchronized to any NTP server.
ocal stratum 10 ------------>本机不去同步任何人的时间, 本机作为时间源.
重启服务: systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai 更改时区(当时区一致时无需更改)
2. 客户端
关闭防火墙: systemctl stop firewalld
编辑文件 vim /etc/chrony.conf
按照第 3~8 行的格式写下同步时间的主机的 ip:
- server 0.rhel.pool.ntp.org iburst
- server 1.rhel.pool.ntp.org iburst
- server 2.rhel.pool.ntp.org iburst
- server 3.rhel.pool.ntp.org iburst
例如: 直接将其改成: server 172.25.250.200 iburst ---------->本机去同步此 IP 主机的时间
重启服务: systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai 更改时区(当时区一致时无需更改)
3. 测试
chronyc sources -v ---------->使时间同步
"^": 表是服务端
"*": 表示已经同步完成
4.journal
jounalctl 查看所有系统日志
-n 3 查看最近三条日志
-p err 查看错误日志
-o verbose 查看日志的详细参数
--since "开始时间" --until "截止日期"
如何使用 systemd-journald 保存系统日志
此程序是默认将日志写到内存中的, 并不会写道硬盘. 开机后无法查看到上次的系统日志. 而 rsyslog 是采集日志.
1. 建立文件:
mkdir /var/log/journal
2. 改变所有组:
chgrp systemd-journal /var/log/journal
3. 使产生的新文件所有组也是 systemd-journald
chmod g+s /var/log/journal
4. 重启 system-journal:
kill -1 systemd-journald
在 journal 下产生文件 946cb0e817...8c4fc817, 在里面的文件是数据类型, 不能直接打开查看, 用 journalctl 查看
5.timedatectl 命令
timedatectl status 显示当前时间信息
set-time "xxxx-xx-xx xx:xx:xx" 设定当前时间
set-timezone 时区 设定当前时区
set-local-rtc 0|1 设定是否使用 utc 时间(0 启动 utc 时间, 1 启动本地时间)
timedatectl set-timezone Asia/Shanghai 同步时间为 CST 时区
Linux(RadHat)基础学习 - 系统日志管理
来源: http://www.bubuko.com/infodetail-2703169.html