0413平常运维(1、监控io性能,查看网络状态、抓包)w、vmstat、top、sar、nload、free、ps

任务列表:
10.1 使用w查看系统负载
10.2 vmstat命令
10.3 top命令
10.4 sar命令
10.5 nload命令
10.6 监控io性能
10.7 free命令
10.8 ps命令
10.9 查看网络状态
10.10 linux下抓包
10.11 Linux网络相关
扩展
tcp三次握手四次挥手(重点) http://www.doc88.com/p-9913773324388.html
tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.htmlhtml

三次握手小例子 https://docs.qq.com/doc/DR3dISkdERGtac2VDlinux

 

ip命令使用ios

1. 设置和删除IPweb

ip addr add 192.168.10.10/24 dev eth0shell

ip addr show eth0express

ip addr del 192.168.10.10/24 dev eth0windows

 

2. 路由相关设置centos

ip route show缓存

ip route add default via 192.168.10.1服务器

ip route add 192.168.5.0/24 dev eth0

ip route del 192.168.10.1

 

另外用route命令来管理路由:

a、网络路由

route add -net 192.168.1.0/24 gw 172.16.1.106

b、主机路由

route add -host 192.168.1.110 gw 172.16.1.106

c、默认路由

route add default gw 172.16.1.106

route add -net 0.0.0.0 gw 172.16.1.106

d、删除路由

route del -host 192.168.1.110

route del -net 192.168.1.0/24

3. 显示网络统计数据

ip -s link

ip -s -s link ls eth0

 

3. 中止开启网卡

ip link set eth0 down

ip linke set eth0 up

 

更改网卡名字

ip link set ens37 name eth1

永久保存:https://blog.csdn.net/jyusun/article/details/71513086

 

 

 

w/uptime  查看系统负载

第一行显示系统时间、 up系统当前运行时间、目前登陆用户(能够从下面看到,tty1终端登录,pts/0远程登录)

系统负载 load average: 0.08, 0.14, 0.11
这三个数字分别表示1分钟、5分钟、15分钟以内,系统的负载值分别是多少,单位时间段内,使用cpu的活动的进程有多少个
1分钟内使用cpu的活动的进程有多少个
负载值低时,表明系统目前负载较小,要看有几颗逻辑CPU,不是物理CPU。


FROM:表示从哪里来
L0GIN@:表示登录时间 
IDLE:空闲了多长时间 
JCPU、PCPU:使用了CPU的时间 
WHAT:命令

w

 uptime     和w命令的第一行相同,用w便可

cat /proc/cpuinfo    查看CPU信息

查看processor的值,即表明本机的cpu核数,若是是0,表明有1颗,若是是1,表明有2颗,以此类推

查看physical id  数,表明本机物理cpu,若是是1,表明有2个物理cpu

若是cpu核数是8,即processor为7时,那么负载值不该大于8,均可以正常运行,5分钟平均负载和15分钟平均负载同理,若是负载大于8,那么表示cpu核数不够用了

lscpu  也能够查看cpu信息

vmstat命令

vmstat监控系统状态

 vmstat 1  每一秒显示一次系统状态(动态显示)不须要时使用Ctrl+c中止

vmstat 1 5   每一秒显示一次系统状态,只显示5次,5次后自动终止

须要关注的点:
一、r=run  表示有多少进程处于运行状态
当进程有多个时,而CPU只有一个,那么就须要轮流使用,在一个时刻只容许一个进程在使用cpu运行
二、b=block  有多少个进程在等待
三、swpd 当内存不够时,系统能够拿出内存中的一部分数据临时放到swap交换分区里去。若是swpd值一直变换时,说明交换分区和内存在频繁的交换数据,表明内存不够了
四、si/so  与swpd存在关联
si(i表明in,单位是kb)有多少k的块数据,从swap进入到内存中 so(o表明out)有多少k的块数据,从内存中进入到swap 若是swpd在频繁变换时,这两个值确定也会变更。
五、bi/bo   与磁盘存在关联
bi有多少k的数据从磁盘进入到内存中 ,读的数据量是多少,从磁盘里读
bo有多少k的数据从内存写入到磁盘,写的数据量是多少,从磁盘里写,写入到磁盘里去
这两个数值很大时,说明磁盘在频繁的读写。跟CPU和内存比,磁盘是很慢的,若是很频繁的读写数据会致使b列的增长。由于有不少进程 在等待磁盘。
六、us用户级别,数字不会超过100,百分比
表示用户的资源占用CPU的百分比,若是数字长时间大于50,说明系统确定资源不够
七、sy系统自己的一些进程、服务,占用资源的百分比
八、id 空闲
us+sy+id=100%
九、wa=wait有多少进程在等待CPU的百分比

