有时领导会解释当天有生意,让你检查服务器,监控系统状态是否正常,这次我们需要查看哪些信息?从负载,进程,内存,网络,网卡等方面介绍如何监控>
1. w查看当前的系统负载
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
参数说明:
左起第一行显示的信息是:时间,系统运行时间,登录用户数,平均负载。
第二行开始,下面是所有行,告诉我们当前登录的信息,登录的位置,等等。事实上,在这些信息中,我们应该关注的最重要的事情是第一行中“加载平均值:”之后的三个值。
第一个值表示系统在1分钟内的平均负载值;
第二个值表示系统在5分钟内的平均负载值;
第三个值表示15分钟系统的平均负载值。
此值的含义是单位时间段内CPU活动进程的数量。
当然,值越大,服务器上的压力就越大。在正常情况下,只要不超过服务器的CPU数量,该值就无关紧要。
2. vmstat监视系统的状态
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
上面提到的w是整个系统的负载。通过查看该值,您可以知道当前系统中是否存在压力,但在何处(CPU,内存,磁盘等)存在压力。通过vmstat你可以知道哪里有压力。 vmstat命令总共打印出六个部分:procs,memory,swap,io,system,cpu。请注意r b si所以bi bo柱。
2.1,procs显示过程相关信息
r:表示正在运行并等待CPU时间片的进程数。如果CPU的数量长于CPU的数量,则CPU不够。
b:表示等待资源的进程数,如等待I/O,内存等。如果该列的值长时间大于1,则需要注意;
2.2,内存相关信息
Swpd:表示切换到交换分区的内存量;免费:当前可用内存量; buff:缓冲区大小,(将写入磁盘);
缓存:缓存大小,(从磁盘读取);
2.3,交换内存交换情况
Si:交换区域写入内存的数据量;
所以:内存写入交换区域的数据量;
2.4,io磁盘使用情况
Bi:从块设备读取的数据量(读取磁盘);
Bo:从块设备写入的数据量(写入磁盘);
2.5,系统显示收集间隔期间发生的中断次数
In:表示在某个时间间隔内观察到的每秒设备中断数;
Cs:表示每秒生成的上下文切换次数;
2.6,CPU显示cpu的使用状态
我们:显示用户花费的CPU时间百分比;
Sy:显示系统花费的CPU时间百分比; id:cpu空闲的时间百分比;
Wa:表示I/O等待占用的CPU时间百分比;
St:表示被盗的cpu百分比(一般为0,无需注意);
在上面介绍的各种参数中,我通常关注r列,b列和wa列。这三列的含义已经在顶部清楚了。 IO部分的bi和bo也是经常被引用的对象。如果磁盘压力很高,则这两列中的值将更高。另外,当两列si等的值相对较高时,当它们不断变化时,内存不足,并且内存中的数据经常被交换到交换分区中,这通常具有对系统性能有很大影响。
注意:使用vmstat检查系统状态时,通常以此形式使用。:
#vmstat 1 5
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
注意:状态每秒打印一次,总共打印5次。
3. top显示进程占用的系统资源
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
该命令用于动态监控进程占用的系统资源,每3秒更改一次。此命令的功能是将占用最高系统资源(CPU,内存,磁盘IO等)的进程置于最前端。 top命令打印大量信息,包括系统负载(loadaverage),进程数(Tasks),cpu使用情况,内存使用情况和交换分区使用情况。实际上,可以通过其他命令查看上述内容,因此使用顶部焦点查看以下过程以使用系统资源详细信息。这部分事情反映了很多事情。
PS:共享命令我经常使用top -bn1这意味着非动态打印系统资源使用,可以在shell脚本中使用:Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
top命令和top命令之间的唯一区别是它一次输出所有信息而不是动态输出。
4. sar监控系统状态
sar命令足以监视所有系统资源状态,例如平均负载,NIC流量,磁盘状态,内存使用情况等。它与其他系统状态监视工具的不同之处在于,它可以打印历史信息并显示从零点到当前时间的系统状态信息。如果您的系统上未安装此命令,请使用yum install -y sysstat(或apt-get install -y sysstat)命令进行安装。第一次使用sar命令时,您将收到错误。这是因为sar工具没有生成相应的数据库文件(它不会被不时监视,因为您不必查询库文件)。其数据库文件位于“/var/log/sa /”目录中,默认情况下保存一个月。因为这个命令太复杂了,我只介绍几个。
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
4.1。查看NIC流量sar -n DEV
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
参数说明:IFACE列表示设备名称,rxpck/s表示每秒接收的数据包数,txpck/s表示每秒发送的数据包数,rxbyt/s表示每秒接收的数据量(以字节为单位) ,txbyt/s表示每秒发送的数据量。接下来的几列不需要注意。
如果有一天您管理的服务器非常繁重,那么您应该查看NIC流量是否异常。如果rxpck/s列的值大于4000,或者rxbyt/s列大于5,000,000,则很可能它受到攻击,正常服务器NIC流量不会高于此值,除非您自己复制数据。
以上命令用于查看NIC流量的历史记录。如何不时检查NIC流量?
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
4.2。查看历史负载sar -q
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
此命令可以在过去的某个时间检查服务器的负载状态。
让我们关注它是丢包还是网络情况!
5.免费查看内存使用情况
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
只需要敲一个空闲然后按Enter键以获取当前系统的总内存大小和内存使用情况。您还可以使用-m或-g选项以M或G为单位打印内存使用情况.:Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
我通常使用free -m模式来检查内存使用情况(以兆字节为单位),系统的实际可用内存和可用内存具有以下加法和减法方法:
使用=总免费,即总数=使用+免费
实际内存使用情况:used-buffers-cached即total-free-buffers-cached
实际可用内存:缓冲区+缓存+免费
6. ps查看系统进程
监视进程,这里是一个显示系统进程的命令,主要是看是否有异常进程:
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
参数说明:
PID:进程的id,这个id非常有用。在linux中,内核管理进程依赖于pid来识别和管理某个进程。例如,如果我想终止某个进程,则有时无法杀死kill进程的pid。然后你需要添加一个-9选项来kill -9进程pid
STAT:表示进程的状态。过程状态分为以下类型(不需要记住,但要理解)
无法中断的D进程(通常是IO)
R运行过程
S已中断该过程,通常,系统中的大多数进程都处于此状态
T已停止或暂停该过程,如果我们正在运行命令,请说睡眠10如果我们按ctrl -z让他暂停,那么我们将通过ps视图显示T的状态
W似乎说在内核2.6xx之后,表明没有足够的内存页分配。
X已经死了这个过程(这似乎永远不会出现)
Z僵尸进程,不能杀,不死垃圾过程,占少量资源,但没关系。如果太多,则存在问题。一般不会出现。 <高优先级流程
N低优先级流程
L在内存分页中锁定在内存中
主要过程
l多线程进程
+表示在前台运行的进程
这个ps命令是我在工作中使用的众多命令之一,我必须掌握它。关于ps命令的使用,小编经常与管道字符一起使用来查看进程或其编号。
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
7. netstat查看网络状态
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
netstat命令用于打印网络连接状态,系统的开放端口和路由表等信息。 netstat最常用的命令是netstat -nlp(哪些端口用于打印当前系统)和netstat -an(打印网络连接状态)命令。记住它是非常有用的。Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
如果您管理的服务器是提供Web服务的服务器(端口80),那么您可以使用netstat -an | grep 80查看当前连接到Web服务的IP,然后转到netstat -an | grep 80 | wc -l查看有多少连接。
8,捕获工具tcpdump
有时,您可能需要监视网卡上的数据包,尤其是在您最初确定服务器上存在流量攻击时。此时,使用捕获工具抓取数据包,您可以知道哪个IP正在攻击您。
Linux系统的日常管理 - 监控系统状态+故障排除受到攻击
如果您没有tcpdump命令,则需要使用yum install -y tcpdump命令安装它。上述示例中的第三列和第四列中显示的信息是哪个IP +端口连接到哪个IP +端口,后一信息是数据包的相关信息。如果不理解,那没关系。毕竟,我们并不专注于网络,这里只是第三列和第四列。 -i选项后跟设备名称。如果要获取eth1 NIC包,则应遵循eth1。 -nn选项用于使第三列和第四列显示为IP +端口号,否则 - Nn显示主机名+服务名。