第一章 监控知识基本概述
1.为什么要使用监控
1.对系统不间断实时监控
2.实时反馈系统当前状态
3.保证服务可靠性安全性
4.保证业务持续稳定运行
2.如何进行监控,比如我们需要监控磁盘的使用率
1.如何查看磁盘使用率 df -h
2.监控磁盘的那些指标 block、 inode
3.如何获取具体的信息 df -h|awk '//(NF-1)}'
4.获取的数值到达多少报警 80%
3.流行的监控工具
1.Zabbix
2.Lepus(天兔)数据库监控系统
3.Open-Falcon 小米
4.Prometheus(普罗米修斯, Docker、 K8s)
4.如果去到一家新公司,如何入手监控
1.硬件监控 路由器、交换机、防火墙
2.系统监控 CPU、内存、磁盘、网络、进程、 TCP
3.服务监控 nginx、 php、 tomcat、 redis、 memcache、 mysql
4.WEB 监控 请求时间、响应时间、加载时间、
5.日志监控 ELk(收集、存储、分析、展示) 日志易
6.安全监控 Firewalld、 WAF(Nginx+lua)、安全宝、牛盾云、安全狗
7.网络监控 smokeping 多机房
8.业务监控 活动引入多少流量、产生多少注册量、带来多大价值
第三章 zabbix 监控快速安装
1.配置zabbix仓库 [root@m01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm 2.安装 Zabbix 程序包,以及 MySQL、 Zabbix-agent [root@m01 ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server [root@m01 ~]# systemctl start mariadb.service && systemctl enable mariadb.service 3.创建 Zabbix 数据库以及用户 [root@m01 ~]# mysqladmin password 123456 [root@m01 ~]# mysql -uroot -p123456 MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; MariaDB [(none)]> flush privileges; 4.导入 Zabbix 数据至数据库中 [root@m01 ~]# zcat /usr/share/doc/zabbix-server-mysql-4.0.11/create.sql.gz | mysql -uzabbix -pzabbix zabbix 5.编辑/etc/zabbix/zabbix_server.conf 文件,修改数据库配置 [root@m01 ~]# grep "^[a-Z]" /etc/zabbix/zabbix_server.conf ............... DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix ............... 6.启动 Zabbix 服务进程,并加入开机自启 [root@m01 ~]# systemctl start zabbix-server.service [root@m01 ~]# systemctl enable zabbix-server.service 7.配置 Apache 的配置文件/etc/httpd/conf.d/zabbix.conf,修改时区 [root@m01 ~]# grep "Shanghai" /etc/httpd/conf.d/zabbix.conf php_value date.timezone Asia/Shanghai 8.重启 Apache Web 服务器 [root@m01 ~]# systemctl start httpd
第四章 WEB安装步骤
1.浏览器打开地址:http://10.0.1.61/zabbix/setup.php
2.检查依赖项是否存在异常
3.配置zabbix连接数据库
4.配置 ZabbixServer 服务器的信息
5.最终确认检查
6.安装成功
提示已成功地安装了 Zabbix 前端。配置文件/etc/zabbix/web/zabbix.conf.php 被创建。
7.登陆zabbix
默认登陆 ZabbixWeb 的用户名 Admin,密码 zabbix
8.调整字符集为中文
9.修复中文乱码
打开图形之后会发现语言为乱码,原因是缺少字体
解决方法:安装字体并替换现有字体
[root@m01 ~]# yum install wqy-microhei-fonts -y [root@m01 ~]# cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/zabbix/assets/fonts/graphfont.ttf
切换到zabbix站点目录
cd /var/www/zabbix/include sed -i 's/DejaVuSans/graphfont/g' defines.inc.php
再次刷新发现已经变成中文了
第二章 单机时代如何监控
CPU信息
一台物理机的物理CPU的个数,一个CPU上的核数,一个核上面支持的线程数
有下面的计算公式:
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
CPU架构
多个物理CPU,各个CPU通过总线进行通信,效率比较低,如下
多核CPU,不同的核通过L2 cache进行通信,存储和外设通过总线与CPU通信,如下:
多核超线程,每个核有两个逻辑的处理单元,两个线程共同分享一个核的资源,如下:
从上面执行的结果来看,证明我使用的cpu有2 * 6 = 12核,每个核有2个超线程,所以有24个逻辑cpu。
查看内 存信息 cat /proc/meminfo
CPU型号的查询方式[root@localhost ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
40 Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz
# 查看物理CPU个数 [root@localhost ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 2 [root@localhost ~]# grep 'physical id' /proc/cpuinfo | sort -u | wc -l 2 # 查看每个物理CPU中core的个数(即核数) [root@localhost ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq cpu cores : 10 # 查看逻辑CPU的个数 [root@localhost ~]# cat /proc/cpuinfo| grep "processor"| wc -l 40
[root@localhost ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 40 On-line CPU(s) list: 0-39 Thread(s) per core: 2 #thread就是每个core上的硬件线程数,即超线程 Core(s) per socket: 10 # Core就是平时说的核,双核、四核等,就是每个CPU上的核数 座: 2 # == Socket(s): 2 Socket就是主板上插CPU的槽的数量 2个cpu NUMA 节点: 2 厂商 ID: GenuineIntel CPU 系列: 6 型号: 79 型号名称: Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz 步进: 1 CPU MHz: 1201.110 CPU max MHz: 3100.0000 CPU min MHz: 1200.0000 BogoMIPS: 4399.96 虚拟化: VT-x L1d 缓存: 32K L1i 缓存: 32K L2 缓存: 256K L3 缓存: 25600K NUMA 节点0 CPU: 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38 NUMA 节点1 CPU: 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb cat_l3 cdp_l3 intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap xsaveopt cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts [root@localhost ~]# 对操作系统来说,其逻辑CPU的数量就是Socket*Core*Thread
1、CPU 监控命令: w、 top、 htop、 glances
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st us 用户态: 跟用户的操作有关 0.3% sy 系统态: 跟内核的处理有关 0.3% id CPU 空闲: 99.3%
监控什么:
us: user state 用户态信息 40% #例如某个用户 ssh远程到主机执行命令 就是用户态任务 (优先)
sy: system state 内核态信息 40% #MySQL进程 关注内核信息
id: idle 空闲状态 20% #空闲状态
注意:https://blog.csdn.net/qq_39823627/article/details/78736650 用户态和内核态 https://www.cnblogs.com/gizing/p/10925286.html
top
[root@localhost ~]# top top - 10:48:34 up 13 days, 9 min, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 391 total, 1 running, 390 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st #us 用户态使用情况 sy 内核使用情况 id 空闲 KiB Mem : 32656556 total, 31731496 free, 457388 used, 467672 buff/cache KiB Swap: 16449532 total, 16449532 free, 0 used. 31729196 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 172152 root 20 0 162304 2584 1596 R 0.3 0.0 0:00.13 top 1 root 20 0 196572 9728 4188 S 0.0 0.0 0:10.08 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.05 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 6 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/u384:0 8 root rt 0 0 0 0 S 0.0 0.0 0:00.08 migration/0 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 10 root 20 0 0 0 0 S 0.0 0.0 1:55.46 rcu_sched 11 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain 12 root rt 0 0 0 0 S 0.0 0.0 0:02.69 watchdog/0 13 root rt 0 0 0 0 S 0.0 0.0 0:02.58 watchdog/1 14 root rt 0 0 0 0 S 0.0 0.0 0:00.08 migration/1 15 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/1 16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0 17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H 18 root 20 0 0 0 0 S 0.0 0.0 0:00.08 kworker/u386:0 19 root rt 0 0 0 0 S 0.0 0.0 0:02.48 watchdog/2 20 root rt 0 0 0 0 S 0.0 0.0 0:00.08 migration/2 21 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/2 23 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/2:0H 24 root rt 0 0 0 0 S 0.0 0.0 0:02.38 watchdog/3 25 root rt 0 0 0 0 S 0.0 0.0 0:00.08 migration/3 26 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/3 28 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/3:0H 29 root rt 0 0 0 0 S 0.0 0.0 0:02.76 watchdog/4 30 root rt 0 0 0 0 S 0.0 0.0 0:00.13 migration/4 31 root 20 0 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/4 32 root 20 0 0 0 0 S 0.0 0.0 0:00.27 kworker/4:0 33 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/4:0H 34 root rt 0 0 0 0 S 0.0 0.0 0:02.30 watchdog/5 35 root rt 0 0 0 0 S 0.0 0.0 0:00.08 migration/5 36 root 20 0 0 0 0 S 0.0 0.0 0:00.13 ksoftirqd/5
htop命令结果:
glances
[root@localhost ~]# glances localhost.localdomain (CentOS Linux 7.6.1810 64bit / Linux 3.10.0-957.el7.x86_64) Uptime: 13 days, 0:21:31 CPU [ 0.2%] CPU 0.2% nice: 0.0% MEM 2.0% active: 262M SWAP 0.0% LOAD 40-core MEM [| 2.0%] user: 0.1% irq: 0.0% total: 31.1G inactive: 135M total: 15.7G 1 min: 0.03 SWAP [ 0.0%] system: 0.1% iowait: 0.0% used: 622M buffers: 3.07M used: 0 5 min: 0.02 idle: 99.8% steal: 0.0% free: 30.5G cached: 302M free: 15.7G 15 min: 0.05 NETWORK Rx/s Tx/s TASKS 392 (430 thr), 1 run, 391 slp, 0 oth sorted automatically by cpu_percent, flat view br0 0b 0b em1 6Kb 1Kb CPU% MEM% VIRT RES PID USER NI S TIME+ IOR/s IOW/s Command em2 0b 0b 5.9 0.1 226M 17.1M172258 root 0 R 0:00.94 0 0 /usr/bin/python /usr/bin/glances em3 0b 0b 0.0 0.0 0 0 16 root 0 S 0:00.00 0 0 kworker/1:0 em4 0b 0b 0.0 0.0 0 0 11 root -20 S 0:00.00 0 0 lru-add-drain lo 0b 0b 0.0 0.0 0 0164632 root 0 S 0:00.00 0 0 kworker/2:0 virbr0 0b 0b 0.0 0.0 0 0 215 root -20 S 0:00.00 0 0 kintegrityd _rbr0-nic 0b 0b 0.0 0.0 0 0 104 root 0 S 0:02.28 0 0 watchdog/19 0.0 0.0 0 0107025 root 0 S 0:00.00 0 0 kworker/9:1 DISK I/O R/s W/s 0.0 0.0 0 0 169 root 0 S 0:02.21 0 0 watchdog/32 dm-0 0 7K 0.0 0.0 0 0 2 root 0 S 0:00.50 0 0 kthreadd dm-1 0 0 0.0 0.0 0 0 80 root 0 S 0:00.80 0 0 migration/14 dm-2 0 0 0.0 0.0 0 0 4287 root -20 S 0:00.00 0 0 xfs-eofblocks/d sda1 0 0 0.0 0.0 0 0 85 root 0 S 0:00.80 0 0 migration/15 sda2 0 0 0.0 0.0 0 0 93 root -20 S 0:00.00 0 0 kworker/16:0H sda3 0 7K 0.0 0.0 0 0 119 root 0 S 0:02.30 0 0 watchdog/22 sr0 0 0 0.0 0.0 0 0 100 root 0 S 0:00.80 0 0 migration/18 0.0 0.0 0 0 129 root 0 S 0:02.73 0 0 watchdog/24 FILE SYS Used Total 0.0 0.0 0 0 4280 root -20 S 0:00.00 0 0 xfs-conv/dm-0 / 1.69G 50.0G 0.0 0.0 0 0 136 root 0 S 0:00.29 0 0 ksoftirqd/25 /boot 146M 1014M 0.0 0.0 0 0 4268 root -20 S 0:00.00 0 0 xfs_mru_cache /home 1.07G 3.75T 0.0 0.0 0 0 2938 root 0 S 0:00.00 0 0 scsi_eh_6 0.0 0.0 0 0 4288 root 0 S 0:02.40 0 0 xfsaild/dm-0 0.0 0.0 0 0 110 root 0 S 0:00.80 0 0 migration/20 0.0 0.0 0 0 170 root 0 S 0:00.80 0 0 migration/32 0.0 0.0 0 0 2685 root 0 S 0:00.00 0 0 scsi_eh_3 0.0 0.0 0 0 2687 root 0 S 0:00.00 0 0 scsi_eh_4 0.0 0.0 0 0 4155 root -20 S 0:00.00 0 0 kworker/0:1H 0.0 0.0 0 0 21902 root -20 S 0:00.00 0 0 kworker/5:1H 2019-10-09 11:00:12 No warning or critical alert detected localhost.localdomain (CentOS Linux 7.6.1810 64bit / Linux 3.10.0-957.el7.x86_64) Uptime: 13 days, 0:21:31 CPU [ 0.2%] CPU 0.2% nice: 0.0% MEM 2.0% active: 262M SWAP 0.0% LOAD 40-core MEM [| 2.0%] user: 0.1% irq: 0.0% total: 31.1G inactive: 135M total: 15.7G 1 min: 0.03 SWAP [ 0.0%] system: 0.1% iowait: 0.0% used: 622M buffers: 3.07M used: 0 5 min: 0.02 idle: 99.8% steal: 0.0% free: 30.5G cached: 302M free: 15.7G 15 min: 0.05 NETWORK Rx/s Tx/s TASKS 392 (430 thr), 1 run, 391 slp, 0 oth sorted automatically by cpu_percent, flat view br0 0b 0b em1 6Kb 1Kb CPU% MEM% VIRT RES PID USER NI S TIME+ IOR/s IOW/s Command em2 0b 0b 5.9 0.1 226M 17.1M172258 root 0 R 0:00.94 0 0 /usr/bin/python /usr/bin/glances em3 0b 0b 0.0 0.0 0 0 16 root 0 S 0:00.00 0 0 kworker/1:0 em4 0b 0b 0.0 0.0 0 0 11 root -20 S 0:00.00 0 0 lru-add-drain lo 0b 0b 0.0 0.0 0 0164632 root 0 S 0:00.00 0 0 kworker/2:0 virbr0 0b 0b 0.0 0.0 0 0 215 root -20 S 0:00.00 0 0 kintegrityd _rbr0-nic 0b 0b 0.0 0.0 0 0 104 root 0 S 0:02.28 0 0 watchdog/19 0.0 0.0 0 0107025 root 0 S 0:00.00 0 0 kworker/9:1 DISK I/O R/s W/s 0.0 0.0 0 0 169 root 0 S 0:02.21 0 0 watchdog/32 dm-0 0 7K 0.0 0.0 0 0 2 root 0 S 0:00.50 0 0 kthreadd dm-1 0 0 0.0 0.0 0 0 80 root 0 S 0:00.80 0 0 migration/14 dm-2 0 0 0.0 0.0 0 0 4287 root -20 S 0:00.00 0 0 xfs-eofblocks/d sda1 0 0 0.0 0.0 0 0 85 root 0 S 0:00.80 0 0 migration/15 sda2 0 0 0.0 0.0 0 0 93 root -20 S 0:00.00 0 0 kworker/16:0H sda3 0 7K 0.0 0.0 0 0 119 root 0 S 0:02.30 0 0 watchdog/22 sr0 0 0 0.0 0.0 0 0 100 root 0 S 0:00.80 0 0 migration/18 0.0 0.0 0 0 129 root 0 S 0:02.73 0 0 watchdog/24 FILE SYS Used Total 0.0 0.0 0 0 4280 root -20 S 0:00.00 0 0 xfs-conv/dm-0 / 1.69G 50.0G 0.0 0.0 0 0 136 root 0 S 0:00.29 0 0 ksoftirqd/25 /boot 146M 1014M 0.0 0.0 0 0 4268 root -20 S 0:00.00 0 0 xfs_mru_cache /home 1.07G 3.75T 0.0 0.0 0 0 2938 root 0 S 0:00.00 0 0 scsi_eh_6 0.0 0.0 0 0 4288 root 0 S 0:02.40 0 0 xfsaild/dm-0 0.0 0.0 0 0 110 root 0 S 0:00.80 0 0 migration/20 0.0 0.0 0 0 170 root 0 S 0:00.80 0 0 migration/32 0.0 0.0 0 0 2685 root 0 S 0:00.00 0 0 scsi_eh_3 0.0 0.0 0 0 2687 root 0 S 0:00.00 0 0 scsi_eh_4 0.0 0.0 0 0 4155 root -20 S 0:00.00 0 0 kworker/0:1H 0.0 0.0 0 0 21902 root -20 S 0:00.00 0 0 kworker/5:1H 2019-10-09 11:00:12 No warning or critical alert detected
linux下查看cpu负载有两个命令可以看:uptime 和 top
其中load average的三个值分别表示1分钟、5分钟、15分钟的CPU负载情况,是运维需要经常关注的
那么怎么确定这些值展现出什么问题呢?
分析:
对于单核处理器来说(值的大小和cpu的核数有关系) ,可以把值分为3个级别
1)小于1.0 如果值小于1,那么说明系统cpu处理很流畅,不会出现等待,堵塞
2)等于1.0 说明cpu能力刚刚满负荷,
3)大于1.0 说明cpu已经超负荷,进程处理需要等待了,效率低下
对于多核处理器说(假设双核),等于说处理能力增加了一倍,比较的值就是2了,小于2.0才不用担心
负载:(CPU处理任务过多) a 利用文件进行查看:(监控) cat /proc/loadavg 0.00 0.01 0.05 负载值CPU核数有关 1分钟平均 5分钟平均负载 15分钟平均负载 eg: 服务器4核的服务器 -- 负载值3左右,就要关注 服务器128核的服务器 -- 负载值100(数据库服务器) b 利用命令进行查看: [root@localhost ~]# w 12:41:06 up 38 min, 2 users, load average: 0.00, 0.01, 0.05
那么1/5/15分钟以哪个值为准呢?
一般5和15分钟才具有参考意义。
2、内存监控命令: free
[root@m01 ~]# free -h total used free shared buff/cache available Mem: 977M 105M 724M 6.6M 148M 729M Swap: 1.0G 0B 1.0G
内存:内存使用情况 a 利用文件进行查看: [root@oldboyedu ~]# cat /proc/meminfo MemTotal: 2030172 kB --- 内存总的容量 MemFree: 1738164 kB --- 内存的空闲容量 MemAvailable: 1714096 kB --- 内存的可用容量 Buffers: 2076 kB --- baffer空间 Cached: 90616 kB --- cacahe空间 SwapCached: 0 kB --- 交换分区使用情况 b 利用命令进程查看: [root@oldboyedu ~]# free -h --- 以人类可读方式显示内存容量信息 total used free shared buff/cache available(*) Mem: 1.9G 137M 1.7G 9.5M 148M 1.6G Swap: 1.0G 0B(*) 1.0G 内存中有两个存储空间 buffer 缓冲区 在数据准备存储到磁盘中之前 先放到内存中进行缓冲 写缓冲 cache 缓存区 数据已经存储到磁盘中之后 再把数据转存到内存中 读缓存
监控什么:
内存可用率:
swap空间使用情况:
注意dd命令 dd if=/dev/hda of=/root/image count=10 bs=512M
https://www.cnblogs.com/classics/p/11512709.html
随着时间的推移,用户不断的增多,服务随时可能扛不住会被 oom(out of memory),当系统内存不足的时候,会触发 oom
1.当系统内存不足的时候就会大量使用 swap
2.当系统大量使用 swap 的时候,系统会特别卡
注意: 有时可能内存还有剩余 300Mb-500Mb,但会发现 swap 依然被使用
[root@ZabbixServer ~]# dd if=/dev/zero of=/dev/null bs=800M [root@ZabbixServer ~]# tail -f /var/log/messages Out of memory: Kill process 2227 (dd) score 778 or sacrifice child Killed process 2227 (dd) total-vm:906724kB, anon-rss:798820kB, file-rss:0kB
那单机时代,如何使用 shell 脚本来实现服务器的监控 需求: 每隔 1 分钟监控一次内存,当你的可用内存低于 100m,发邮件报警,要求显示剩余内存
1.怎么获取内存可用的值 free -m|awk '/^Mem/{print $NF}'
2.获取到内存可用的值如何和设定的阈值进行比较
3.比较如果大于 100m 则不处理,如果小于 100 则报警
4.如何每隔 1 分钟执行一次
[root@ZabbixServer ~]# cat free.sh #!/usr/bin/bash HostName=$(hostname)_$(hostname -i) Date=$(date +%F) while true;do Free=$(free -m|awk '/^Mem/{print $NF}') #echo $Free #echo $Date #echo $HostName if [ $Free -le 100 ];then echo "$Date: $HostName Mem Is < ${Free}MB" fi sleep 5 done
3、磁盘监控命令: df、 iotop
磁盘: df iotop(检查磁盘io消耗)
磁盘使用情况
磁盘的IO消耗
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 0.80 25.32 33.36 221034 291193 设备名 每秒传输次数 每秒读大小 每秒写大小 读的总大小 写的总大小
4、网络监控命令: ifconfig、 route、 glances、 iftop、 nethogs、 netstat
单位换算
Mbps 100Mbps/8
MB 12MB
iftop 中间的<= =>这两个左右箭头,表示的是流量的方向。
TX:发送流量、 RX:接收流量、 TOTAL:总流量
#查看 TCP11 中状态
netstat -an|grep ESTABLISHED
netstat -rn # 查看路由信息
netstat -lntup
5、网络: iftop glances
监控什么:
网络带宽使用情况
[root@localhost ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Retrieving https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
warning: /var/tmp/rpm-tmp.glz3Fp: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:epel-release-7-12 ################################# [100%]
[root@localhost ~]# yum -y install iftop
6、进程: top htop ps glances
监控什么:
占用内存情况 tomcat(java)---内存占满(内存溢出)--服务出现僵死(重启服务)
占用CPU情况: MySQL
7、负载: w top uptime glances(cpu负载、IO负载等)
监控什么:
10分钟负载 <CPU内核数
15分钟负载
05. 综合架构监控服务器编写脚本(shell python)
练习题:
01. 如何监控内存使用情况:
正常使用情况: 内存使用率高于80%
异常使用情况: 内存使用率低于20% 发送报警
02. 如何监控服务运行状态:
ps -ef|grep -c [n]ginx
netstat -lntup|grep xxx
PS: tomcat服务---僵死
综合架构监控服务体系结构
1) 硬件监控 服务器 路由器 交换机 防火墙(SNMP)
2) 系统监控 CPU 内存 磁盘 网络 进程 TCP(十一种状态)
3) 服务监控 nginx php tomcat redis memcache mysql
4) 网站监控 请求时间 响应时间 加载时间 页面监控
5) 日志监控 ELK(收集 存储 分析 展示) 日志易
eg:access --- 用户源IP地址 北京1000 上海100 深圳500
6) 安全监控 Firewalld(4层和4层以上) WAF(Nginx+lua)(应用层面) 安全宝 牛盾云 安全狗
7) 网络监控 smokeping 监控宝 站长工具 奇云测 多机房
8) 业务监控 (数据库信息)活动产生多少流量 产生多少注册量 带来多少价值