linux中的日志文件 日志的采集,日志远程同步 时间的同步 (时间源服务器) | rsyslog,journald
hostnamectl set-hostname name ##修改hostname主机名###通常修改为node1.example.com的形式
###在企业里面通常叫结点而不 叫主机
ps aux | grep 名称(关键字) ##常用的查看某服务的进程
系统默认普通用户不能查看日志
1,
rsyslog日志采集工具
注意:日志是在内存的,rsyslog是把他放在硬盘里面
vim /etc/rsyslog.conf ##配置日志采集工具
日志类型.日志级别
日志类型
auth 用户登陆日志(pam产生日志)
authpriv 服务认证日志(sshd认证)
kern 内核日志
cron 定时任务日志
lpr 打印机日志
mail 邮件日志
news 新闻
user 用户相关程序日志
local 1-7 用户自定义日志
# ##Save boot messages also to boot.log
local7.* /var/log/boot.log
日志级别
debug 系统调式信息
info 常规信息
waring 警告信息
err 报错(级别底,阻止了某个功能不能正常工作)
crit 报错(级别高,阻止了整个软件或整个系统不能正常工作)
alert 需要立即修改信息
emerg 内核奔溃
none 不采集任何信息
auth.debug /var/log/linux##这个是指把系统的 用户系统日志的 系统调试信息
##保存在这个文件内,这就是用户自定义的文件
*.* /var/log/log.all###所有日志类型的所有级别都保存在这个文件
mail.none 是不包括mail的意思
系统常用日志
/var/log/messages ##所有日志级别的常规信息(不包含邮件,服务认证,定时任务等)
/var/log/mail ##邮件日志##这个的查看和上面这些的配置文件的修改都可以在
##/etc/rsyslog.conf里面查看
/var/log/secure ##服务认证日志
/var/log/cron ##定时任务日志
自定义位置
*.info;mail.none;authpriv.none;cron.none /var/log/messages##系统默认
*.* /var/log/westos##自定义位置在westos
####vim /var/log/messages是看不见的sshd认证日志,例如登陆ip等等,因为这里面authpriv的内型是none,
但是/var/log/westos是能看见的,因为这个类型是*,是所有,包括authpriv 服务认证日志(sshd认证)######
systemctl stop rsyslog.service ##不让这个服务进行采集信息,但是其实还会记住的只是在/var/log/messages
或者/var/log/westos这些配置文件看不见,当你重新开启服务后,这里面的信息又会全部加载出来
2,日志的远程同步
做实验之前注意执行 > /etc/rc.d/rc.local 清除这个脚本文件
通过man 5 rsyslog.conf可以看到远程同步其实是有两种方式
tcp 稳定 *.* @@ip
udp 速度快 *.* @ip
在日志发送方
vim /etc/rsyslog.conf
*.* @ip 日志接受方地址 #####如果用tcp就是@@,但是一般我们用udp
systemctl restart rsyslog 改掉配置文件之后要重启,同时这个本身会生成日志文件,方便在接受方直接查看
在日志接受方
vim /etc/rsyslog.conf
$ModLoad imudp ##去掉前面的#号##15行
$UDPServerRun 514 ##这俩是同步服务的插件,启用插件##16行
systemctl restart rsyslog.service 改掉配置文件之后要重启
systemctl stop firewalld.service 关闭防火墙,使日志能够进来
systemctl disable firewalld.service 开机不打开防火墙
#####客户端和服务端两个作通信要关闭防火墙###
如图,node2已经可以接受到node1的日志
3,定义日志采集格式(在哪个端口查看就在哪个端口定义)
vim /etc/rsyslog.conf
在RULES下面写
$template 格式名称,“日志采集格式” ####格式名称随便起
$template westos,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
%timegenerated% 日志生成时间
%FROMHOST-IP% 日志来源主机的ip
%syslogtag% 日志生成程序
%msg% 日志内容
\n 换行
然后在进行如下设置
*.info;mail.none;authpriv.none;cron.none /var/log/messages;westos####westos就是格式名称,随便起
注意修改配置文件之后要重启服务器!!!
4,日志查看
journalctl ##不能查看同步过来的,只查看本机的,内存的日志
journalctl -n 3 查看最新的3条日志
journalctl -p err 查看错误信息
journalctl -f 实时展现最新的日志,监控
journalctl --since 01:39:58 查看自从01:39:58之后的日志
journalctl --since 01:39:58 --until 01:49:58 查看这个时间段的日志
journalctl -o verbose 查看日志详细参数 打开之后可以用/来查找pid ,比如知道之前某个服务的pid=651,就可以用 journalctl _pid=651来查看详细信息
对systemd_journald管理
默认此程序只负责对日志进行查看而不对日志进行保存和采集
那么在关机后在开机(reboot),对日志进行查看,只能查看到开机后的日志,之前的是看不见的
日志因为是保存在内存中的,所以关机后就被清空了,那么再开机用journalctl是看不到之前的
5
如何让systemd-journald 保存日志到硬盘
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal/ ###设置组
chmod g+s /var/log/journal/ ##g+s 是对目录下面的文件权限进行递归,
确保这个目录下面的文件都能被systemd-journal读取(可以用vim /etc/group查看
这个组确实是存在的)
##在这个目录下面会自动新建一个目录,可以看到组都是systemd-journal
killall -1 systemd-journald####在不关闭文件的情况下,刷新一次(kill -1 是刷新)
重新读取配置文件,此时会在/var/log/journal/下面
创建一个很长名称的目录,该目录下保存的两个文件保存的都是数据
journalctl -n 3 ##查看最新三行
date
reboot##重启虚拟机
journalctl ##如果在date之前那个时间能显示,那么就成功
6,
时间同步
在服务器端:
systemctl stop firewalld##关掉防火墙
vim /etc/chrony.conf
local stratum 10 ##开启时间共享功能并设定共享级别##29行##
##这个参数开启后本机不会同步别人的时间到本机,且本机是时间源服务器
allow 172.25.254.0/24 ##0/24是指允许前三段一样的来访问共享本机时间##22行###
timedatectl set-time "02:22:22" ##修改时间
systemctl restart chronyd.service ##重启##先关防火墙后重启##注意这是两个端口的通信
###接受端要关闭防火墙
在客户端:
vim /etc/chrony.conf
server 172.25.254.147 iburst ##同步172.25.254.147主机的时间##dd删除其余三行
systemctl restart chronyd.service ###重启服务
chronyc sources -v ###刷新一下,如果左下角是^*那么就是对的
此时用watch -n 1 date 监控两个node的时间,发现一样