1. zabbix简介
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案
2. 为什么需要监控?
- 对系统不间断实时监,实现报警通知
邮件
/微信
/短信
/电话
- 实时反馈系统当前状态
- 保证服务可靠性安全性
- 保证业务持续稳定运行
3. 监控项
1.硬件监控 路由器、交换机、防火墙
2.系统监控 CPU、内存、磁盘、网络、进程、 TCP状态
3.服务监控 nginx、 php、 tomcat、 redis、 memcache、 mysql
4.WEB 监控 请求时间、响应时间、加载时间、
5.日志监控 ELk(收集、存储、分析、展示) 日志易
6.安全监控 Firewalld、 WAF(Nginx+lua)、安全宝、牛盾云、安全狗
7.网络监控 smokeping 多机房
8.业务监控 活动引入多少流量、产生多少注册量、带来多大价值
4. 常用监控命令
4-1 CUP监控命令
w
: 显示系统中正在登陆的用户信息的命令,这个命令查看的痕迹日志是/var/run/utmptop
: 实时显示 process 的动态。htop
: 实时显示 process 的动态。
4-2 内存监控
free
4-3 磁盘监控命令
df
: 查看磁盘使用情况iotop
:查看磁盘IO使用情况
4-4 网络监控命令
ifconfig、 route、 glances、 iftop、 nethogs、 netstat
5. 使用脚本监控
需求: 每隔 1 分钟监控一次内存,当可用内存低于 200M,发邮件报警,要求显示剩余内存
- 1.编写检查内存脚本
# Author: Zachariah
# Function: Check memory and alarm
Host=$(hostname)_$(hostname -I |awk '{print $1}')
Date=$(date +%F-%T)
MailAddr1=zachariah@163.com
MailAddr2=1925644458@qq.com
memory=$(free |awk 'NR==2{print $NF}')
CurrentFree=$((${memory} / 1000))MB
Title="内存不足,请及时处理!"
if [ ${memory} -le 500000 ];then
printf "时间:${Date}
主机:${Host}
报警值:500MB
当前内存:${CurrentFree}
" | mail -s ${Title} ${MailAddr1}
printf "时间:${Date}
主机:${Host}
报警值:500MB
当前内存:${CurrentFree}
" | mail -s ${Title} ${MailAddr2}
fi
- 2.编写定时任务
[root@web03 scripts]$ crontab -e
# Memory is checked every 10 minutes
*/10 * * * * /usr/bin/sh /server/scripts/check_mem.sh
6. zabbix架构
zabbix-agent(数据采集)—>zabbix-server(数据分析|报警)—> 数据库(数据存储)<—zabbix web(数据展示)