top命令

top查看进程使用资源状况
top 3秒显示一次,动态的

第一行:和w命令第一行相同
第二行:有多少个任务,有多少个正在运行的进程,有多少个休眠的进程,有多少个中止的进程,有多少个僵尸进程zombie (主进程被意外终止的)
第三行:CPU百分比,平时须要多关注us,若是us很高,系统负载将会特别大。st表示被偷走的cpu,若是服务器作了虚拟化,下面有一些虚拟机,就会偷走一些cpu。
第四行:KiB Mem表示物理内存,须要关注。free剩余空间
第五行:KiB Swap表示交换分区 

下面默认按照%CPU排序,占用高的在上。
RES:物理内存大小,单位是字节。
PID:进程号,可使用它杀死进程,kill+pid号杀死进程

想要按照内存占用%MEM大小排序,按大写的m(M)键 ,恢复按照%CPU排序,按大写p(P)键 
查看全部CPU使用率,按1,能够来回切换 
退出,按q

top -c  能够看到具体的进程命令,全局的路径,看的更详细

top -bn1  静态的显示,一次性把全部的信息所有输出出来,适合在写脚本时实用

sar命令

sar          Linux系统里的瑞士军刀

 

没有的话须要先安装:    yum install -y sysstat

安装完成后报错:没法打开 /var/log/sa/sa14: 没有那个文件或目录 

缘由是 由于sar 命令不加具体的选项和参数,会默认调用系统里保留的一个历史文件/var/log/sa ,sar生成的历史文件存放目录,每10分钟抓取一遍系统状态,此时尚未生成,10分钟后会生成

sar -n DEV 1 10  查看网卡流量  1是每一秒钟显示一次,10是显示10次

用法和vmstat相似,后面跟1 10表示每隔1秒显示一次,显示10次

第一列:时间

第二列:IFACE网卡名字

第三列:rxpck/s接受到的数据包,单位个数,几千正常,上万就不正常

第四列:txpck/s发送出去的数据包

第五列:rxkB/s接收的数据量,单位KB

第六列:txkB/s发送的数据量

第七列:rxcmp/s不须要关注

第八列:txcmp/s不须要关注

第九列:rxmcst/s不须要关注

 

 

查看前一天的历史数据据 sar -n DEV -f /var/log/sa/sa14   sa14 是14号生成的,因此以14结尾

/var/log/sa里保留的文件最多为1个月,因此文件为sa01 -sa31

sar -q  查看系统负载

sar -q -f /var/log/sa/sa14  能够查看14号的负载

sar -b  查看磁盘读写

 

nload命令

没安装的话使用前须要先安装

yum install -y epel-release  若是epel-release安装了才能够继续安装nload

yum install -y nload  安装nload  

 

直接运行nload    动态的显示网卡实时速度的一个页面

第一行显示网卡名字、IP、网卡其中之一(1/2),能够按右方向键切换网卡,按q退出

Incoming进来带宽

Outgoing出去带宽

curr当前值

Avg平均值

Min最小值

Max最大值

Ttl总和

 

 

监控io性能

一、 iostat

在安装sysstat包时,默认会安装iostat包,和sar在同一个包里

 

和vmstat相似,没一秒执行一次,执行两次

iostat -d  只查看Device 相关的信息,Device 须要着重看,看读写速度

iostat -x

重要指标:%util

表示磁盘的使用百分比,若是这个数字很大,好比长期超过90%,说明磁盘很是忙,读写确定也会很大。若是读写不大,但该列值很大, 就说明硬盘有问题。

iotop  当磁盘io很忙,可使用iotop查看,得到读写的进程是哪一个,按IO使用率大小排序

yum install -y iotop   没安装的话先安装

和top很像,动态显示

SAWPIN  交换分区,交换到内存里去

 

 free命令

用来查看内存和swap使用状况

centos6和centos7显示的内容是不同的,7更加直观,第一行是说明,第二行是内存使用状况,第三行是swap使用状况,咱们主要关注第二行,内存使用状况。

