日常运维

w 命令:查看系统负载

uptime命令也:可以显示负载信息 跟w第一行一样

 

第一行从左到右依次表示当前时间、系统已运行时间、登录用户数(终端登录显示为tty1,远程登录显示为pts/0)、平均负载(每1分钟、每5分钟、每15分钟)主要是注意第一个负载值,值越大说明服务器压力越大。一般情况下,这个值不要超过服务器的逻辑cpu数量就没有关系。

查看服务器的逻辑cpu

 

cat /proc/cpuinfo 0代表1个

日常运维_第1张图片

 

一个逻辑cpu,那么每分钟的负载值为1是最理想的,也就是每个进程有占用一个逻辑cpu是最合适的,大于1就说明cpu不够用了 需要查找一下原因。

 

 

vmstat命令:监控系统状态 cpu 内存 磁盘等

vmstat 1 显示的信息每一秒打印一次,按下ctrl +c 结束 vmstat 1 5 每一秒钟显示一次 ,显示5次后结束

日常运维_第2张图片

各项信息的意思:

1. r(run):表示运行或等待cpu时间片的进程数。等待cpu时间片不是说这个进程没有运行,实际上某一时刻1个cpu只能有一个进程占用,其他进程只能处于等待状态,这些等待cpu资源的进程依然是运行状态。如果该数值长期大于逻辑cpu的个数,那么就说明cpu资源不够用 了

2. b(block):表示等待资源的进程数,这个资源指的是I/O、内存、网速等资源。这个数值长期大于1,那么也是需要关注的

3. swpd :表示切换到交换分区中的内存数量。当内存不够的时间,才会将数据临时放到交换分区中。如果该数值在频换的变化,那么内存与交换分区在进行频繁的读写,那么也就说明内存不够了。如果这个数值在变化,那么si与so肯定也是有变化的。

swap显示内存的交换情况

4. si :表示由交换分区写去到内存的数据量。单位为KB

5. so:表示由内存写入到交换分区的数据量

io显示磁盘的使用情况

6. bi :表示从磁盘读取数据量的多少(读磁盘)。单位KB

7. bo:表示从磁盘写入数据量的多少(写磁盘)

如果这2个数值在频换的变化,表示磁盘在频换的读写。磁盘的读写速度比较慢,肯定会影响b列数值的变化。

8. us:表示用户级别(如:网站、mysql)占用cpu资源的时间百分比。如数值长期大于50,也说明cpu资源不够了。

9. sy:表示系统本身占用cpu资源的时间百分比

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

us+sy+id=100%

11. wa:表示I/O等待所占用的cpu的时间百分比。数值也很大,说明cpu不够用

12. st:表示被偷走的cpu资源(进行过虚拟化后,一些子机会占用cpu资源)

 

 

top 命令:查看进程占用的系统资源。

默认情况是是使用%cpu来排序。

按大写的M来用内存排序,切换为%cpu排序按大写的P

数字1显示所有CPU的使用情况。

 

日常运维_第3张图片

第一行与w命令查看到的信息是一样的

第二行:

Tasks :总进程数

runing:正在运行的进程数

sleeping:正在处于休眠状态的进程数。

stopped:已经停止的进程数

zombie:僵尸进程

第三行是cpu百分比。需要关注的是us。系统负载可以很高,%us

可能很低或是0%。但是当%us很高的话,那么系统负载肯定很高。

Kib MeM :内存的使用情况。总大小、剩余、已使用、写入磁盘/从磁盘中读取的缓存大小

Kib Swap :交换分区的使用情况

 

top -c 命令可以查看到具体的命令

 

日常运维_第4张图片

top -n1 静态的一次性显示所有的信息 写脚本时使用。

PID可以用来杀死进程 kill -9 PID杀死进程

 

 

sar命令:监控系统状态

 

用sar命令几乎可以监控系统所有的资源状态。它的优点是可以打印历史信息,可以显示当天从零点到当前时刻的系统状态信息。

yum install -y sysstat 安装sar命令

sar 命令不加具体的选项和参数会去调用系统里面保留的历史文件,/var/log/sa就是保存的sar生成的历史文件的目录。sar的特性每10分钟会把系统的状态保存一份到该目录下。

 

10分钟后会生成一个二进制文件

 

 

