监控系统状态

Linux日常运维管理技巧

w/uptime 查看系统负载

w
l在这里插入图片描述
第一行显示系统时间、当前运行时间、目前登陆用户数、系统负载
load average 系统负载值 1分钟 5分钟 15分钟这三个时间段内的负载分别是多少
TTY表示登陆的方式,FROM表示登陆的IP,LOGIN@表示登陆的时间。

uptime
在这里插入图片描述

cat /proc/cpuinfo 查看cpu信息
在这里插入图片描述

processor代表CPU的核数,如果是0则是1核,以此类推。1分钟平均负载最好不要大于这个数

vmstat监控系统状态
在这里插入图片描述

vmstat 1 5 每一秒钟显示一次,显示5秒钟,查看系统瓶颈
在这里插入图片描述
r 表示有多少个进程
b 表示进程被其他原因锁死,比如网络、磁盘
swpd 内存不够的时候放到swap中
si 有多少数据从swap进入到内存的数据
so 有多少数据从内存进入到swap内存数据
bi 从磁盘读取的数据量
bo 写入到磁盘的数据量
us 表示用户进程占用CPU百分比,数据不会超过100%
sy 系统本身进程占用CPU百分比
id 空闲
us sy id相加等于100
wa 等待CPU的百分比

top命令

3秒钟刷新一次
在这里插入图片描述
第一行:和w命令输出相同
第二行:任务总计、运行中的任务、休眠中的任务、停止的任务、僵尸任务
第三行:CPU百分比,如果us很大,表示cpu负载很高
第四行:物理内存使用情况
第五行:swap空间使用情况
默认按cpu百分比排序,M 按内存排序,P 按CPU排序,按 1 显示所有CPU的情况,按 q 或者ctrl c退出top
top -c 可以查看到具体的进程命令
在这里插入图片描述
top -bn1静态的显示所有的信息
在这里插入图片描述

sar命令 linux系统的瑞士军刀

yum install -y sysstat 安装sar
每十分保存一次系统的状态,存在/var/log/sa,saxx是一个二进制的文件,sarxx可以直接cat
在这里插入图片描述
sar -q 系统负载
在这里插入图片描述
sar -f /var/log/sa/saxx 历史文件
在这里插入图片描述
sar -n DEV 1 10 查看网卡流量
在这里插入图片描述
rxpck/s 每秒接收到的数据包 几千的量正常
txpck/s 每秒发送数据包数量
rxkb/s 每秒接收数据大小,单位kb
txkb/s 每秒发送数据大小,单位kb

sar -b 磁盘读写
在这里插入图片描述

nload命令 动态显示网卡当前状态,按q退出查看

yum install epel-release
yum install -y nload
在这里插入图片描述

iostat监控磁盘状态

安装包sysstat中带有iostat
在这里插入图片描述
iostat -x 1 磁盘使用
在这里插入图片描述
%util 等待IO时间

iotop 磁盘使用动态显示磁盘IO状态,按q退出查看

yum install -y iotop
在这里插入图片描述

free 查看内存使用情况

free -m / -g / -h
在这里插入图片描述
buffer/cache区别 缓冲/缓存,系统会预留内存空间给buffer和cache
数据(磁盘)–>内存(cache缓存) --> cpu
cpu --> 内存(buffer缓冲) --> 数据(磁盘)
total =used+free+buffer/cache
avaliable包含free和buffer/cache的剩余部分

ps命令 静态的显示当前进程情况

ps aux
在这里插入图片描述
ps -elf
在这里插入图片描述
杀死进程使用kill PID
查看命令所在目录:ls -l /proc/命令pid/
STAT状态说明
D 不能中断的进程
R run状态的进程
S sleep状态的进程
T 暂停的进程
Z 僵尸进程
< 高优先级进程
N 低优先级进程
L 内存中被锁定了内存分页
s 主进程
l 多线程进程
+ 前台进程
ps aux |grep 进程名称 检查某个进程是否运行

netstat命令 查看网络状态

netstat -lnp 查看监听端口
在这里插入图片描述
netstat -an 查看系统的网络连接状况
在这里插入图片描述
netstat -lntp 只看出tcp端口监听在这里插入图片描述
小技巧,查看所有状态数
netstat -an | awk ‘/^tcp/ {++sta[NF]} END {for(key in sta) print key,"\t",sta[key]}’
ESTABLISHED 并发数,小于1000
ss -an 和netstat类似,但查询到的监听不会显示进程名称
在这里插入图片描述

linux下抓包

tcpdump 抓包工具
yum install -y tcpdump
tcpdump -nn -i ens33 指定网卡
在这里插入图片描述
-c 指定要抓去包的数量
-i 指定要抓取的网卡名称
-nn 以数字显示ip及端口号
tcpdump -nn port 80 指定端口
tcpdump -nn not port 22 and host 192.168.0.100
tcpdump -nn -c 100 -w 1.cap 抓取100个并存到1.cap中
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访问情况

linux网络相关

ifconfig 查看网卡ip
yum install -y net-tools
ifconfig -a 可以查看到所有的网卡
在这里插入图片描述
ifdown 网卡名/ifup 网卡名 启用或关闭网卡
ifdown en33 && ifup ens33
设定虚拟网卡
首先复制一个ens33的配置文件
在这里插入图片描述
配置虚拟网卡的IP
在这里插入图片描述
重启网卡
在这里插入图片描述
测试网络连接
在这里插入图片描述

