liyuanhong

转载

原文地址:https://www.cnblogs.com/syy1757528181/p/13641460.html

一、监控基本概述

1、什么是监控

  1. 监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环
  2. 事前\'及时预警发现故障
  3. 事后\'提供详细的数据用于追查定位问题

2、为什么要做监控

  1. 系统的监控:实际上是对系统不间断的实时监控
  2. 实时\'反馈系统当前状态:我们监控某个硬件、或者某个系统,都是需要能实时看到当前系统的状态,是正常、异常、或者故障。
  3. 保证服务可靠性安全性:我们监控的目的就是要保证系统、服务、业务正常运行
  4. 保证业务持续稳定运行:如果我们的监控做得很完善,即使出现故障,能第一时间接收到故障报警,在第一时间处理解决,从而保证业务持续性的稳定运行。(往往,第一时间知道业务宕机的都是用户)

3、主要监控工具

  1. CACTI:\'网络\'监控,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具
  2. NAGIOS:\'系统\'监控,很久之前使用的,需要人为定义,没有图形,没有办法查询历史
  3. ZABBIX:分布式监控
  4. open-falcon:小米监控产品,开源的
  5. premethous:普罗米修斯,监控\'容器\',docker,K8S
  6. lepus:天兔,\'数据库\'监控

4、怎么监控

  1. 查看内存使用  free -m
  2. 取出监控的值
  3. 对比某个限制的值
  4. 如果超过限制的值则告警

5、监控的内容

1.公有云:云监控,云平台自带的监控
2.硬件监控:CPU温度,主板温度,磁盘,网卡,风扇转速
3.系统监控:cpu,内存,网络,磁盘剩余
4.服务监控:
    1)MySQL:主从复制是否有延迟(zabbix监控模板)
    2)redis:主从复制是否有延迟
    \'监控思路\':zabbix没有固定模板,可以在主库中set一个key为时间戳,然后从库会同步这个时间戳(动态),写脚本实时获取这两个时间戳,做对比。
    3)NFS:磁盘挂载状况
    4)tomcat:JVM监控,老年代、新生代、永久带、full-gc、垃圾回收
    5)rsync的同步情况,MD5校验文件是否被篡改
5.web页面监控:请求时间,响应时间,加载时间,nginx状态码监控,pv,uv,ip
6.网络监控:网卡流量(出入流量),带宽,\'监控宝\'
7.业务监控:
    1)URL监控 (curl)
    2)api监控:针对业务的接口  (basic.action 登录接口)
    3)nginx状态码 (curl)
    4)tomcat日志监控 (elk)
8.日志监控:ELK,第三方\'日志易\'
9.安全监控:firewalld,WAF,牛盾云,安全狗
10.容器监控:premethous,\'普罗米修斯\'

#Page View(PV 页面访问量)又叫做页面浏览量、点击量
#Unique Visitor(UV 独立访客),一般地,我们可以用两个数值标准来统计访问某网站的访客,即“访问次数”和“独立访客(问)数”
#Internet Protocol(IP 独立IP数),也称IP数,指1天内使用不同IP地址的用户访问网站的数量,同一IP无论访问了几个页面,独立IP数均为1

二、脚本监控

监控命令

1、监控cpu

w top htop uptime glances ps

#不管用什么命令监控,查看CPU,我们都必须了解,系统的用户态和内核态。
us: 用户态     跟用户的操作有关35%
sy: 内核态     跟内核的处理有关65%
id: CPU空闲

#当我们执行一个命令的时候,很快能出来结果,但是有多少人知道,这个很快,他都占用了哪些时间呢?
[root@web02 ~]# time ls
real    0m0.002s       真实执行时间
user    0m0.001s       用户执行时间
sys     0m0.001s       系统执行时间

2、监控内存

free glances top htop

3、监控磁盘

df glances iotop iostat dstat

#以兆为单位,每秒执行一次,执行10次
[root@web02 ~]# iostat -dm 1 10

4、监控网络

glances ifconfig iftop ip route

nethogs 该命令可以查看某个进程所使用的流量

监控内存实例

 

\'每1分钟\'监控当前系统的内存使用状态,如果可用\'低于100MB\'则发送邮件。同时\'打印\'当前还剩余多少内存

#思路
1.如何获取内存的状态信息 free -m
2.如何获取内存的可用状态 free -m|awk \'/Mem/{print $NF}\'
3.如何进行数字的比对,高于100MB不处理,低于100MB,发送邮件。
4.如何每分钟执行。
随着时间的推移,用户不断增多,服务消耗的内存越来越多,当系统内存不足的时候,可能会导致系统产生\'oom\'(out of memory)

1.当系统内存不足时就会大量使用swap(\'虚拟内存\'2.当系统大量使用swap的时候,\'系统会特别卡\'

#web服务一般开启swap,尽量防止业务宕掉,数据库 容器一般关闭swap
#少量使用swap可以暂时解决内存溢出的问题,当使用大量的虚拟内存的时候,系统卡慢
#有时可能内存还有剩余300M或者500M,但是swap依然被使用

脚本:

[root@zabbix ~]# vim /scripts/free.sh
#!/bin/bash
Hostname_Ip=$(hostname)_$(hostname -I|awk \'{print $2}\')
while true
do
    Date=$(date +%F)
    Mem_Free=$(free -m|awk \'/^Mem/{print $NF}\')
    Swap_used=$(free -m | awk \'/^Swap/ {print $3}\')
    if [ $Mem_Free -lt 100 -a $Swap_used -gt 100 ];then
        echo "$Date: $Hostname_Ip 内存可用量不足100M并且Swap空间占用超过100M,内存当前剩余: $Mem_Free,Swap空间使用达到: $Swap_used" |mail -s \'内存不足\' xxx
    fi
    sleep 60
done

三、zabbix安装

1、zabbix架构

  1. Zabbix agents \'部署\'在被监控目标上,用于主动监控本地资源和应用程序,并将\'收集\'的数据发送给 Zabbix server
  2. Zabbix server 是 Zabbix软件的核心组件,agent 向其报告可用性、系统完整性信息和统计信息。server也是存储所有配置信息、统计信息和操作信息的\'核心存储库\'。
  3. 数据库:所有配置信息以及 Zabbix 采集到的数据都被\'存储\'在数据库中
  4. zabbix web 为了从任何地方和\'任何平台\'轻松访问 Zabbix ,我们提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。
  5. Zabbix proxy 可以代替 Zabbix server\'采集\'性能和可用性数据。Zabbix proxy在Zabbix的部署是可选部分;但是proxy的部署可以很好的\'分担\'单个Zabbix server的负载。做\'集群\'的时候使用该模块

2、zabbix 主动与被动模式配置

参见:https://www.cnblogs.com/liyuanhong/p/14694739.html

 

分类:

技术点:

相关文章: