Day30 监控系统状态(二)

喜你入骨 提交于 2019-11-30 20:55:22

监控io性能

  • 介绍: 之前介绍的许多关于CPU负载的命令,其实io(磁盘)对于我们也很重要。
    下面要介绍的命令就是关于监控io性能的命令
  • 选项: iostat -x 1

表示逐秒显示磁盘状况
%util为磁盘使用占用CPU的时间比。一个进程写入磁盘时,cpu会等待写入,此时所占地用的时间就是%util 当%utl数字过大时,说明你的硬盘可能需要更换了

  • 示例:

  • 命令iotop 磁盘使用

命令free

  • 介绍
    用于查看当前系统的总内存大小以及使用情况。Centos7系统的比6的显示要简介,但是大体上内容一致
  • 选项
    free
    free -m或-g:表示指定数据的单位MB或GB free -h:会给数据加上单位符号,使其更加直观
  • 示例
[root@centos001 ~]# free               total        used        free      shared  buff/cache   available  //第一行 Mem:        1008152      113972      558772        6888      335408      709100 Swap:       2097148           0     2097148 [root@centos001 ~]# free -m               total        used        free      shared  buff/cache   available Mem:            984         111         545           6         327         692 Swap:          2047           0        2047 [root@centos001 ~]# free -h               total        used        free      shared  buff/cache   available Mem:           984M        111M        545M        6.7M        327M        692M Swap:          2.0G          0B        2.0G 
  • 解释
    • 第一行:
      total:内存总大小
      used:真正使用的实际大小
      free:剩余物理内存大小(没有分配,纯剩余)
      shared:共享内存大小(不重要)
      buff/chach:分配给两者的总共内存有多大 available:系统可使用的内存有多大,它包含了free。 linux系统为了让应用跑的更快,会预先分配一些内存给某些应用使用,虽然这部分内存并没有真正的使用,但也已经分配出去了。然而,当另外的一个服务要使用更多内存时,是可以把这部分拿出来使用的。所以没有占用的buffer/cache加上free就是availble
    • buffer/cache区别
      举栗:数据经过CPU计算,即将写入磁盘,这是用的内存叫buffer;
      CPU要计算是,需要把数据从磁盘中读出来,临时先放到内存中,这部分就是cache。
    • 公式:total=used+free+buff/cache
      一般来说内存总大小等于。使用内存与剩余内存只和,但是这里不一样。

ps命令

  • 介绍
    系统管理员一定要知道你所管理的系统都有那些进程在运行,ps命令能够检查某一个进程是否在运行 ​
  • 选项
    ps aux :列出所有进程,相当于windos里的任务管理器
    ps -elf:基本等于aux
  • 主要用法 如:ps aux | grep nginx 加管道符后面跟进程的名字,意为检查某个进程是否在运行或它的数量
    在使用grep命令查询命令数量时,其本身也算一个命令,所以要减一

-进程参数

  • 参数介绍
    pid:表示进程的id,在用kill命令杀死进程的时候能用到
    STAT:表示进程的状态。(有以下几种)
    • D 不能中断的进程
      R run状态的进程
      S sleep状态的进程
      T 暂停的进程
      Z 僵尸进程
      < 高优先级进程,CPU会优先处理
      N 低优先级进程
      L 内存中被锁了内存分页。了解就ok
      s(小写) 主进程
      l 多线程进程
      +前台进程,比如在当前终端执行的ps aux 就是前台进程
  • 线程和进程的区别
    1 进程里包含了线程,线程是进程的子单元
    2 同一个进程下的线程全部共享相同的内存,而进程之间内存相互隔离。

用 netstat 命令查看网络状态

  • 介绍:该命令主要用于于打印网络连接状况、系统所开放的端口、路由表等信息。
  • 主要用法:
    netstat -lnp 查看监听端口
    netstat -an 查看系统的网络连接状况
    netstat -lntp 只看出tcp的,不包含socket
    ss -an 和nestat异曲同工,类似但不会显示进程的名字
  • 示例

  • 扩展用法:可以查看所有状态的数字
    ESTABLISHED不大于1000时为正常,大于1000说明系统很忙 有被攻击的风险
netstat -an | awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}' 

抓包工具tcpdump

  • 介绍:
    有时想看某个网卡上有哪些数据包,尤其是当发现服务器上有流量攻击时,使用抓包工具抓取数据后就知道是哪些ip在攻击了
    默认没有安装命令,要用yum安装
  • 用法
    tcpdump -nn 表示让示例中的34列显示成(ip+端口号);不加-nn选项则显示(主机名+服务名称)
    tcpdump -nn -i ens33
    tcpdump -nn port 80 指定抓包端口
    tcpdump -nn –I eht0 not port 22 排除法
    tcpdump -nn not port 22 and host 192.168.0.100 增加条件 指定ip
    tcpdump -nn -c 100 -w 指定抓包的数量,并自动退出
    tcpdump -nn -c 100 -w 1.cap指定抓包的长度和个数并保存
  • 示例

  • 扩展 :
    查询指定网卡80端口的一个web访问情况 。相当于一个访客日志,能够知道访客的来源,访问了什么链接
    安装命令 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 

扩展

tcp三次握手四次挥手
http://www.doc88.com/p-9913773324388.html
tshark几个用法:
http://www.aminglinux.com/bbs/thread-995-1-1.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!