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前端页面进行展示。