Zabbix 监控系统保姆及教程
一、监控概述
1.1 为什么要监控
在需要的时刻,提前提醒我们服务器出问题了
当出问题之后,可以找到问题的根源
网站/服务器 的可用性
1.1.1 网站可用性
在软件系统的高可靠性(也称为可用性,英文描述为 HA,High Available)里有个衡量其可靠性的标准——X 个 9,这个 X 是代表数字 3~5。X 个 9 表示在软件系统 1 年时间的使用过程中,系统可以正常使用时间与总时间(1 年)之比,我们通过下面的计算来感受下 X 个 9 在不同级别的可靠性差异。
1 个 9:(1-90%)365=36.5 天,表示该软件系统在连续运行 1 年时间里最多可能的业务中断时间是 36.5 天 2 个 9:(1-99%)365=3.65 天 ,表示该软件系统在连续运行 1 年时间里最多可能的业务中断时间是 3.65 天 3 个 9:(1-99.9%)36524=8.76 小时,表示该软件系统在连续运行 1 年时间里最多可能的业务中断时间是 8.76 小时。4 个 9:(1-99.99%)36524=0.876 小时=52.6 分钟,表示该软件系统在连续运行 1 年时间里最多可能的业务中断时间是 52.6 分钟。5 个 9:(1-99.999%)3652460=5.26 分钟,表示该软件系统在连续运行 1 年时间里最多可能的业务中断时间是 5.26 分钟。6 个 9:(1-99.9999%)3652460*60=31 秒, 示该软件系统在连续运行 1 年时间里最多可能的业务中断时间是 31 秒
1.2 监控什么东西
监控一切需要监控的东西,只要能够想到,能够用命令实现的都能用来监控
1.2.1 监控范畴
1.3.1 远程管理服务器
如果想远程管理服务器就有远程管理卡,比如 Dell idRAC,HP ILO,IBM IMM
1.3.2 监控硬件
二、安装 Zabbix
2.1 环境检查
2.2.1 安装方式选择
编译安装 (服务较多,环境复杂)
yum 安装(干净环境)
使用 yum 需要镜像 yum 源 http://www.cnblogs.com/clsn/p/7866643.html
2.2.2 服务端快速安装脚本
2.2.3 客户端快速部署脚本
2.3 检测连通性
2.3.1 服务端安装 zabbix-get 检测工具
三、Web 界面操作
3.1 zabbix 的 web 安装
3.1.1 使用浏览器访问
http://10.0.0.61/zabbix/setup.php
在检测信息时,可查看具体的报错信息进行不同的解决
选择 mysql 数据库,输入密码即可
host 与 port 不需要修改,name 自定义
确认信息,正确点击下一步
安装完成、点击 finsh
进入登陆界面 账号 Admin 密码 zabbix 注意 A 大写
3.2 添加监控信息
3.2.1 修改监控管理机 zabbix server
配置 >> 主机
主机名称:要与主机名相同,这是 zabbix server 程序用的
可见名称:显示在 zabbix 网页上的,给我们看的
修改后,要将下面的已启用要勾上
添加完成就有了管理机的监控主机
3.2.2 添加新的主机
配置 >> 主机 >> 创建主机
注意勾选以启用
然后添加模板,选择 linux OS ,先点小添加,再点大添加。
添加完成,将会又两条监控主机信息
3.2.3 查看监控内容
检测中 >> 最新数据
在最新数据中需要筛选,
输入 ip 或者名字都能够搜索出来
在下面就会列出所有的监控项
3.2.4 查看图像
检测中 >> 图形选择正确的主机。选择要查看的图形即可出图
四、自定义监控与监控报警
4.1 自定义监控
4.1.1 说明
zabbix 自带模板 Template OS Linux (Template App Zabbix Agent)提供 CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。需求:服务器登陆人数不能超过三人,超过三人报警
4.1.2 预备知识
4.2 实现自定义监控
4.2.1 自定义语法
4.2.2 agent 注册
4.2.3 在 server 端注册(web 操作)
① 创建模板配置 >> 模板 >> 创建模板
点击添加,即可创建出来模板
查看创建出来的模板。
② 创建应用集应用集类似(目录/文件夹),其作用是给监控项分类。点击 应用集 >> 创建应用集
自定义应用集的名称,然后点击添加③ 创建监控项监控项 >> 创建监控项
键值 — key,即前面出创建的 login-user。
注意:创建监控项的时候,注意选择上应用集,即之前创建的安全。
④创建触发器触发器的作用:当监控项获取到的值达到一定条件时就触发报警(根据需求创建)触发器 >> 创建触发器创建触发器,自定义名称,该名称是报警时显示的名称。表达式,点击右边的添加,选择表达式。严重性自定义。
表达式的定义 ↓ ,选择之前创建的监控项,
最新的 T 值为当前获取到的值。
添加完成,能够在触发器中看到添加的情况
⑤创建图形以图形的方式展示出来监控信息图形 >> 创建图形名称自定义,关联上监控项。
⑥主机关联模板配置 >> 主机一个主机可以关联多个模板
4.2.4 查看监控的图形
4.3 监控报警
4.3.1 第三方报警平台
http://www.onealert.com通过 OneAlert 提供的通知分派与排班策略,以及全方位的短信、微信、QQ、电话提醒服务,您可以在最合适的时间,将最重要的信息推送给最合适的人员。
4.3.2 onealert 配置
添加应用,注意添加的是 zabbix
实现微信报警需要关注微信公众号即可。
4.3.3 安装 onealert Agent
4.3.1 如何删除 onealert Agent
①删除报警媒介类型中的脚本
②删除创建的用户
③删除用户群组
④删除创建的动作
4.3.2 触发器响应,发送报警信息
在微信和邮件中,均能收到报警信息。
注意:当状态改变的时候才会发邮件好→坏坏→好
4.4 监控可视化
4.4.1 聚合图形
最新数据 >> 图形
自定义名称
点击聚合图形的名称,进行更改,添加要显示的图形即可。
4.4.2 幻灯片
添加幻灯片监测中 >> 复合图形 >> 幻灯片演示
创建幻灯片,名称自定,选择要显示的
幻灯片根据设定的时间自动播放
4.5 模板的共享
4.5.1 主机共享
在主机页打开,全选后点击导出
导入
4.5.2 模板共享
https://github.com/zhangyao8/zabbix-community-repos
五、监控全网服务器
5.1 需求说明实际需求:公司已经有了 100 台服务器,现在需要使用 zabbix 全部监控起来。
5.2 规划方案
常规监控:cpu,内存,磁盘,网卡 问题:怎样快速添加 100 台机器
方法 1:使用克隆的方式
方法 2:自动注册和自动发现
方法 3:调用 zabbix api 接口 curl 、python
开发自己的运维平台兼容 zabbix 的通道服务监控,url 监控等特殊监控:自定义监控
5.2.1 api 接口使用(curl)
5.3 具体实施规划
5.3.1 硬件、系统、网络监控
所有集群节点(所有虚拟机)都监控上交换机,路由器监控(简单方法:换成端口对应服务器网卡流量监控;标准方法:监控交换机的网卡)snmp 监控
5.3.2 应用服务监控
监控备份服务器,简单方法是监控 rsync 端口,如果有其他更佳方案可以说明;方法 1:监控 873 端口 net.tcp.port[,873]方法 2:模拟推送拉取文件
监控 NFS 服务器,使用监控 NFS 进程来判断 NFS 服务器正常,如果有其他更佳方案可以说明;方法 1:端口(通过 111 的 rpc 端口获取 nfs 端口) net.tcp.port[,111]方法 2:showmount -e ip|wc -l
监控 MySQL 服务器,简单方法监控 mysql 的 3306 端口,或者使用 zabbix 提供的 Mysql 模板,如果有其他更佳方案可以说明;方法 1:端口(通过 3306 的 mysql 端口) net.tcp.port[,3306]方法 2:mysql 远程登录方法 3:使用 zabbix agent 自带的模板及 key
监控 2 台 web 服务器,简单方法监控 80 端口,如果有其他更佳方案可以说明;方法 1:端口(通过 80 的 web 端口) net.tcp.port[,80]方法 2:看网页状态码、返回内容==zabbix 自带 WEB 检测
监控 URL 地址来更精确的监控我们的网站运行正常;使用 zabbix 自带的监控 Web 监测 进行监控
监控反向代理服务器,PPTP 服务器等你在期中架构部署的服务。nginx,pptpntp 端口 udp 123
监控 Nginx 的 7 种连接状态。自定义监控
5.3.3 监控服务通用方法
监控端口 netstat ss lsof ==》 wc -l
监控进程 ps -ef|grep 进程|wc -l 试运行一下
模拟客户端的使用方式监控服务端 web ==》 curlmysql ==》 select insertmemcache ==》 set 再 get
5.4 实施全网监控
安装客户端脚本,for centos6
5.4.1 使用自动发现规则
添加自动发现规则
创建发现动作
查看自动发现的机器。
5.4.2 监控备份服务器
利用系统自带键值进行监控 net.tcp.listen[port] 创建新的模板
在服务端进行测试
将模板添加到主机
5.4.3 监控 NFS 服务器
创建 nfs 监控模板使用 proc.num[,,,] 键值,检测 nfs 进程的数量
在服务端进行测试
将模板绑定到主机
5.4.4 监控 MySQL 服务器
将自带的 mysqlkey 值加上 mysql 的账户密码,否则不能获取到数据。
使用系统自带模板 net.tcp.port[,port] 利用自带的监控端口键值进行监控
添加新的 mysql 监控项端口
将模板关联到主机
5.4.5 监控 web 服务器
创建监控模板 监控 nginx 服务与 80 端口
将模板关联到主机
5.4.6 监控 URL 地址
创建监测页面
创建 web 监测模板
创建应用集
创建 Web 场景
创建图形
将模板关联到主机
监测结果
5.4.7 监控反向代理服务器
创建自定义 key
在服务端测试
在 web 界面添加模板
将模板关联到主机
5.4.8 监控 Nginx 的 7 种连接状态
nginx 服务器显示 status
在 nginx 服务器上添加 key
服务端测试
在 zabbix-web 上添加
监控项
添加图形
将模板关联到主机
查看添加的图形
六、自动发现与自动注册
6.1 自动注册与自动注册
6.1.1 简介
自动发现:
自动注册:
6.1.2 两种模式
被动模式:默认 agent 被 server 抓取数据 (都是在 agent 的立场上说)
主动模式:agent 主动将数据发到 server 端 (都是在 agent 的立场上说)
注意:两种模式都是在 agent 上进行配置 zabbix 的使用要在 hosts 文件中预先做好主机名的解析
6.2 自动发现—被动模式
第一个里程碑:完成之前的安装 zabbix Server 安装完毕
第二个里程碑:配置 agent 客户端 zabbix agent 安装完毕,注意配置 Server=172.16.1.61
第三个里程碑:在 web 界面上进行配置
web 界面:配置 >> 自动发现 >> Local network
使用自带的自动发现规则(进行修改)即可
在 ip 范围内输入 ip,注意格式;延迟在实际的生产环境中要大一些,实验环境可以小一些
创建发现动作配置 >> 动作 >> Auto discovery. Linux servers.
① 配置动作
② 在条件中添加条件,让添加更准确
③ 在操作中添加 a) 添加主机与启用主机
七、分布式监控与 SNMP 监控
7.1 分布式监控
7.1.1 作用
分担压力,减轻负载多机房监控 zabbix Server ===》 zabbix agent (只能同一个局域网监控)分担压力,降低负载
多机房监控
7.1.2 环境说明
7.1.2 配置 zabbix proxy
第一个里程碑:配置 zabbix yum 源,并安装 proxy
第二个里程碑:安装数据库 zabbix proxy 也需要数据库,这个数据库不是用于存储监控数据的 只是用于存储配置信息
安装数据库
建立数据库
导入数据文件
配置 zabbix proxy 连接数据库
作为后面添加的代理程序名称,要保持一致
启动
检查端口
第三个里程碑:修改 agent 配置指向 proxy
第四个里程碑:web 界面添加代理
管理 >> agent 代理程序 >> 创建代理
代理程序名称要填写主机名
稍等片刻就能在程序中出现代理
在主机中能发现主机代理
7.2 SNMP 监控
7.2.1 使用范围
无法安装 agent 很多前辈的监控软件都可以监控各种设备 都是通过 snmp 监控 snmp simple network manager protocol 简单网络管理协议简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。
7.2.2 安装 snmp 程序
7.2.3 配置 snmp 程序
7.2.4 测试 snmp
说明:
snmpwalk 类似 zabbix_get
-v 2c 指定使用 snmp 协议的版本 snmp 分为 v1 v2 v3
-c public 指定暗号
sysname 类似 zabbix 的 key
7.2.5 在 web 界面进行配置
添加新的主机,注意使用 snmp 接口
选择模板,注意使用 SNMP 的模板
添加完成就能够在主机中看到 snmp 监控对的主机
版权声明: 本文为 InfoQ 作者【CTO技术共享】的原创文章。
原文链接:【http://xie.infoq.cn/article/ae61e7bcadf0301bad36bc595】。未经作者许可,禁止转载。
评论