1)监控cup 的使用情况
uptime
[root@localhost index]# uptime 16:22:36 up 70 days, 1:15, 1 user, load average: 0.07, 0.06, 0.05
当前系统时间
系统运行时间
当前有一个用户登录
CPU显示最近1分钟,5分钟,15分钟的负载情况
这里的负载表示单位时间段内cup等待队列中平均有多少个进程在等待,等待的进程数越多,说明cup越忙。
2)监控内存和交换分区使用的情况
free
free -b|-k|-m 指定输出容量的单位,分别是Byte,KB ,MB [root@localhost index]# free -m total used free shared buff/cache available Mem: 7781 1337 224 150 6219 5927 Swap: 16063 935 15128 Mem代表内存容量的使用情况 Swap是交换分区的使用情况
3)监控磁盘的使用情况
df -hT
[root@localhost index]# df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/cl-root xfs 50G 5.2G 45G 11% / devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev tmpfs tmpfs 3.8G 0 3.8G 0% /dev/shm tmpfs tmpfs 3.8G 393M 3.5G 11% /run tmpfs tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup /dev/sda1 xfs 1014M 139M 876M 14% /boot /dev/mapper/cl-home xfs 157G 2.0G 155G 2% /home tmpfs tmpfs 779M 0 779M 0% /run/user/0 信息:根分区的类型是xfs,总容量50G,用了5.2G,剩余45G,使用率11%,挂载点/
df -i
[root@localhost index]# df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/mapper/cl-root 26214400 81253 26133147 1% / devtmpfs 993302 381 992921 1% /dev tmpfs 996041 1 996040 1% /dev/shm tmpfs 996041 483 995558 1% /run tmpfs 996041 16 996025 1% /sys/fs/cgroup /dev/sda1 524288 330 523958 1% /boot /dev/mapper/cl-home 82247680 12891 82234789 1% /home tmpfs 996041 1 996040 1% /run/user/0 根分区inode总个数是26214400,使用了81253,剩余26133147,使用率1% 这里的inode个数决定了该分区可以创建的文件个数,有多少inode节点,可以在该分区创建多少个文件。 在上面的显示案例中,如果在跟分区创建了26214400节点,即使还有45G的磁盘空间,也无法创建文件,因为inode节点已经耗尽。
4)监控网络使用情况
ip a s
ip -s link show eno167773 查看网卡流量信息
5)监控进程使用情况
ps -ef
ps aux
ps -ef
与ps aux大同小异,显示的信息基本上是一样的。
ps -ef UID PID PPID C STIME TTY TIME CMD ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程
正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,
总之大部分信息都是可以通过执行该命令得到的 UID或者USER:进程的执行用户 pid:进程的唯一编号 ppid:父进程ID编号 %CPU:代表进程CPU的占有率 %MEM:代表进程内存占有率 vsz:代表进程所使用的虚拟内存大小(kb) rss:进程所使用的真实内存大小(kb) tty:终端 stime或start:进程启动时间 stat:进程状态(D:不可中断的进程,R:正在运行的进程,S:正在睡眠的进程,T:停止或者被追踪的进程,X:死掉的进程,Z:僵死进程) time:进程占有CPU的总时间 CMD或者command代表进程命令
6)netstat
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息
比较常用的有两个: netstat -antpu 显示所有连线中的Socket, 直接使用ip地址,而不通过域名服务器 最常用的关于netstat的命令就是这个 netstat -lnp (打印当前系统启动哪些端口)以及netstat -an (打印网络连接状况) 列出所有端口情况 [root@xiesshavip002 ~]# netstat -a # 列出所有端口 [root@xiesshavip002 ~]# netstat -at # 列出所有TCP端口 [root@xiesshavip002 ~]# netstat -au # 列出所有UDP端口 列出所有处于监听状态的 Sockets [root@xiesshavip002 ~]# netstat -l # 只显示监听端口 [root@xiesshavip002 ~]# netstat -lt # 显示监听TCP端口 [root@xiesshavip002 ~]# netstat -lu # 显示监听UDP端口 [root@xiesshavip002 ~]# netstat -lx # 显示监听UNIX端口 显示每个协议的统计信息 [root@xiesshavip002 ~]# netstat -s # 显示所有端口的统计信息 [root@xiesshavip002 ~]# netstat -st # 显示所有TCP的统计信息 [root@xiesshavip002 ~]# netstat -su # 显示所有UDP的统计信息 显示 PID 和进程名称 [root@xiesshavip002 ~]# netstat -p 显示核心路由信息 [root@xiesshavip002 ~]# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default gateway 0.0.0.0 UG 0 0 0 eth0 192.168.130.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 [root@xiesshavip002 ~]# netstat -rn # 显示数字格式,不查询主机名称 Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 192.168.130.1 0.0.0.0 UG 0 0 0 eth0 192.168.130.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 查看端口和服务 [root@xiesshavip002 ~]# netstat -antp | grep ssh tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 734/sshd tcp 0 52 192.168.130.20:22 119.129.118.189:58737 ESTABLISHED 1846/sshd: root@pts tcp6 0 0 :::22 :::* LISTEN 734/sshd [root@xiesshavip002 ~]# netstat -antp | grep 22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 734/sshd tcp 0 52 192.168.130.20:22 119.129.118.189:58737 ESTABLISHED 1846/sshd: root@pts tcp6 0 0 :::22 :::* LISTEN 734/sshd netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key," ",sta[key]}' //查看tcp各网络连接状态的数量
7)tcpdump抓包工具
某个网卡上都有哪些数据包,尤其是当你初步判定你的服务器上有流量***。这时,使用抓包工具来抓一下数据包,就可以知道有哪些IP在***你 tcpdump -nn -c 10 -i ens33 //抓取10次包指定ens33网卡,并显示ip和端口,不显示主机名和服务名称

第三列和第四列显示的信息为哪一个IP+port在连接哪一个IP+port,后面的信息是该数据包的相关信息 -nn参数是为了直接显示ip+端口号,需要关注的只是第三列以及第四列 -i 选项后面跟设备名称,如果你想抓ens33网卡的包,后面则要跟eens33 -nn选项的作用是让第三列和第四列显示成IP+端口号的形式 不加-nn则显示的是主机名+服务名称 -c选项,指定抓包数量
一些常用的tcpdump实例
# tcpdump -nn -i ens33 port 22 //只抓22端口的包 # tcpdump host 192.168.x.x //抓取指定ip的包 # tcpdump -nn -i ens33 tcp and not port 22 //指定抓tcp的包,但是不要22端口的 # tcpdump -nn -i ens33 port 22 and port 53 //只抓22和53端口的包 # tcpdump -nn -i ens33 -c 10 -i ens33 -w /tmp/tset.cap //保存10次抓包到/tmp/test.cap # tcpdump -r /tmp/test.cap //读取抓包文件