zabbix简介:
Zabbix 是一个企业级分布式开源监控解决方案。
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。
客户端每隔一段时间主动向服务端发起连接请求–>服务端收到请求,查询客户端需要取的item信息,发送给客户端–>客户端收集数据发送服务端–>结束。
被动模式的流程:
客户端开一个端口默认10050,等待服务端来取数据,然后客户端收集数据发送到服务端,然后结束。
Zabbix常用术语的含义
-
主机 (host)
一台你想监控的网络设备,用IP或域名表示 -
主机组 (host group)
主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。 -
监控项 (item)
你想要接收的主机的特定数据,一个度量数据。 -
触发器 (trigger)
一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式。当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。 -
动作 (action)
一个对事件做出反应的预定义的操作。
一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成 -
媒介 (media)
发送告警通知的手段;告警通知的途径 -
远程命令 (remote command)
一个预定义好的,满足一些条件的情况下,可以在被监控主机上自动执行的命令 -
模版 (template)
一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,应用,Web场景等)的集合
模版的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上。 -
web 场景 (web scenario)
利用一个或多个HTTP请求来检查网站的可用性 -
前端 (frontend)
Zabbix提供的web界面 -
Zabbix server
Zabbix软件实现监控的核心程序,主要功能是与Zabbix server和Agents进行交互、触发器计算、发送告警通知;并将数据集中保存等 -
Zabbix agent
Zabbix agent部署在监控的目标上,主动监测本地的资源和应用(硬件,内存,处理器统计等)。
Zabbix agent收集本地的操作信息并将数据报告给Zabbix server用于进一步处理。一旦出现异常 (比如硬盘空间已满或者有崩溃的服务进程), Zabbix server会主动警告管理员指定机器上的异常。
zabbix 监控架构
zabbix的监控架构在实际监控架构中,zabbix根据网络环境、监控规模等 分了三种架构: server-client 、master-node-client、server-proxy-client三种 。
image.png1、server-client架构也是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理 ,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境 。
2、server-proxy-client架构其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。该架构经常是和master-node-client架构做比较的架构 ,一般适用于跨机房、跨网络的中型网络架构的监控
3、master-node-client架构该架构是zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境 。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步.
Zabbix 监控系统监控对象
image.pngIPMI:智能平台管理接口(Intelligent Platform Management Interface)IPMI 能够横跨不同的操作系统、固件和硬件平台,可以智能的监视、控制和自动回报大量服务器的运作状况,以降低服务器系统成本。
SNMP:网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器、工作站、路由器、交换机等)的一种标准协议,它是一种应用层协议。
在容器中启动zabbix的方式:
所用镜像为官方的zabbix镜像,所使用的zabbix-server的版本为4.4.1
- 该示例示范了如何使用内置 MySQL 数据库、Zabbix server、基于 Nginx Web 服务器的 Zabbix Web 界面和 Zabbix Java gateway 来运行 Zabbix 应用。
docker run --name zabbix-appliance -t \
-p 10051:10051 \
-p 80:80 \
-d zabbix/zabbix-appliance:latest
- 该示例示范了如何运行 MySQL 数据库支持、基于 Nginx Web 服务器的 Zabbix Web 界面和 Zabbix Java gateway。
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin
现在就可以访问本地的80端口进入zabbix主页,zabbix本身有两个用户一个为Admin,密码为zabbix,该用户为系统的超级管理员拥有所有权限。
另一个用户为guest,一个特殊的默认用户。guest用户对Zabbix中的对象没有任何权限。
启动容器后,需要另行使用一个centos7的容器安装agent进行模拟测试
启动之前首先查看zabbix容器中zabbix-server的version,在zabbix官网下载对应版本的yum源。
yum install zabbix-agent
修改agent的配置文件/etc/zabbix/zabbix_agent.conf
Server=192.168.246.228 #zabbix服务器的地址
ServerActive=192.168.246.228 #主动模式 zabbix-server-ip
Hostname=zabbix-agent-none1
UnsafeUserParameters=1 #是否限制用户自定义 keys 使用特殊字符 1是可以启用特殊字符 0是不可以启用特殊字符
EnableRemoteCommands=0 #是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.
修改完成之后,保存退出,由于使用的是容器的原因,需要手动执行zabbix_agent,若使用的真机或虚拟机,则可以使用systemctl管理程序
网友评论