Linux基础知识(系统日志的相关命令)
一、系统日志的采集规则
-
日志可以直接看出系统中的错误,日志在内存里,由服务决定
vim /etc/rsyslog.conf 查看并修改采集日志文件配置,为了让我们把日志采集到指定位置。 -
日志采集格式:日志类型.日志级别 日志存放文件名称
1.日志类型:
auth 用户登陆日志(pam产生的日志)
authpriv 服务认证日志(sshd认证日志)
kern 内核日志
cron 时间任务日志
lpr 打印机日志
mail 邮件日志
news 新闻日志
user 用户相关程序产生的日志
uucp unix to unix copy, unix主机之间相关的通讯
local 1~7 用户自定义日志
mark(syslog)-rsyslog 服务内部信息,时间标识
2.日志级别:
debug 系统调试信息,日志信息最多
info 常规信息,最常用的信息
notice 最具有重要性的普通条件信息
warning 警告信息
err 报错(级别低,阻止了某个功能不能正常工作)
crit 报错(级别高,阻止整个软件或整个系统不能正常工作)
alert 需要立即修改的信息
emerg 内核崩溃等严重信息
none 不采集任何日志信息
注意: 日志从上到下,级别从低到高,记录的信息也越来越少。 -
系统常用日志
/var/log/messages 所有日志级别的常规信息(不包含邮件,服务认证,定时任务)
/var/log/maillog 邮件日志
/var/log/cron 定时任务日志
/var/log/secure 服务认证日志
:omusrmsg:* 内核崩溃等严重信息日志
/var/log/spooler unix主机之间相关的通讯和新闻日志的高级报错日志
/var/log/boot.log 用户自定义日志 -
日志的远程同步
1.一台主机处理多台服务器的日志
日志发送方:(客户端)
编辑vim /etc/rsyslog.conf
vim /etc/rsyslog.conf编辑日志的采集规则(说明要发送的日志类型和接受方) @ UDP @@TCP
54 *.info;mail.none;authpriv.none;cron.none /var/log/messages
55*.* @172.25.254.250
日志接收方的地址
systemctl restart rsyslog.service重新启动服务
[[email protected] ~]# > /var/log/messages清除原本日志 (实验用)
[[email protected] ~]# > /etc/rc.d/rc.local 清除日志的启动脚本,重新启动后生效
logger test 输入 test
cat /var/log/messages 查看日志
日志接收方:
systemctl stop firewalld 关闭防火墙
编辑vim /etc/rsyslog.conf
14 行# Provides UDP syslog reception
15 $ModLoad imudp 打开插件
16 $UDPServerRun 514 开启接口 UDP
systemctl restart rsyslog.service 重新启动服务
[[email protected] ~]# > /var/log/messages 清空原日志
[[email protected] ~]# > /etc/rc.d/rc.local 清除日志的启动脚本,重新启动后生效
cat /var/log/messages 查看desktop主机的日志 -
定义日志的采集格式
要求传输过来的日志有时间,IP,进程来源,进程内容。
在接收方端编辑 vim /etc/rsyslog.conf
$template 格式名称,“日志采集格式”
*.info;mail.none;authpriv.none;cron.none /var/log/messages;格式名称
在RULES下添加:$template WESTOS,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
*.info;mail.none;authpriv.none;cron.none /var/log/messages;WESTOS
%timegenerated% 日志生成时间
%FROMHOST-IP% 日志来源主机的IP
%syslogtag% 日志生成程序
%msg% 日志内容
\n 换行
编辑结束退出后执行重启动服务systemctl restart rsyslog.service -
时间同步(chrony命令)
同步时间实验:
发送放:desktop:编辑 vim /etc/chrony.conf
server 172.25.254.250 iburst 同步ip为172.25.245.250主机的时间
systemctl restart chronyd.service 重新启动服务
接收方:编辑修改时间 date 12121212
Wed Dec 12 12:12:00 EST 2018
编辑vim /etc/chrony.conf
#Allow NTP client access from local network.
allow 172.25.254/24 允许指定主机同步不时间
#Serve time even if not synchronized to any NTP server.
local stratum 10 开启接口表示允许同步
systemctl restart chronyd.service 重新启动服务
关闭火墙systemctl stop firewalld
测试:
1.查看发送端时间
2.查看接收端时间
查看发送端是否和接收端的时间同步 chronyc sources -v
在发送端desktop主机执行 chronyc sources -v 命令
同步成功与ip为172.25.254.250主机时间同步。 -
系统时间的修改
timedatectl 命令显示当前时间信息
timedatectl list-timezones 查看当前时区
timedatectl set-timezone Asia/shanghai设置当前时区timedatectl set-local-rtc 0 默认情况,RTC------UTC
vim /etc/adjtime文件包括了调整硬件时钟的数据
timedatectl set-local-rtc 1 RTC=local
vim /etc/adjtime
timedatectl set-time "2018-10-17 16:05:50"设定当前系统时间 -
journalctl 命令日志查看工具,直接查看内存中的日志
journalctl 查看存储在内存中的所有日志
journalctl -n 3 查看内存中最近的3行日志journalctl --since 12:10 --until 12:30:50查看内存中从12:10分开始到12:30:50结束的日志
journalctl -p err 查看报错日志
journalctl -o verbose 查看日志详细参数
实验步骤:
systemctl status sshd 查看pid
systemctl restart sshd 重开启一个sshd,每重启一次PID就会不一样
_PID=1179 _COMM=sshd -
内存采集日志
1.对systemd-journald管理
默认此程序只负责对日志进行查看而不对日志进行保存和采集。
那么关机后再开机,对日志进行查看,只能查看到开机后的日志,系统之前的日志因为是保存在内存中的,所以关机后就被清空了,那么在开机时用journalctl看不到之前的日志。
2.如何让systemd-journald保存日志到硬盘中
步骤如下:
mkdir /var/log/journal 首先建立journal 日志
ll -d /var/log/journal/ 查看
chgrp systemd-journal /var/log/journal/修改日志的组信息(因为只识别systemd-journal组 )
ll -d /var/log/journal/
chmod g+s /var/log/journal/
ls -ld /var/log/journal/
ps aux | grep systemd-journald
kill -1 371
cd /var/log/journal/
ls
946cb0e817ea4adb916183df8c4fc817
cd 946cb0e817ea4adb916183df8c4fc817
journalctl 直接查看