查看网卡流量

sar -n DEV 1 3(每1秒显示一次 共3次)

 

日常运维_第5张图片

 

第一行表示时间

第二行表示网卡名

第三行表示接收到的数据包 用个表示

第四行表示发送出的数据包 用个表示

第五行表示接收到的数据量 单位KB

第六行表示发送出的数据量 单位KB

后3 行不用关注

rxpck/s →接收到数据包的数量 数据包上万或者几十万就不太正常,可能被攻击。

rxkB/s→接收到数据量

 

查看指定日期的历史数据

sar -n DEV -f /var/log/sa/sa22

 

这个目录下的历史数据最多保留一个月

 

sar -q 命令: 查看系统负载

sar -q 1 5 (1秒一次显示5次)

 

日常运维_第6张图片

 

查看历史数据

sar -q 当天的

sar -q -f /var/log/sa/sa22 指定日期

 

日常运维_第7张图片

 

查看磁盘

sar -b

日常运维_第8张图片

 

nload命令

nload 命令:查看网卡流量的

yum install epel-release 先安装epel扩展源

yum install -y nload 安装nload

直接nload命令会动态的显示网卡实时速度的页面

 

日常运维_第9张图片

第一行显示网卡名字及IP地址后面(1/2)表示有2块网卡 按→方向键可以查看第2块网卡

Curr 表示当前值

Avg 表示平均值

Min 表示最小值

Max 表示最大值

如果被攻击进来的流量Incoming的数值会很高

 

监控io磁盘性能

当系统的负载却很高,用vmstat命令查看,b列或者wa列数值比较大,那么磁盘可能有问题了

 

 

iostat命令:能更详细的查看磁盘状态

yum install -y sysstat

iostat 查看磁盘状况

iostat 1 5 每1秒1次显示5次

 

日常运维_第10张图片

 

iostat -x 查看%util 百分百使用情况

 

日常运维_第11张图片

%util表示磁盘使用有多少时间占用CPU的。CPU有一部分是给进程处理的,一部分是需要等待磁盘的读写操作的数据结果。

假如%util的数值很大,如为50%或60%,那 磁盘IO太差,那么rKB/s和wkB/s的数值也会很大。若rKB/s和wkB/s数值不大,反而是%util比较大,那么说明硬盘是有问题的

 

 

iotop命令 :查看是哪个进程磁盘读写很频繁

yum install -y iotop

iotop 查看进程使用IO%

 

日常运维_第12张图片

 

 

free 命令:查看内存使用情况

 

free -h

第一行表示说明

第二行表示内存的使用情况

第三行表示交换分区的使用情况

 

日常运维_第13张图片

total=used+free+buff/cache(系统预分配的)

total 总大小

used 已使用

free 剩余的

shared 共享的

buff(缓冲)/cache(缓存)

 

结构图

 

例:从磁盘中的把数据读出来,先放在内存(cache)里,最后到CPU。

将cpu运算后的数据,先放在内存(buff)里,然后写进磁盘

total=used+free+buff/cache

available =free+buff/cache未使用完的部分

查看真正的剩余内存应该是available下面的数字

 

 

ps命令:查看系统进程

 

ps aux 列出系统所有的进程 ps -elf 一样的功能

ps aux | grep mysql 查看某个进程

 

日常运维_第14张图片

第一行显示信息的含义

第一列 进程用户名

第二列 进程的ID 杀死进程时 kill -9 pid 每个进程在/proc/都有以PID数字命名的目录 查看 ls -l /proc/PID/

第三列cpu百分比

第四列 内存百分比

第五列 虚拟内存(VSZ)

第六列 物理内存 (RSS)

第七列 tty 终端名

第八列 STAT 进程的状态

第九列 START 启动时间

第十列 TIME 运行时间

第十一列 COMMAND 命令名

 

STAT :表示进程的状态,进程状态分为以下几种(不要求记住,但要了解)

D 不能中断的进程(通常为IO)

R 正在运行中的进程

S 已经中断的进程,通常情况下,系统中大部分进程都是这个状态

T 已经停止或者暂停的进程,如果我们正在运行一个命令,比如说 sleep 10 如果我们按一下ctrl -z 让他暂停,那么我们用ps查看就会显示T这个状态

