1.rsyslog
rsyslog ##此服务是用来采集系统日志的,他不产生日志,只是采集日志
2.rsyslog的管理
指定日志采集路径写入/etc/rsyslog.conf
/var/log/messages ##信息服务日志
/var/log/secure ##系统登陆日志
/var/log/cron ##定时任务日志
/var/log/maillog ##邮件日志
/var/log/boot.log ##系统启动日志
格式:
什么类型的日志.什么级别的日志 /var/log/file
日志类型分为:
类型名称 | 代表类型 |
---|---|
auth | ##pam产生的日志 |
authpriv | ##ssh,ftp等登陆信息的验证信息 |
cron | ##时间任务相关 |
kern | ##内核 |
lpr | ##打印 |
##邮件 | |
mark(syslog)-rsyslog | ##服务内部的信息,时间标示 |
news | ##新闻组 |
user | ##用户程序产生的相关信息 |
uucp | ##unix to unix copy,unix主机之间相关的通讯 |
local 1~7 | ##自定义的日志设备 |
日志级别分为
级别名称 | 代表级别 |
---|---|
debug | ##有调式信息的,日志信息最多 |
info | ##一般信息的日志,最常用 |
notice | ##最具有重要性的普通条件信息 |
warning | ##警告级别 |
err | ##错误级别,阻止某个功能或者模块不能正常工作的信息 |
crit | ##严重级别,组织整个系统或者整个软件不能正常工作的信息 |
alert | ##需要立刻修改的信息 |
emery | ##内核崩溃等严重信息 |
none | ##什么都不记录 |
##注意:从上到下,级别从低到高,记录的信息越来越少
##详细的可以查看手册:man 3 syslog
示例:
将所有类型的所有级别日志存入/var/log/test
退出保存后需要重启服务
systemctl restart rsyslog.service
3.日志的远程同步
在日志发送方:
vim /etc/rsyslog.conf
*.* @ip ##"@"表示udp协议发送,“@@”表示tcp协议发送
systemctl retart rsyslog
在日志接受方:
vim /etc/rsyslog.conf
15 #$ModLoad imudp ##日志接受模块
16 #$UDPServerRun 514 ##开启接收端
systemctl restart rsyslog.service
systemctl stop firewalld ##关闭火墙
systemctl disable firewalld ##设定火墙开机关闭
测试::
在发送方和接受方都清空日志文件
> /var/log/messages
在日志发送方
logger test
cat /var/log/messages ##查看日志已生成
在日志接受方查看
cat /var/log/messages
日志采集格式的设定
vim /etc/rsyslog.conf
47 template TEST, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated% ##显示日志时间
%FROMHOST-IP% ##显示主机ip
%syslogtag% ##日志记录内容
%msg%\n" ##日志内容
\n ##换行
54 *.info;mail.none;authpriv.none;cron.none /var/log/messages;TEST
cat /var/log/test
时间同步服务
服务名称
chronyd
在服务端:
vim /etc/chrony.conf
22 allow 172.25.254/24 ##允许哪些客户端同步本机时间
29 local stratum 10 ##本纪不同步任何主机的时间,本机作为时间源
systemctl restart chronyd
timedatectl set-timezone Asia/Shanghai ##更改当前时区为东8区
在客户端
vim /etc/chrony.conf
server 172.25.254.232 iburst ##本机立即同步232主机的时间
systemctl restart chronyd
timedatectl set-timezone “Asia/Shanghai” ##更改当前时区为东8区
测试
在客户端
[root@client_ssh ~]# 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.254.232 10 6 17 53 +775ns[+3000ns] +/- 138us
timedatectl命令
timedatectl ##管理系统时间
timedatectl status ##显示当前时间信息
set-time ##设定当前时间
set-timezone ##设定当前时区
set-local-rtc 0|1 ##设定是否使用utc时间(默认为0)
list-timezone ##查看支持的所有时区
[root@server_sshd ~]# timedatectl status
Local time: Tue 2019-01-15 11:30:03 CST ##本地时间
Universal time: Tue 2019-01-15 03:30:03 UTC ##世界协调时间
RTC time: Tue 2019-01-15 03:30:03 ##主板硬件时间
Timezone: Asia/Shanghai (CST, +0800) ##时区
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
journalctl
journalctl所看的日志都保存在内存里,重启之后会消失
1.journalctl ##日志查看工具
-n 3 ##查看最近3条日志
-p err ##查看错误日志
-o verbose ##查看日志的详细参数
--since ##查看从什么时间开始的日志
--until ##查看到什么时间为止的日志
2.如何使用systemd-journald保存系统日志
默认systemd-journald是不保存系统日志到硬盘的
那么每次关机后再次开机只能看见本次开机之后的日志
上一次关机之前的日志是无法查看的
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal
killall -1 systemd-journal
ls /var/log/journal
946cb0e817ea4adb916183df8c4fc817