Zabbix监控系统架构原理(一)

2,076 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

zabbix架构及部署

我们这次先安装再进行介绍zabbix

1.什么是监控

监控:监视,控制

随着用户的增量,服务随时可能被系统oom,所谓oom就是out of memory,当系统的负载到达一定程度,内存使用率使用殆尽,就会触发这种情况,触发oom后系统会kill掉内存使用率最高的进程,服务随之崩溃,omm会触发kernel,kernel为了保障服务器正常运行,会把使用最高的进程kill

1.1.模拟oom

1.使用ab对zbabix页面进行高并发压测

将交换分区关掉
[root@zabbix-server ~]# swapoff -a

[root@zabbix-server ~]# ab -n 100000 -c 50 http://192.168.81.210/zabbix/index.php

2.再打开一个xshell通过watch目录观察内存使用

[root@zabbix-server ~]# watch free -m

在这里插入图片描述

可以看到持续在下降

在这里插入图片描述

3.打开/var/log/message日志即可看到oom,将mysqlkill掉了

[root@zabbix-server ~]# vim /var/log/messages 

在这里插入图片描述

2.常见的Linux监控命令

free
df
top
htop
uptime
iftop
iostat
iotop
vmstat
netstat
nethogs
cpu

3.使用shell脚本来监控服务器

两种方式来实现shell脚本监控

  • 首先通过crontab计划任务每隔5分钟检测一次监控指,当指标到达一定峰值时即报警
  • 或者通过while死循环的方式,每次检测完一个指标就sleep 300 也可以实现五分钟一次检测

写一个简单的检测内存的脚本

思路:监控内存主要监控available这一列,如果值小那么必出问题,定义一些时间变量,将每天的每次监控都存放到日志中,便于看监控日志,最后当峰值到达一定程度就发送给运维的邮箱

[root@zabbix-server ~]# vim free_monitor.sh
#!/bin/bash
while true
do
        Free=$(free -m |awk 'NR==2{print $NF}')
        Date=$(date "+%F %H:%M:%S")
        Day=$(date +%F)
        Month=$(date +%Y-%m)
        Monitor_dir=/monitor_log/${Month}
        Monitor_file=$Monitor_dir/${Day}_monitor.log
        if [ ! -e $Monitor_dir ];then
                mkdir -p $Monitor_dir
        fi
        if [ $Free -lt 100 ];then
                echo "$Date $Free is used error!" >> $Monitor_file
                cat $Monitor_file | mail -s "内存使用异常" yunwei@163.com
        fi

        sleep 300
done

4.zabbix的基础服务架构

  • zabbix角色
    • **zabbix-agent:**负责收集zabbix监控的各项指标数据
    • **zabbix-server:**负责将zabbix-agent推送过来的监控指标数据进行分析,将指标数据和设置的峰值进行对比,达到一定峰值了,就触发报警,在将监控数据存到数据库
    • **zabbix-web:**将监控数控在页面进行展示

zabbix监控架构详解

zabbix监控采用lamp架构平台,由于监控只有运维几个人看,并不需要高并发,apache更加稳定且配置简单,因此采用lamp平台,架构不一样要高性能要合适才行。 zabbix架构流程首先在zabbix-web前端页面上添加主机并添加监控项,存放到数据库后,zabbix-server会定期每隔60s同步数据库,获取最新监控项、监控指标,获取后与安装了zabbix-agent的客户端进行监控,zabbix-agent将监控的指标推送给zabbix-server,zabbix-server进行分析指标数据,与运维设置的指标进行对比,如果达到了一定指标则将数据入库,最后在zabbix-web前端页面进行展示。

在这里插入图片描述