W 这个好像是说,从内核2.6xx 以后,表示为没有足够的内存页分配

X 已经死掉的进程(这个好像从来不会出现)

Z 僵尸进程,杀不掉,打不死的垃圾进程,占系统一小点资源,不过没有关系。如果太多,就有问题了。一般不会出现。

< 高优先级进程

N 低优先级进程

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

s 主进程

l 多线程进程

+ 代表在前台运行的进程

 

 

 

netstat 命令:查看网络状态

 

netstat -lnp 查看监听端口

 

日常运维_第15张图片

socket 文件:同一台服务器2个进程间通信

 

 

netstat -an 查看tcp/udp网络状态 ss -an 一样只是不显示进程名

 

日常运维_第16张图片

 

netstat -ltnp 只查看tcp网络状态

netstat -ltunp 查看tcp和udp 网络状态

日常运维_第17张图片

 

查看所有状态的数值

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

 

ESTABLISHED这个的数值,如果很大,说明系统很忙

网站并发连接数:有多少客户端同时连接这台服务端进行通信

 

tcpdump 抓包工具

如果想看一下某个网卡上都有哪些数据包,尤其是当你初步判定你的服务器上有流量攻击。这时,使用抓包工具来抓一下数据包,就可以知道有哪些IP在攻击你了。。

 

yum install -y tcpdump 安装命令

tcpdump -nn -i ens33

-i 选项后面跟设备名称或指定网卡。

-nn 选项的作用是让第3和第4列显示成“IP+端口号”的形式,如果不加-nn选项则显示“主机名+服务名称”

 

日常运维_第18张图片

 

tcpdump -nn -i ens33 -c 20 :指定抓包数量 加-c 选项,抓包20次后自动停止

tcpdump -nn -i ens33 port 22 :指定抓包端口为22

 

tcpdump -nn -i ens33 port 22 and port 80 :指定在哪2个端口里抓包

 

tcpdump -nn -i tcp and not port 22 :指定在哪里抓包,但不要22端口的

 

tcpdump -nn -i ens33 -c 20 -w /tmp/1.txt 抓的包写进/tmp/1.txt (写脚本用)

tcpdump -r /tmp/1.txt 查看文件里的数据流

 

 

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"

显示的信息类似于Web访问日志。可以查看到什么ip访问网站上的什么连接

 

 

Linux网络相关

yum install -y net-tools 安装命令

ifconfig 显示网卡信息 (ip addr 一样)

 

日常运维_第19张图片

 

ifconfig -a 当网卡没有ip地址时,使用ifconfig是不会显示网卡的信息。加上-a选项后,也能查看到网卡的信息。

 

ifdown ens33(网卡名)用来关闭网卡 远程连接时不要使用 关闭后需要去服务器上开启

ifup ens33 开启网卡

ifdown ens33 && ifup ens33 两个命令一起执行 关闭后开启

 

 

设置虚拟网卡

1 . 先进入到网卡配置文件所在的目录里

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens33\:0

 

日常运维_第20张图片

修改 NAME=ens33:0

DEVICE=ens33:0

IPADDR=192.168.217.130

DNS1和GATEWA也可以去掉因为另一个网卡已经设置了

 

日常运维_第21张图片

重启网卡看是否多一个网卡

 

日常运维_第22张图片

 

 

查看网卡连接状态

mii-tool 网卡名 显示link ok 就是连接

 

也可以使用ethtool ens33 查看最后的 Link detected: yes 表示连接

 

更改主机名

hostnamectl set-hostname lioo111 修改为lioo111 centos6不支持

/etc/hostname 配置文件

 

日常运维_第23张图片

 

设置DNS

DNS是用来解析域名的,比如我们访问网址都是直接输入一个网址,而DNS把这个网址解析到一个IP

 

vi /etc/resolv.conf 临时修改dns

vi /etc/sysconfig/network-scripts/ifcfg-ens33 永久修改需要编辑网卡配置文件

 

 

hosts

 

hosts 该文件linux与Windows都存在的,访问自定义域名时会使用到该文件

vi /etc/hosts 自定义修改域名

 

保存后再 ping www.qq.com 就会访问的指定的ip了

仅在本机生效 支持一个IP 配多个域名

 

你可能感兴趣的:(日常运维)