查看网卡是否连着网线

mii-tool 网卡名
ethtool 网卡名
在这里插入图片描述

更改主机名

hostnamectl set-hostname 主机名 重启后失效
cat /etc/hostname 主机名配置文件
在这里插入图片描述
DNS配置文件 /etc/resolv.conf
在这里插入图片描述
/etc/host
一个域名可以指向多个IP,但生效的是第一个。
在这里插入图片描述

课堂笔记

三次握手小例子:
在红军时代,A连和B连分在左右翼,约定在几时几分一同发起打击。这个几时几分的信息就需要人工通过通讯员来走路传递。所以A连指挥官派出通讯员。
这是第一次。
假设通讯员到达了B连,并且告知了B连指挥官几时几分,B连指挥官一定会让通讯员再回去通知A连指挥官,可怜的通讯员只能冒着危险返回A连,因为A连指挥官看不到通讯员返回的话,不知道几时几分这个信息到底传达到了B连没有。
这是第二次。
现在B连指挥官开始担心通讯员是否回到了A连,如果没回到,B连指挥官会设身处地的想一想A连指挥官见不到返回的通讯员,肯定是不敢打的,所以B连指挥官最盼望的是再次看到通讯员出现在B连,所以A连指挥官会让通讯员再回B连一次。
这是第三次。
这就是三次握手
在这里插入图片描述
由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。
第一次挥手:
Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
第二次挥手:
Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
第三次挥手:
Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
​CLOSED:初始状态,表示TCP连接是“关闭着的”或“未打开的”。
LISTEN :表示服务器端的某个SOCKET处于监听状态,可以接受客户端的连接。
SYN_RCVD :表示接收到了SYN报文。在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat很难看到这种状态,除非故意写一个监测程序,将三次TCP握手过程中最后一个ACK报文不予发送。当TCP连接处于此状态时,再收到客户端的ACK报文,它就会进入到ESTABLISHED 状态。
SYN_SENT :这个状态与SYN_RCVD 状态相呼应,当客户端SOCKET执行connect()进行连接时,它首先发送SYN报文,然后随即进入到SYN_SENT 状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT 状态表示客户端已发送SYN报文。
ESTABLISHED :表示TCP连接已经成功建立。
FIN_WAIT_1 :这个状态得好好解释一下,其实FIN_WAIT_1 和FIN_WAIT_2 两种状态的真正含义都是表示等待对方的FIN报文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET进入到FIN_WAIT_1 状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2 状态。当然在实际的正常情况下,无论对方处于任何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1 状态一般是比较难见到的,而FIN_WAIT_2 状态有时仍可以用netstat看到。
FIN_WAIT_2 :上面已经解释了这种状态的由来,实际上FIN_WAIT_2状态下的SOCKET表示半连接,即有一方调用close()主动要求关闭连接。注意:FIN_WAIT_2 是没有超时的(不像TIME_WAIT 状态),这种状态下如果对方不关闭(不配合完成4次挥手过程),那这个 FIN_WAIT_2 状态将一直保持到系统重启,越来越多的FIN_WAIT_2 状态会导致内核crash。
TIME_WAIT :表示收到了对方的FIN报文,并发送出了ACK报文。 TIME_WAIT状态下的TCP连接会等待2*MSL(Max Segment Lifetime,最大分段生存期,指一个TCP报文在Internet上的最长生存时间。每个具体的TCP协议实现都必须选择一个确定的MSL值,RFC 1122建议是2分钟,但BSD传统实现采用了30秒,Linux可以cat /proc/sys/net/ipv4/tcp_fin_timeout看到本机的这个值),然后即可回到CLOSED 可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。
CLOSING :这种状态在实际情况中应该很少见,属于一种比较罕见的例外状态。正常情况下,当一方发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING 状态表示一方发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?那就是当双方几乎在同时close()一个SOCKET的话,就出现了双方同时发送FIN报文的情况,这是就会出现CLOSING 状态,表示双方都正在关闭SOCKET连接。
CLOSE_WAIT :表示正在等待关闭。怎么理解呢?当对方close()一个SOCKET后发送FIN报文给自己,你的系统毫无疑问地将会回应一个ACK报文给对方,此时TCP连接则进入到CLOSE_WAIT状态。接下来呢,你需要检查自己是否还有数据要发送给对方,如果没有的话,那你也就可以close()这个SOCKET并发送FIN报文给对方,即关闭自己到对方这个方向的连接。有数据的话则看程序的策略,继续发送或丢弃。简单地说,当你处于CLOSE_WAIT 状态下,需要完成的事情是等待你去关闭连接。
LAST_ACK :当被动关闭的一方在发送FIN报文后,等待对方的ACK报文的时候,就处于LAST_ACK 状态。当收到对方的ACK报文后,也就可以进入到CLOSED 可用状态了。

ip命令使用

  1. 设置和删除IP
    ip addr add 192.168.10.10/24 dev eth0
    ip addr show eth0
    ip addr del 192.168.10.10/24 dev eth0

  2. 路由相关设置
    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

  1. 停止开启网卡
    ip link set eth0 down
    ip linke set eth0 up

更改网卡名字
ip link set ens37 name eth1
永久保存:https://blog.csdn.net/jyusun/article/details/71513086

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值