第一列:total内存总大小,单位KB

第二列:used内存已用大小,着重关注此列

第三列:free内存剩余大小

第四列:shared共享大小

第五列:buff(缓冲)/cache 缓存)

关于buffer和cache咱们能够这样简单区分:

0000(磁盘)-->内存(cache)--> CPU  即,从磁盘读出来后先放到内存里,而后CPU再到内存里去取这部分数据,这里的内存叫作cache

cpu(00000)--> 内存(buff)--> 磁盘 即,cpu产生的数据首先写入到内存中,而后再慢慢写到磁盘里,这部份内存叫作buffer

正常状况下内存总大小=已有+剩余,这里是并不对等的,由于在Linux系统里,会有一部分空间给buff/cache

第六列:available 包含free和buffer/cache剩余部分,关注available,这个数字是真正剩余的物理内存大小

 

公式:total=used+free+buff/cache

指定单位为M时,使用free -m

指定单位为G时,使用free -g或者free -h 在后面显示单位

 

 free -b   单位为b

ps命令

ps命令查看系统进程

ps aux 静态的,一次性把系统当前全部进程列出来

 

USER用户

PID进程ID,杀死进程时能够用到kill PID,有时候这样并不能终止进程,须要加-9选项,即kill -9 PID,但这样有点暴力,严重时会丟失数据,尽可能不要使用。

STAT进程状态,分为如下几种

D 不能中断的进程 

R 正在运行,或在队列中的进程

S 处于休眠状态的进程

T 中止或被追踪的进程

Z 僵尸进程

W 进入内存交换(从内核2.6开始无效)

X 死掉的进程

< 高优先级进程

N 低优先级进程

L 内存中被锁了内存分页        

s  主进程,包含子进程

l 多线程进程

+ 前台进程

 

查看进程所在目录     Is -I /proc/进程的PID/

ps aux |grep  进程名   检测进程有没有运行的方法

 ps -elf  相似于ps aux,把系统全部进程全列出来

ps -eLf(查看线程)


 

 查看网络状态    netstat  

 netstat -lnp   查看监听端口   须要关注上面的端口部分

netstat -an   查看tcp/ip 全部的链接状态

 netstat -ltnp    只查看tcp的监听端口

netstat -ltunp   查看tcp和udp的监听端口

小技巧:查看全部状态数字

netstat -an |awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'

ESTABLISHED若是很大,说明系统很忙,咱们能够理解为并发链接数,并发就是  同一时间有多少个客户端在链接

ss -an和netstat殊途同归,显示tcpip状态

ss -an |grep -i listen

查看listen的状态,不会显示进程名称

 netstat -lntp  netstat 显示

 

  

Linux下抓包

一、tcpdump工具 .

安装 yum install -y tcpdump

tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表如今灵活的表达式上。不带任可选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会中止抓包。

命令格式:

tcpdump [ -DenNqvX ] [ -c count ][ -F file ][ -i interface ] [ -r file ]

[ -s snaplen ] [ -w file ] [ expression ]

抓包选项:

-c:指定要抓取的包数量。注意,是最终要获取这么多个包。例如,指定"-c 10"将获取10个包,但可能已经处理了 100个包,只不过只有10个包是 知足条件的包。

-i interface:指定tcpdump须要监听的接口。若未指定该选项,将从系统接口列表中搜寻编号最小的已配置好的接口(不包括loopback接口,要 抓取loopback接口使用tcpdump -i lo),一旦找到第一个符合条件的接口,搜寻立刻结束。可使用'any'关键字表示全部网络接口。

-n:对ip地址以数字方式显式,不然显示为主机名,也就是说-n选项不作主机名解析。

-nn:除了-n的做用外,还把端口显示为数值,不然显示端口服务名。

-N:不打印出host的域名部分。例如tcpdump将会打印’nic'而不是'nic.ddn.mil'。

-P:指定要抓取的包是流入仍是流出的包。能够给定的值为"in"、"out"和"inout",默认为"inout"。

-s len:设置tcpdump的数据包抓取长度为len,若是不设置默认将会是65535字节。对于要抓取的数据包较大时,长度设置不够可能会产生包截 断,若出现包截断, 输出行中会出现"[|proto]"的标志(proto实际会显示为协议名)。可是抓取len越长,包的处理时间越长,而且会减小tcpdump可缓存的 数据包的数量,从而会致使数据包的丢失,因此在能抓取咱们想要的包的前提下,抓取长度越小越好。

 

