一、系统日志
进程和操作系统内核需要能够为发生的事件记录日志 , 这些日志可用于系统审核和问题的故障排除 , 一般这些日志永久存储 /var/log 目录中
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.日志级别
debug ###有调式信息的,日志信息最多
info ###一般信息的日志,最常用
notice ###最具有重要性的普通条件的信息
warning ###警告级别
err ###错误级别,阻止某功能或模块不能正常工作的信息
crit ###严重级别,阻止整个系统或整个软件不能正常工作的信息
alert ###需要立刻修改的信息
emerg ###内核崩溃等严重信息
none ###什么都不记录
注:
3.日志存储文件
日志永久存储于 /var/log 目录中。各系统文件记录信息如下:
var/log/messages ###大多数系统日志信息记录在此处
/var/log/secure ###安全和身份认证相关的消息和错误的日志文件(系统登陆)
/var/log/maillog ###与邮件服务器相关的日志文件
/var/log/cron ###与定时任务相关的日志文件
/var/log/boot.log ###与系统启动有关的日志文件
二、日志采集
1.系统日志采集服务rsyslog
此服务是用来采集服务的,他不产生日志,只是采集
2.日志采集规则
1)指定日志采集路径
rsyslog 服务的主配置文件为/etc/rsyslog.conf 。在此文件中指定日志采集路径的格式为:
日志类型 . 日志级别 /var/log/file(日志存放文件)
测试步骤:
vim /etc/rsyslog.conf ##查看并修改采集日志文件配置,为了让我们把日志采用到指定位置
*.* /var/log/westos #将所有日志的所有调试信息放到/var/log/westos(这个文件会自动生成)
systemctl restart rsyslog.service #重启rsyslog系统
> /var/log/westos ###清空日志
logger test
cat /var/log/westos ###查看日志
2)指定日志采集格式
vim /etc/rsyslog.conf
$template 格式名称 , “日志采集格式”
日志类型 . 日志级别 /etc/log/file(日志保存文件);格式名称
%timegenerated% #日志生成时间
%FROMHOST-IP% #日志来源主机的IP
%syslogtag% #日志生成程序(记录目标)
%msg% #日志内容
\n #换行
测试步骤:
vim /etc/rsyslog.conf
$template STUDENT,"%FROMHOST-IP% %syslogtag% %msg%\n" ###不采集时间
*.* /var/log/westos;STUDENT
systemctl restart rsyslog.service
> /var/log/westos ###清空日志
logger student
cat /var/log/westos ###查看日志
三、日志的远程同步及采集格式设定
1.远程日志同步
1)在日志发送方
vim /etc/rsyslog.conf
*.* @接受IP *.* ##‘@’表示udp协议发送,‘@@’表示tcp协议发送 ##将所有日志的所有调试信息发送到接收方地址
systemctl restart rsyslog.service ###重启rsyslog服务器
2)在日志接收方
vim /etc/rsyslog.conf
15 $ModLoad imudp ###日志接收模块
16 #$UDPServerRun 514 ###打开接收端口
systemctl restart rsyslog
systemctl stop firewalld ###关闭防火墙
systemctl disable firewalld #关闭防火墙对接收的屏蔽
测试步骤:
发送方server(172.25.254.248):
vim /etc/rsyslog.conf
systemctl restart rsyslog.service
接收方desktop(172.25.254.168):
vim /etc/rsyslog.conf
systemctl restart rsyslog
systemctl stop firewalld
在发送方:
在接收方:
注意排错:防火墙关闭;网络畅通;服务开启;接口开启
四、时间同步
1.时间同步服务名称 chronyd
在服务器端共享时间:
vim /etc/chrony.conf
22 allow IP/24 ##允许那些客户端来访问本机共享的时间
29 local stratum 10 ##本机不同步任何时间,本机作为时间源
systemctl restart chronyd.server ##重启chronyd服务
在客户端:
vim /etc/chrony.conf
server 主机IP iburst ##本机立即同步ip主机的时间
systemctl restart chronyd ##重启chronyd
chronyc sources -v
改为
出现“^* ”就说明试验成功,已经和172.25.254.248的时间同步
^ ##172.25.254.248的服务器
* ##current synced已完成同步
2.修改时间
1)timedatectl 命令
timedatectl ##查看时间
timedatectl list-timezones ##查找所有时区时间
timedatectl set-timezone Asia/Shanghai ##修改时间为上海时间
timedatectl status ##显示当前时间信息
timedatectl set-time "2018-10-13 22:15:00" ##更改当前时间
2)设置硬件时间
timedatectl set-local-rtc 0 ##使用UTC(伦敦)时间
timedatectl set-local-rtc 1 ##使用当地时间
vim /etc/adjtime ###查看硬件时间配置文件
五、日志查看
1. journalctl ##日志查看工具,直接查看内存中的日志(暂时)
journalctl --since 时间点 --until 时间点
journalctl -o verbose ##查看日志详细参数
journalctl _COMM=sshd _PID=10171
测试:systemctl status sshd ##查看pid
systemctl restart sshd ##重开启一个sshd,每重启一次PID就会不一样
2.如何使用systemd-journald永久保存日志
默认此程序只负责对日志进行查看而不对日志进行保存和采集,那么关机后再开机,对日志进行查看,只能查看到开机后的日志
系统之前的日志因为是保存在内存中的,所以关机后就被清空了,那么在开机是用journalctl看不到
让systemd-journald保存日志到硬盘:
mkdir /var/log/journal
chown root.systemd-journal /var/log/journal ##更改文件所有人及所有组
chmod g+s /var/log/journal ##在目录中创建的文件都自动归属到目录所在组
killall -1 systemd-journald ##信号1,重新加载配置而不重启
测试:
journalctl -n 3 ##查看日志前三行内容
reboot ##退出系统
重新登陆
cd /mnt ###随便执行一条命令
journalctl ##查看日志