什么是zabbix?
zabbix是一个企业级分布式监控运维平台。提供分布式系统监控和网络监控功能,具有主机性能的监控和网络性能的监控,数据库性能监控,以及多种告警方式,提供详细报表和图表绘制等功能,支持自动发现网络设备和负责,支持分布式,能集中展示和管理分布式监控点,扩展性强,server提供通用接口,可以开发完善各类监控,监控对象可以是Linux或Windows,也可以是路由器。
zabbix的功能
- 数据采集
- 灵活的阈值定义
- 高度可配置化的告警
- 实时图形
- web监控页面
- 丰富的可视化选项
- 历史数据存储
- 且配置简单
- 可套用模板
- 网络发现
- Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。
- 权限管理系统
- 二进制守护进程
- 适应更加复杂的环境
zabbix监控原理
agent安装在被监控的主机上,agent负责定期收集客户端本地各项数据,并发送到zabbix的服务端,zabbix收到数据,会将数据存到数据库中,用户基于zabbix web可以看到数据在前端展现图像,当zabbix监控某个具体的项目时,该项目会设置一个触发器的阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作(发送信息,发送命令)
zabbix优缺点
优点:
- 成本低,开源
- server对设备性能要求低
- 支持设备多
- 支持分布式集中管理,典型的c/s架构
- 开放式接口,扩展性强
缺点:
- 无厂家支持,出现问题解决比较麻烦
- 需在被监控主机上安装agent,所有数据都存在数据库里,产生的数据很大,瓶颈主要在数据库
agent采集收集数据分主被动俩种模式
agent主动模式:agent会主动发送监控列表,并主动将监控项内需要检测的数据提交给server或者proxy
agent被动模式:server向agent请求获取监控项的数据,agent返回数据(默认被动)
zabbix架构
- server-client架构
也是zabbix的最简单的架构,监控机和被监控机之间不经过任何代理 ,直接由zabbix server和zabbix agentd之间进行数据交互。适用于网络比较简单,设备比较少的监控环境 。 - server-proxy-client架构
其中proxy是server、client之间沟通的一个桥梁,proxy本身没有前端,而且其本身并不存放数据,只是将agentd发来的数据暂时存放,而后再提交给server 。该架构经常是和master-node-client架构做比较的架构 ,一般适用于跨机房、跨网络的中型网络架构的监控。 - master-node-client架构
该架构是zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境 。每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损坏对node其下架构的完整性。
zabbix组件说明
- zabbix server:负责接收agent发送的报告信息的核心组件,所有配置,数据统计,和操作数据都由它组织进行
- database storage:专用于存储所有配置信息,以及由zabbix收集的数据
- web interface:zabbix的GUI接口
- proxy;可选组件,常用于监控节点很多的分布时环境中,代理server收集部分数据转发到server,可以减轻server的压力
- agent:部署在被监控的主机上,负则收集主机本地数据,如cup 内存 数据库等数据发往server端或proxy端
一些面试题
口述安装部署过程
在lnmp或lnmt的环境下,利用yum安装依赖关系,创建zabbix用户,源码编译安装zabbix,进入数据库,创建一个zabbix用户,并给予他库表的权限,可以为全部库表的所有权限,并刷新权限列表,退出数据库后,进入zabbix的配置文件,修改相关配置,启动zabbix服务。
使用zabbix可监控什么
可以监控一些硬件信息,比如cpu,内存等还可以监控网络设置,像路由器,交换机还有监控java的JVM监控web的访问状态
zabbix的常用模板
一般先从默认模板里边找,如果没有我们可以使用自定义模板
zabbix的自定义模板
主机群组:管理主机
- 创建模板
- 应用集:应用的集合(CPU、内存、磁盘、网络)监控项:监控的项目
- 触发器:当监控项达到设定阈值,触发报警
- 图形:将监控的项目以图形显示
zabbix邮件报警
安装mailxdos2unix(转义工具),在zabbix mail.rc配置文件末尾添加指定接收邮件邮件箱地址,指定邮箱服务器地址,指定接收邮件邮箱地址的授权码,编辑zabbix_server配置文件,引用一个脚本
- 定义发件标题和收件人信息
- 定义文件路径
- 使用dos2unix命令转换字符,避免收到邮件显示不正常
- 知心话邮件发送命令,加上权限,属组,宿主,进行测试
zabbix四种监听模式
- Anget 模式是用来监控操作系统和软件服务的有主被动模式
- Snmp 模式是用来监控网络物理设备例如路由器,交换机
- Jmx 模式专门监控jvm的
- Ipmi 模式用来监控物理服务器硬件的,例如cpu ,mem,radio
zabbix server端的pollers进程和trappers进程的作用
pollers的作用是主动的找agent端去要数据,trappers是出来agent端发来的数据
企业中Zabbix-server的监控频率
配置、主机、监控项、数据更新间隔:一般都是90到300秒,忙的时候90,不忙的时候300
企业中Zabbix-server的报警频率
配置、动作、操作、默认持续步骤操作时间:在报警媒介里,一般设到1到3次,报警的时间设到60秒
ZabbixServer开启java支持
在编译的时候添加模块 --enable-java,在编译之前要安装jdk,
例如:./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp -- with-libcurl --enable-server --enable-agent --enable-proxy --enable-java -
-with-libxml2
ZabbixServer的java gateway作用,监听端口
javagateway是接收jmx数据的,监听端口10052
ZabbixServer默认监听端口?ZabbixAgent默认监听端口?
server默认的是10051,agent默认的是10050
zabbix server的java pollers进程作用
主动发起向客户端要jmx数据的进程
在哪里修改agent主动模式
在/etc/zabbix/zabbix_agent.conf里第136行修改主动模式
zabbix新老版本的区别
自定义模板的不同,以及旧版本中使用的命令和模块的不同
zabbix系统运维
主要在Linux centos7上面安装部署的zabbix,主要是用来监控CPU,内存,磁盘,以及服务的运行状态,不会时刻关注,但是会设置报警机智,如果在某一时刻,触发了报警装置,则会在微信或邮箱中收到,并及时处理
同类问题,如简述主被动模式,你心中的zabbix,zabbix的优点,zabbix的四种监听模式在上面都有介绍,这里就不重复叙述了,面试会问