目录
1.3 在客户端通过zabbix-agent -t 检测获取监控项
一、环境搭建
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配置自动注册