一、rsyslog服务
此服务只是用来采集日志的,它不会产生日志,只是起到把日志采集到一起的作用。
二、rsyslog服务的管理
vim /etc/rsyslog.conf ##系统的日志配置文件
示例:
什么类型的日志.什么级别的日志 保存文件的绝对路径 ##日志采集规则
authpriv.info /var/log/file ##把ssh,ftp登录信息的一般信息日志保存在/var/log/file文件里
接下来重启系统日志配置文件,让更改生效:
systemctl restart rsyslog.service ##重启系统日志配置
测试:
用另一台主机通过ssh远程登录系统,查看/var/log/file文件。
可以看到ssh的一般信息文件都保存在了/var/log/file文件中。
###日志类型分为:
auth ##pam产生的日志
authpriv ##ssh验证信息
cron ##时间任务相关
kern f ##内核
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
三、日志的远程同步
在我们的工作中,管理人员会需要在公司或者家里查看远在千里之外的服务器情况,那怎么才能实现呢?接下来,告诉你!
首先确定服务机,也就是日志发送方。
vim /etc/rsyslog.conf
在文件中写入,你需要将什么类型的什么级别的日志发送到哪一台主机去。
man 5 rsyslog.conf ##查看文件的帮助文档
分析:通过帮助文档,我们可以看到UDP远程同步日志的书写格式为:
*.* @192.168.0.1 ##把任意类型的任意级别日志,发送到ip192.168.0.1的主机。
TCP远程同步日志的格式为:
*.* @@192.168.0.1 ##把任意类型的任意级别日志,发送到ip192.168.0.1的主机。
RELP格式类似。
接下来,重启rsyslog服务
systemctl restart rsyslog
在客户机,也就是日志接受方:
vim /etc/rsyslog.conf
打开15,16行的UDP接受模块:
15 $ModLoad imudp
16 $UDPServerRun 514
接下来:重启rsyslog服务,关闭接受方防火墙
systemctl restart rsyslog ##重启rsyslog服务
systemctl stop firewalld ##关闭防火墙
systemctl disable firewalld ##设置防火墙开机不启动
示例:
在本例中我们采用UDP格式远程同步日志
日志发送方:
vim /etc/rsyslog.conf
将任意类型的任意级别日志,发送到ip为172.25.254.18的主机。
systemctl restart rsyslog ##重启服务
日志接受方:
vim /etc/rsyslog.conf
打开接受UDP日志文件的模块。
systemctl restart rsyslog ##重启服务
systemctl stop firewalld ##关闭防火墙
systemctl disable firewalld ##设置防火墙开机不启动
测试:
在测试前,清空两个主机的/var/log/messages文件,方便实验结果的查看。
> /var/log/messages
发送方:
> /var/log/messages ##清空messages日志文件
logger hahaha ##产生测试日志信息hahaha
cat /var/log/messages ##查看日志
从图可以看到,发送方已经产生了hahaha日志信息
接受方:
> /var/log/messages ##清空messages日志文件
>cat /var/log/messages ##查看日志
图中可以看到,发送方的日志同步到了接收方的messages文件中。
四、日志采集格式的设定
更改配置文件rsyslog.conf
vim /etc/rsyslog.conf
添加:
$template RULES,"%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n"
显示主机ip 显示日志时间 日志记录目标 日志内容 换行
结果:
五、时间同步服务
服务名称chronyd
在服务端
vim /etc/chrony.conf
更改以下内容:
allow 172.25.254.18/24 ##允许哪些客户端来同步本机时间
local stratum 10 ##本机不同步任何主机时间,本机作为时间源
systemctl restart chronyd ##重启服务
systemctl stop firewalld ##关闭防火墙
timedatectl set-timezone Asia/Shanghai ##更改当前时区为东8区
在客户端:
vim /etc/chrony.conf
server 172.25.254.233 iburst ##本机立即同步233主机时间
systemctl restart chronyd
systemctl stop firewalld
timedatectl set-timezone Asia/Shanghai ##更改当前时区为东8区
测试:
客户端
chronyc sources -v
表示:会同步172.25.254.28主机的时间
服务端更改时间:
客户端时间查看时间:
六、timedatectl命令
timedatectl ##管理系统时间
timedatectl status ##显示当前时间信息
set-time ##设定当前时间
set-timezone ##设定当前时区
set-local-rtc 0|1 ##设定是否使用utc时间
list-timezones ##查看支持的所有时区
示例:
timedatectl status
timedatectl set-time "2019-1-15 11:24:00"
timedatectl list-timezones
[root@server_sshd ~]# timedatectl status
Local time: Tue 2019-11-12 00:33:24 CST ##本地时间=伦敦时间+时区
Universal time: Mon 2019-11-11 16:33:24 UTC ##世界协调时间:伦敦时间
RTC time: Tue 2019-01-15 03:22:07 ##主板时间
Timezone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
七、journal
1、journalctl
1.journalctl ##日志查看工具
-n 3 ##查看最近3条日志
-p err ##查看错误日志
-o verbose ##查看日志详细参数
--since ##查看从什么时间开始的日志
--until ##查看到什么时间为止的日志
journalctl -n 3
journalctl -p err
journalctl --since 11:20 --until 11:31
分析:查看11:20之后,11:31分之前的日志信息
2、如何使用systemd-journald保存系统日志
默认systemd-journald是不能保存到系统日志到硬盘的,那么关机后再次开机只能看到本次开机后的日志,上次关机之前的日志是无法查看到的。
那么,怎么解决这个问题呢?
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal
killall -1 systemd-journald
分析:重启前的时间是22:28:56,重启后用journalctl查看日志,如果有22:28:56之前的日志,则说明systemd-journald保存到系统日志到硬盘了。