查看系统负载

系统版本声明:RHEL7
https://www.linuxcool.com/uptime

# 查看系统运行时间、用户数、负载
uptime

在这里插入图片描述

# 显示本次系统的开机时间
uptime -s

在这里插入图片描述

# 查看系统负载
cat /proc/loadavg

在这里插入图片描述

查看进程

ps -ef # 查看所有进程
top # 实时显示进程状态

Linux内核及系统日志

内核及系统日志有系统服务rsyslog统一管理,根据其主配置文件

/etc/rsyslog.conf 中的设置决定将内核消息及各种系统程序消息记录到什么位置.

/var/log/messages 系统公共常规日志,记录内核消息,包括启动,IO/网络/程序错误日志
/var/log/access-log 记录HTTP/WEB的信息
/var/log/dmesg 内核启动时的日志,开机时在屏幕显示,该命令查看本地系统启动时的硬件和内核缓冲信息,用dmesg命令查看
/var/log/secure 是系统安全日志,记录用户远程登录,认证过程中的事件信息
/var/log/cron 是计划任务日志
/var/log/maillog 记录进入或发出系统的电子邮件活动
/var/log/boot.log 记录系统启动的软件日志信息
/var/log/wtmp 记录系统所有登录退出记录,使用last命令查看
/var/log/btmp 记录错误登录的日志信息,使用lastb命令查看
/var/log/lastlog 记录最近成功登录最后的失败登录事件,使用lastlog命令查看
/var/run/utmp 记录当前登录用户,用who命令查看

查看系统常规日志

## tail用来查看最后十条log,和cat效果是一样的
# 查看最后10条系统常规日志
tail /var/log/messages

# 持续查看OS日志
tail -f /var/log/messages

在这里插入图片描述

查看内核启动时的内容

# 查看内核启动时的内容
dmesg

## 查看的是/var/log/dmesg文件
tail /var/log/dmesg

### 滚动查看
tailf /var/log.dmesg
tail -f /var/log.dmesg

在这里插入图片描述

查看系统安全日志

# 查看系统安全日志
tail secure
tail /var/log/secure
## 读取的是/var/log/secure文件

# 持续查看系统安全日志
tail -f secure
tail -f /var/log/secure

在这里插入图片描述

查看系统计划任务日志

https://blog.csdn.net/omaidb/article/details/120104880

#查看系统计划任务日志
tail -f /var/log/cron

Linux服务巡检常用命令

Linux系统需要定期巡检,以检查服务器软硬件使用情况,相当于对人的体检,确保可以及时发现问题、解决问题,降低损失,常用的巡检命令如下:

用户登录日志(用户登陆审计)

https://www.linuxcool.com/who
who命令读取/var/run/utmp文件

# 查看使用系统的当前用户有哪些
# 查看活动用户
w
users
# 查看上次重启时间
who -b

# 查看指定用户信息
id < 用户名> 

# 查看所有用户的定时任务 
crontab -l

last显示登录成功的信息

https://www.linuxcool.com/last
-a:把从何处登入系统的主机名称或ip地址,显示在最后一行;
-d:将IP地址转换成主机名称;
-f: <记录文件>:指定记录文件。
-n: <显示列数>或-<显示列数>:设置列出名单的显示列数;
-R:不显示登入系统的主机名称或IP地址;
-x:显示系统关机,重新开机,以及执行等级的改变等信息。

# 显示登录成功的用户信息
last
第一列 第二列 第三列 第四列 第五列 第六列
用户名 终端位置 来源IP或主机名 登录开始时间 结束时间 持续时间
root pts/2 192.168.0.1 Tue Mar 22 14:30 still login in(还未退出)
root pts/0 192.168.0.1 Tue Mar 22 13:47 down(直到正常关机) 00:01
reboot system boot 3.10.0-957.el7.x Tue Mar 22 13:49 crash(直到强制关机)

在这里插入图片描述

lastb显示登录失败的信息

https://www.linuxcool.com/lastb
常用参数:
-a  把从何处登入系统的主机名称或IP地址显示在最后一行。
-d  将IP地址转换成主机名称。
-f <记录文件>  指定记录文件。
-n <显示列数>或-<显示列数>  设置列出名单的显示列数。
-R  不显示登入系统的主机名称或IP地址。
-x  显示系统关机,重新开机,以及执行等级的改变等信息。

# 显示登录失败的用户信息
lastb

在这里插入图片描述

