linux监控系统状态,抓包工具,linux网络相关

第13章 linux系统管理技巧

13.1 监控系统的状态

13.1.1 使用w命令查看当前系统的负载

 linux监控系统状态,抓包工具,linux网络相关

从第一行从左至右:时间,系统运行时间,登录用户数,平均负载,从第二行开始的左右行是说当前登录的用户名及其登陆地址。最重要的是第一行中的load average后面的三个数值。

第一个数值:一分钟内系统的平均负载值

第二个数值:五分钟内系统的平均负载值

第三个数值:十五分钟内系统的平均负载值

这些数值表示单位时间内使用cpu的活动进程数,值越大服务器压力越大,这个值只要不超过服务器的cpu数量就没有关系,如果服务器cpu数量为8,那么值小于8就没有压力。

查看系统有几个cpu的方法:

 linux监控系统状态,抓包工具,linux网络相关

查看有几个物理cpu:

 linux监控系统状态,抓包工具,linux网络相关

 

 

13.1.2 用vmstat命令监控系统的状态

 linux监控系统状态,抓包工具,linux网络相关

 

 

procs显示进程的相关信息

r(run):表示运行或等待cpu时间片的进程数。该数值如果长期大于服务器cpu的个数,则说明cpu资源不够用。

b(block):表示等待资源的进程数。若该数值长时间大于1,则需要关注。

memory显示内存的相关信息

swpd:表示切换到交换分区中的内存数量,单位为kb

free:表示当前空闲的内存数量,单位为kb

buff:表示(即将写入磁盘的)缓冲大小,单位为kb

cache:表示(从磁盘中读取的)缓存大小,单位为kb

swap显示内存的交换情况

si:表示由交换区写入内存的数据量,单位为kb

so:表示由内存写入交换区的数据量,单位为kb

io显示磁盘的使用情况

bi:表示从块设备读取数据的量(读磁盘),单位为kb

bo:表示从块设备写入数据的量(写磁盘),单位为kb

system显示采集间隔内发生的中断次数

in:表示在某一时间间隔内观测到的每秒设备的中断次数

cs:表示每秒产生的上下文切换次数

cpu显示cpu的使用状态

us:显示用户下所花费cpu的时间百分比

sy:显示系统花费cpu的时间百分比

id:表示cpu处于空闲状态的时间百分比

wa:表示I/O等待所占用cpu的时间百分比

st:表示被偷走的cpu所占百分比(一般都为0)

 

使用vmstat查看系统状态时,通常是用这个形式:

每隔一秒输出一次状态,共输出五次:

 linux监控系统状态,抓包工具,linux网络相关

每秒输出一次状态,按ctrl+c停止

 linux监控系统状态,抓包工具,linux网络相关

 

 

13.1.3 用top命令显示进程所占的系统资源

 linux监控系统状态,抓包工具,linux网络相关

top命令用于动态监控进程所占的系统资源,每隔三秒变一次。它会把占用系统资源最高的进程放到最前面。RES为进程所占内存大小,%MEM为使用内存的百分比。在top状态下,按shift+m可以按照内存使用大小排序,按数字1可以列出所有核cpu的使用状态,按q退出top。

命令top -bn1,表示非动态打印系统资源的使用情况,一次性输出所有信息。可以用在shell脚本中。

 linux监控系统状态,抓包工具,linux网络相关

 

 

 

13.1.4 用sar命令监控系统状态

sar命令可以监控系统几乎所有资源的状态,但与其它系统状态监控工具不同,它可以打印历史信息,显示当天从零点开始到当前时间的系统状态信息。(命令安装yum install -y sysstat),初次使用该命令会报错

 

l 查看网卡流量 sar -n DEV

 linux监控系统状态,抓包工具,linux网络相关

该命令会把当天记录的网卡信息打印出来,每隔十分钟记录一次。如果rxpck/s数值大于4000,或者rxkB/s数值大于5000000,很可能是被攻击了,除非是你自己在复制数据。这个命令是查看网卡流量历史的,实时查看网卡流量方法如下

 linux监控系统状态,抓包工具,linux网络相关

