一 日志
rsyslog.service 采集日志的服务
/var/log/messages 服务日志常规信息
/var/log/secure 服务认证,比如谁登陆 之类的
.../maillog 邮件服务日志
.../cron 定时
.../boot.log 启动日志
/etc/rsyslog.conf 日志采集规则
下面看一下日志采集规则
类型
*.*
*第一个星 什么类型的日志
auth 是pam 产生的日志
authpriv ssh,ftp等登陆信息的验证信息
cron 时间任务相关
kern 内核
lpr 打印
mail 邮件
mark(syslog)-rsyslog 服务内部的的信息,时间标志
news 新闻组
user 用户程序产生的相关信息
uucp unix to unix copy,unix 主机之间相关的通讯
local 1-7 自定义的日志设备
.*点后面第二个星 什么级别的日志
日志级别 1--7 越高内容越少
debug 有调制信息的 日志信息最多
info 一般信息的日志 最常用
notice 最具有重要性的普通条件的信息
warning 警告级别
err 错误级别 阻止某个功能或者模块不能正常工作的信息
crit 严重级别 组织整个系统或者整个软件不能正常工作的信息
alert 需要立即修改的信息
emerg 内核崩溃等严重信息
none 什么都记录
例如:
authpriv.none 不显示登陆日志
在 后面加入.none 就没有写入 去掉之后用另一台虚拟机登陆 再查看日志就会显示这个采集的信息
如果出现 rc.local的清除方法
$ModLoad imudp(i输入m信息) 加载模块
logger XX 在日志中写东西
清空rm -fr /etc/rc.d/rc.local
再重启 reboot
systemctl stop firewalld 关掉防火墙
tail -f /var/log/messages |grep ssh -i(不区分大小写)
###日志采集格式设定
vim /etc/log/rsyslog.conf
二如何实现两台机器的日志采集
首先明白 UDP无应答传输 TCP 应答传输
在发送端设置 /etc/rsyslog.conf
ip设置为接受段 然后打开接受端的UDP
查看自己的UDP端口有没有打开
切记 重启服务 两个都要 systemctl restart rsyslog.service
然后输入 logger 自己想要的字符串
然后可以在 cat /var/log/messages 查看输入
这里将接受端改为 node1 发送端改为node2 便可以在真机上直接操作这里没有reboot 所以还是可以看到 rc.local但是可以看到我这里给的输入 hehe 连续输入了三次都可以看到。
我们还可以更改日志的采集格式
vim /etc/rsyslog.conf
$template WESTOS, "%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
这里 WESTOS 相当于定义一种格式 类似DEFINE 功能
timegenerated 显示日期
FROMHOST-IP 显示主机ip地址
syslogtag 日志记录目标
msg 日志内容
\n 换行符
用的时候 直接在地址后面加入 ;WESTOS 即可
当然还是在 /etc/rsyslog.conf 下更改 别忘了restart
####时间同步
如果接受方的时间与服务器不一致 这时候进行一个命令 可以和服务器的时间同步
同步两台时间 systemctl status chrony
和谁一致该谁的
要和服务器同步 在node2下
vim /etc/chrony.conf
allow 172.25.254/24
local stratum 10(等级)
重启服务
在客户端
iburst 设置完生效
server 172.25.254.100 iburst 这里是服务器的地址 本机立即同步172.25.254.200的时间
chronyc sources -v 查看是否同步
同步服务方的时间 关接受方防火墙
客户端接受方 改allow 地址和 local stratum 重启服务
服务端发送(logger)方 改server 172.25.254.200(接受方ip) iburst 重启服务
在发送端查看是否同步 chronyc sources -v
[root@node2 ~]# chronyc sources -v
timedatectl 设定时间 不加则显示时间
... list-timezones 显示时区
... set-timezone Asia/Shanghai 一般上海时间
UTC伦敦时间 RTC硬件时间
一般传输硬件时间 在加上主机的地区时间
timedatectl set-local-rtc 0 把硬件时间变成UTC时间
改成1 硬件时间使用的是local时间 本地时间
... set-time "2018-11-11 11:11:11" 改系统时间 再用date 或者timedatectl 查看
系统真正的日志在内存里 /var/log/只是采集
怎样直接查看系统日志
journalctl 可以/加关键字查看某些特定内容
.. -n 3 查看最新的三条
.. --since 09:20 查看任何天数这个点之后的日志
.. --since 09:20 --until 09:01:50 某个时段日志
.. -p err 报错信息
.. -o verbose 查看所有进程详细参数 verbose 形容词详细的意思
.. _PID=1055 _COMM=sshd 查看详细数据
重启后 journalctl 不能看到日志了 内存清空了 而 /var/log/ 是采集过后的可以看到
man journalctl /since 查看since怎么用
采集日志
mkdir /var/log/journal/
chgrp systemd-journal /var/log/journal
chmod g+s ... 让该目录下创建的文件能被该组识别
ps aux|grep systemd-journald 查看进程号
kill -1 查看的进程号
bootctl 查看本机ID
ls -ld ..目录 就可以看到记录的日志