第一列 第二列 第三列 第四列 第五列 第六列
用户名 终端位置 来源IP或主机名 登录开始时间 结束时间 持续时间

查看用户信息

cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组

查看特权账号

# 查询特权用户特权用户(uid 为0)
awk -F: '$3==0{print $1}' /etc/passwd

# 查找远程可以登录的账户
## $1:MD5(长度 22个字符)
## $5:SHA-256(长度 43 个字符)
## $6:SHA-512(长度86 个字符)
awk '/\$1|\$5|\$6/{print $1}' /etc/shadow

# 检查sudo权限
cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL"

查看硬件信息

cat /proc/cpuinfo # 查看CPU信息
lspci -tv # 列出所有PCI设备
lsusb -tv # 列出所有USB设备

df -h # 查看各分区使用情况
du -sh < 目录名> # 查看指定目录的大小

grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量

free -m # 查看内存使用量和交换区使用量
swapon -s # 查看所有交换分区

mount | column -t # 查看挂接的分区状态

fdisk -l # 查看所有分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况

查看系统环境

hostname # 查看计算机名

uname -a # 查看内核/操作系统/CPU信息
head -n 1 /etc/issue # 查看操作系统版本

lsmod # 列出加载的内核模块
env # 查看环境变量

查看网络信息

ifconfig # 查看所有网络接口的属性

iptables -L # 查看防火墙设置

route -n # 查看路由表

netstat -lntp # 查看所有监听端口

netstat -antp # 查看所有已经建立的连接

netstat -s # 查看网络统计信息

配置systemd journald日志持久存储

参考: https://thinkit.co.jp/story/2014/12/18/5389?page=0%2C1
在 CentOS 7 journald 设置中,日志文件存放在 /run/log/journal 目录下。但是/run目录是tmpfs文件系统挂载的,当OS重启时,/run/log/journal目录下存储的日志文件会被删除。
为了在操作系统重启后也能保存日志,在journald配置文件/etc/systemd/journald.conf中指定“Storage=persistent”

# 配置日志持久存储
sed -i 's/^#Storage=auto/Storage=persistent/' /etc/systemd/journald.conf


# 限制日志容量为128MB
SystemMaxUse=128M

重启systemd-journald服务使配置生效

# 重启systemd-journald服务
systemctl restart systemd-journald

# 检查当前由journald管理的所有日志的容量
journalctl --disk-usage

配置rsyslogd和systemd journald

# 持久化保存日志的目录
mkdir -p /var/log/journal
mkdir -p /etc/systemd/journald.conf.d

cat > /etc/systemd/journald.conf.d/99-prophet.conf << EOF
[Journal]
# 持久化保存到磁盘
Storage=persistent

# 压缩历史记录
Compress=yes

SyncIntervalSec=5m
RateLimitInterval=30s
RateLimitBurst=1000

# 最大占用空间
SystemMaxUse=10G

# 单文件最大200M
SystemMaxFileSize=200M

# 日志保存时间2周
MaxRetentionSec=2week

# 是否将日志转发到syslog
ForwardToSyslog=no
EOF

# 重启systemd-journald
systemctl restart systemd-journald

无法发现/var/log/journal目录

# 将Storage参数与更改成Storage=persistent
vim /etc/systemd/journald.conf

Storage=persistent

# 重启systemd-journald服务
systemctl restart systemd-journald

journalctl查看日志

https://linux.cn/article-15544-1.html

根据日期查看

# 根据日期查看
journalctl --since="2021-10-02 22:00:00"

journalctl查看systemd日志

参考: journalctl常见用法

# 查看指定service日志
journalctl -u 服务名

## 例如:docker起不来
journalctl -u docker

# 动态查看日志(持续输出,类似于logs -f)
journalctl -eu rancherd-server -f

## 实时滚动显示某个Unit的最新日志
journalctl -u kubelet -f

# 只查看今天的kubelet日志
## |less可以解决日志显示不全的问题
journalctl -u kubelet --since today |less

查看引导记录

# 查看引导记录
journalctl -b

# 查看指定时间的日志
journalctl --since="2021-10-02 22:00:00"

将日志传送到远程rsyslog服务器

使用 journalctl 命令获取日志并将日志传输到远程 rsyslog 服务器(IP 地址为 172.16.70.99)。

# 将日志传送到原创rsyslog服务器
journalctl -o short -f |nc -uv 172.16.70.99 514

## 打印
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to 172.16.70.99:514.

日志的切割与轮替

在这里插入图片描述