可以使用-f选项查看某一天的网卡流量历史,后面跟文件名(/var/log/sa/)

 linux监控系统状态,抓包工具,linux网络相关

这样就能看到7号当天的网卡流量了

 

 

l 查看历史负载 sar -q

 linux监控系统状态,抓包工具,linux网络相关

l 磁盘读写sar -b

 linux监控系统状态,抓包工具,linux网络相关

 

 

13.1.5 用nload命令查看网卡流量

需要安装nload(yum install -y nload)

直接运行nload命令,直观动态显示网卡流量信息,最上面一行为网卡名字以及ip地址,按向右箭头可以查看其他网卡的网络流量。incoming为进入网卡的流量,outgoing为网卡出去的流量。按q退出该界面

 linux监控系统状态,抓包工具,linux网络相关

 

 

 

13.1.6 用free命令查看内存使用状况

free命令可以查看当前系统的总内存大小以及使用内存的情况

 linux监控系统状态,抓包工具,linux网络相关

l total:内存总大小。

l used:真正使用的实际内存大小。

l free:剩余物理内存大小(没有被分配,纯剩余)。

l shared:共享内存大小。

l buff/cache:分配给buffer和cache的内存总共有多大。

l available:系统可使用内存有多大,它包含了free。

其中,total=used+free+buff/cache。available是由free这部分内存和buff/cache还未被占用的那部分内存组成。

free -m:以mb为单位打印内存使用状况

free -g:以gb为单位打印内存使用状况

free -h:自动调节合适的单位显示。

 linux监控系统状态,抓包工具,linux网络相关

 

 

 

13.1.7 用ps命令查看系统进程

ps与top相似,但是ps是专门显示系统进程的命令。ps aux与pa -elf显示的信息基本上是一样的。

 linux监控系统状态,抓包工具,linux网络相关

 

 

PID:表示进程的id。终止某个进程可以使用“kill 进程的pid”,强制终止可以使用“kill -9 进程的pid”

STAT:进程的状态。进程状态分为以下几种:

D:不能中断的进程

R:正在运行的进程

S:已经中断的进程

s:主进程

T:已经停止或者暂停的进程

W:没有足够的内存页分配(内核2.6xx以后不可用)

X:已经死掉的进程

Z:僵尸进程,杀不掉打不死的垃圾进程

<:高优先级进程

N:低优先级进程

L:在内存中被锁了内存分页

l:多线程进程

+:在前台运行的进程,比如在当前终端执行ps aux就是前台进程。

 

ps连同管道符一起使用,用来查看某个进程或者它的数量。这里的3不准确,应该减掉1,因为使用grep命令时,grep命令本身也是一个进程,

 linux监控系统状态,抓包工具,linux网络相关

 

 

 

13.1.8 用netstat命令查看网络状况

netstat命令用来打印网络连接状况,系统所开放端口,路由表等信息(安装net-tools)。

打印网络连接状况netstat -an

 linux监控系统状态,抓包工具,linux网络相关

 

netstat -lnp打印当前系统启动哪些端口

上面一部分是tcp/ip,下面是监听的socket(unix开头的行)

 linux监控系统状态,抓包工具,linux网络相关

netstat -ntpl只看tcp的,不看socket

 linux监控系统状态,抓包工具,linux网络相关

 

 

13.2 抓包工具

想查看某个网卡上都有哪些数据包,尤其当你初步判定服务器上由流量攻击时,使用抓包工具来抓取数据包就可以知道有哪些ip在攻击了

13.2.1 tcpdump工具

-i选项后面跟设备名称

-nn让第三列和第四列显示成“ip+端口号”的形式,不加-nn选项则显示“主机名+服务名称”

-c指定抓包数量,抓够了自动退出

 linux监控系统状态,抓包工具,linux网络相关

 

 

