目录
一、环境搭建
1. zabbix程序结构
2. zabbix-agent支持的协议
3. zabbix监控环境搭建
3.1 安装方式
3.2 配置zabbix官方yum源
3.3 安装服务端与客户端
3.4 安装zabbix-web
3.4.1 cd /etc/yum.repos.d/
3.4.2 安装依赖源
3.4.3 安装本部件
3.4.4 安装存储数据库
4. 配置客户端添加监控主机
4.1 客户端安装zabbix-agent
4.2 客户端配置服务端信息即可
4.3 配置源
4.4 安装客户端
4.5 配置客户端
4.6 添加监控主机
5. zabbix中核心的资源介绍
6. 监控项配置
6.1 首先规划风险值
6.2 客户端测试监控项
6.3 重启客户端
6.4 web端添加监控项
6.5 企业级配置自定义监控项
6.6 通过web页面实现添加监控项
二、触发器及报警
1.监控项获取失败排查
1.1 web添加监控项页面测试获取监控项值
1.2 服务端安装zabbix_get
1.3 在客户端通过zabbix-agent -t 检测获取监控项
2. 触发器
2.1 作用
2.2 阈值
2.3 定义触发器
2.4 设置阈值类型
3.配置动作实现zabbix自动化报警
3.1 实现方式
3.2 企业级常用的报警方式:
3.3 配置右键告警方法
3.3.1 添加用于接收消息的用户及用户组
3.3.2 添加动作
3.3.3 添加发送邮件的报警媒介
3.3.4 配置发送邮箱
3.3.5 配置发送消息模板
3.3.6 问题模板
3.3.7 恢复模板
3.4 配置微信报警
3.4.1 申请企业微信
3.4.2 创建自定义应用
3.4.3 准备微信报警脚本
3.4.4 安装pip
3.4.5 web端添加报警媒介
3.4.6 报警升级
3.4.7 web检测
3.4.8 zabbix解决web页面乱码问题
3.5 zabbix自动化监控
3.5.1 方法一:自动发现
3.5.2 方法二:主动注册
一、环境搭建
1. zabbix程序结构
- zabbix-server:用于数据处理及写入到数据库
- zabbix-agent:用于获取被监控端的性能检测数据
- zabbix-web:用于数据的展示及远程操控
- zabbix-proxy:实现zabbix分布式监控
- 数据库:用于存储监控数据
2. zabbix-agent支持的协议
- ssh
- snmp:用于交换机路由器流量监控(OID)
- IPMI:硬件监控
- JMX: 专用于java服务监控
- 结合procona:实现针对数据库监控
3. zabbix监控环境搭建
3.1 安装方式
- yum自动化安装
- 源码编译安装
- 二进制包
3.2 配置zabbix官方yum源
- rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
- yum list | grep zabbix
3.3 安装服务端与客户端
yum install zabbix-server-mysql zabbix-agent -y
3.4 安装zabbix-web
3.4.1 cd /etc/yum.repos.d/
- vim zabbix.repo
- 在/etc/yum.repos.d/zabbix.repo文件中打开zabbix-frontend
- [zabbix-frontend]
- enabled=1
3.4.2 安装依赖源
yum install -y epel-release centos-release-scl
3.4.3 安装本部件
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
3.4.4 安装存储数据库
yum install -y mariadb-server mariadb
4. 配置客户端添加监控主机
4.1 客户端安装zabbix-agent
4.2 客户端配置服务端信息即可
4.3 配置源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
4.4 安装客户端
yum install zabbix-agent -y
4.5 配置客户端
server=服务端IP
4.6 添加监控主机
- web页面→ 配置→ 主机→ 添加主机
- 添加相应的信息
- 添加模板监控
5. zabbix中核心的资源介绍
监控项→触发器→动作→ 模板
6. 监控项配置
6.1 首先规划风险值
通过设计取值命令 :
配置监控项
vim /etc/zabbix/zabbix_agent.conf
UserParameter=User_num,w |awk 'NR>2{print $3}'|uniq |wc -l
6.2 客户端测试监控项
zabbix_agent2 -t User_num
User_num [s|2]
6.3 重启客户端
6.4 web端添加监控项
- 选择需要添加监控项的主机
- 根据客户端所自定义的监控项添加即可
- 注意:添加监控项页面中的值要和监控项的key名一致
6.5 企业级配置自定义监控项
UserParameter=Nginx[*],./scripts/nginx_status.sh $1
6.6 通过web页面实现添加监控项
二、触发器及报警
1.监控项获取失败排查
1.1 web添加监控项页面测试获取监控项值
1.2 服务端安装zabbix_get
- yum install zabbix-get -y
- zabbix_get 用于服务端测试获取客户端中自定义的监控项
- zabbix_get -s 指定客户端IP -k 监控项名
1.3 在客户端通过zabbix-agent -t 检测获取监控项
如果能获取到则,客户端定义配置有问题,如果获取不到,则自定义监控项定义有问题
2. 触发器
2.1 作用
定义监控项的阈值,当超过阈值则触发警告
2.2 阈值
指某一个监控指标的定义值
2.3 定义触发器
主机→ 触发器→ 创建→ 构建表达式
2.4 设置阈值类型
last: 最新一次的数据
avg:单位时间内的平均值
count:单位时间内的总数
max: 最大值
3.配置动作实现zabbix自动化报警
3.1 实现方式
通过动作实现
3.2 企业级常用的报警方式:
- 邮件
- 微信报警
- 钉钉
- 发短信
3.3 配置右键告警方法
3.3.1 添加用于接收消息的用户及用户组
添加用户的登录信息
添加用户的接收消息报警媒介
3.3.2 添加动作
创建动作:条件
创建动作操作:故障提醒操作、恢复提醒操作
3.3.3 添加发送邮件的报警媒介
管理→ 报警媒介
3.3.4 配置发送邮箱
3.3.5 配置发送消息模板
3.3.6 问题模板
Problem started at {EVENT.TIME} on {EVENT.DATE}
Problem name: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Operational data: {EVENT.OPDATA}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
3.3.7 恢复模板
Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
Problem name: {EVENT.NAME}
Problem duration: {EVENT.DURATION}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
3.4 配置微信报警
3.4.1 申请企业微信
企业微信
3.4.2 创建自定义应用
3.4.3 准备微信报警脚本
cd /usr/lib/zabbix/alertscripts 上传脚本
配置脚本
corpid=企业ID
appsecret=自建项目secret
agentid=自建项目ID
3.4.4 安装pip
yum install python-pip
pip install requests
测试脚本发送消息命令
python weixin.py 当前在项目中的账号 “标题” “消息”
chmod +x weixin.py
rm -rf /tmp/weixin.log
3.4.5 web端添加报警媒介
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
3.4.6 报警升级
以步骤为单位进行分步骤报警
间隔时间是按照上一个步骤持续时间定义的
3.4.7 web检测
作用:通过抓取某URL页面中的关键字或状态码,探测业务异常情况
3.4.8 zabbix解决web页面乱码问题
zabbix存放字符集的路径:/usr/share/zabbix/assets/fonts
通过软连接上传自定义的字符集文件即可
3.5 zabbix自动化监控
3.5.1 方法一:自动发现
自动扫描某范围内的ip
客户端:安装zabbix-agent 配置服务端是谁
动作:自动发现操作
自动发现扫描:指定IP范围扫描地址段
实现原理:
服务端通过配置自动发现规则,进行ip地址段的扫描,触发动作添加主机
问题:对服务端压力过大
3.5.2 方法二:主动注册
所有客户端主动找服务端
ServerActive=服务端IP
Metadata=主机名
Hostname=主机名
web配置自动注册