输出选项:

-e:输出的每行中都将包括数据链路层头部信息,例如源MAC和目标MAC。

-q:快速打印输出。即打印不多的协议相关信息,从而输出行都比较简短。

-X:输出包的头部数据,会以16进制和ASCII两种方式同时输出。

-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。

-v:当分析和打印的时候,产生详细的输出。

-vv:产生比-v更详细的输出。

-vvv:产生比-vv更详细的输出。

其余功能性选项:

-D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们均可以用于"-i"后。

-F:从文件中读取抓包的表达式。若使用该选项,则命令行中给定的其余表达式都将失效。

-w:将抓包数据输出到文件中而不是标准输出。能够同时配合"-G time"选项使得输出文件每time秒就自动切换到另外一个文件。可经过"-r"选项载 入这些文件以进行分析和打印。

-r:从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。

 

tcpdump -nn -i ens33

 tcpdump -nn -i ens33 port 22  只要端口是22的包

 tcpdump -nn -i ens33 not port 80   不要80端口的包

tcpdump -nn -i ens33 not port 80 and host 192.168.247.3   不要80端口而且host是192.168.247.3 的包

tcpdump -nn -i ens33 -c 100  只抓取100个包

tcpdump -nn -i ens33 -c 10 -w /tmp/1.cap

要有数据产生才能抓包,能够再打开一个终端产生一些数据,例如执行top命令、vmstat命令,过一会就会抓取完。

 

要查看1.cap信息,不能直接使用cat 查看        使用  tcpdump -r /tmp/1.cap  查看

二、tshark

yum install -y wireshark

使用   tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"  能够查看指定网卡80端口的web访问状况,主要针对80端口

tshark -i ens33 -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

Linux网络相关

fconfig查看网卡ip(yum install net-tools)

 

 ifconfig -a      当网卡down掉的时候,通常不会显示,加上-a会所有显示出来

ifup ens33/ifdown ens33    启用/关闭网卡

不要在Xshell里使用,在虚拟机里使用。通常在对网卡进行更改后使用,例如添加网关。也能够一块儿使用ifdown ens33 && ifup ens33,防止远程链接断掉

设置虚拟网卡

首先在网卡配置文件目录里复制一个ens33的配置文件

 cd /etc/sysconfig/network-scripts/

 cp ifcfg-ens33 ifcfg-ens33\:0    \ 脱义冒号

对新作的网卡编辑

ifdown ens33 && ifup ens33  在运行此命令从新链接下网卡

ifconfig 查看

能够在windows上Ping 192.168.247.155是否通

mii-tool ens33 查看网卡是否链接

ethtool ens33 也能够查看网卡是否链接

更改主机名 hostnamectl set-hostname  001

centos6不支持此命令,想要生效须要退出从新登陆一下

hostname  能够查看主机名

查看主机名配置文件         cat /etc/hostname

DNS配置文件/etc/resolv.conf

这是由网卡配置文件定义的,也能够临时编辑resolv.conf文件设置dns2,可是重启后依然会被网卡里的配置文件覆盖

/etc/hosts文件

WindowsLinux下都有此文件,后续讲Iamp时去访问自定义域名时,就会用到此文件。假设咱们ping—个域名,会解析出他的公网IP, 可是若是咱们在hosts文件里配置此域名,就会解析到咱们配置的IP

正常ping www.qq.com

编辑hosts文件

从新ping  ,仅在本机生效

注意: 一个ip后面能够跟多个域名,可是同一个域名只能有一个ip生效

若是前面同一个域名指定了两个ip,会之后面的ip为主

 

手动增长swap

模拟一个G的磁盘空间:

dd if=/dev/zero of=/bigfile bs=1M count=1000

dd(对磁盘进行操做的工具),if(从哪里来),of(目标的文件或磁盘,此处写入到跟目录下,叫bigfile),bs(决定文件大小)=1M(即每一个块为1M),count=1000(共有1000个块),也能够写成bs=100M,count=10

 mkswap /bigfile   格式化成swap格式

chmod 600 /bigfile  更改权限

swapon /bigfile  挂载

以前的swap大小

挂载后的大小

相关文章
相关标签/搜索