回车之后会一直刷屏,刷屏越快说明网卡上的数据包越多。我们只需要关注第三列和第四列,他们显示的信息为哪一个ip+端口号在连接哪一个ip+端口号

 

-c指定抓包数量:

 linux监控系统状态,抓包工具,linux网络相关

 

 

指定只抓22端口的包:

 linux监控系统状态,抓包工具,linux网络相关

 

 

指定抓tcp的包,但是不要22端口的:

 linux监控系统状态,抓包工具,linux网络相关

 

 

只抓22和53端口的包:

 linux监控系统状态,抓包工具,linux网络相关

 

 

 

13.3 linux网络相关

13.3.1 用ifconfig命令查看网卡ip

ifconfig后面不加选项和参数时,只打印当前网卡ip的相关信息。ifconfig命令需要安装net-tools。如果linux上面有多个网卡,重启某一个网卡可以使用命令:

 linux监控系统状态,抓包工具,linux网络相关

 

 

ifdown为停用网卡,ifup为启动网卡。如果我们远程登陆服务器使用命令ifdown,后面的ifup可能不会运行。会导致断网无法连接服务器。所以尽量使用systemctl restart network来重启网卡。(service network restart)

 

13.3.2 给一个网卡设定多个ip

设置过程如下:

 linux监控系统状态,抓包工具,linux网络相关

 

 

要加上转义字符\把:转义,不然无法识别,然后编辑这个配置文件

 linux监控系统状态,抓包工具,linux网络相关

 

 

改一下NAME,DEVICE,IPADDR,设置完毕重启网卡。查看网卡ip

 linux监控系统状态,抓包工具,linux网络相关

 

 

13.3.3 查看网卡连接状态

 linux监控系统状态,抓包工具,linux网络相关

 

 

这里显示link ok,说明网卡为连接状态。如果显示no link,说明网卡坏了或者没有连接网线。

除此之外,ethtool命令也可以查看网卡状态,如果网卡没有连接,最后一行link detected显示为no。

 linux监控系统状态,抓包工具,linux网络相关

 

 

13.3.4 更改主机名

使用hostname命令可以查看主机名

 linux监控系统状态,抓包工具,linux网络相关

 

 

使用如下命令更改主机名:

 linux监控系统状态,抓包工具,linux网络相关

 

 

 

13.3.5 设置DNS

DNS是用来解析域名的,平时访问一个网站都是直接输入一个网址,而dns把这个网址解析到一个ip。在linux下设置dns只需要把dns地址写到配置文件/etc/resolv.conf中即可。

 linux监控系统状态,抓包工具,linux网络相关

 

 

在定义网卡配置文件时,有一行是DNS1=114.114.114.114,就是因为这行配置,该配置文件里就有了nameserver的ip地址。resolv.conf有它固定的格式,一定要写成nameserver ip的格式。建议写两个或多个nameserver,系统默认使用第一个nameserver去解析域名,第一个解析不成功会使用第二个。

如果只是临时修改DNS IP地址,就直接修改/etc/resolv.conf;如果是永久生效的话,就要修改网卡的配置文件。

在linux下还有一个特殊文件/etc/hosts也能解析域名,我们需要在里面手动添加ip和域名这些内容。它的作用是临时解析某个域名,非常有用。

 linux监控系统状态,抓包工具,linux网络相关

 

 

在下面添加一行192.168.150.2 www.baidu.com。保存文件后再ping一下www.baidu.com就能连接到192.168.150.2了。

 

关于hosts文件,有几点需要注意:

l  一个ip后面可以跟多个域名,可以是几十个甚至上百个。

l  每一行只能有一个ip,也就是说一个域名不能对应多个ip。

l  如果有多行中出现相同的域名(对应的ip不一样),会按照最前面出现的记录来解析。

 

linux监控系统状态,抓包工具,linux网络相关

上一篇:Django中的模板


下一篇:27、C++ Primer 4th 笔记,模板与泛型编程(2)