zabbix监控系统架构原理#yyds干货盘点#

​zabbix架构及部署

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

1.什么是监控

监控:监视,控制

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

1.1.模拟oom

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

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

1.​2.在打开一个xshell终端通过wa运维为什么没人干tch目录观察内存使用情况

[root@192.168.146.101~]# watch free -m

​可以看到持续下降

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

2.常见的liunx监控命令

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

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

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

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

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

思路:监控内存主要监控available这一列,如果值小那么必出问题,定义一些时间变量,将每天的每
次监控都存放到日志中,便于看监控日志,最后当峰值到达一定程度就发送给运维的邮箱
[root@192.168.146.101~]# 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前端页面进行展示。