1.zabbix是什么
zabbix是一款基于web页面的、开源的、企业级的,可以分布式部署的监控软件。
2.zabbix的作用
- 监控windows和Linux主机上的软硬件状态。
- 监控各网络设备,如路由器、交换机、防火墙、f5、打印机等。
- 发送告警通知。
- 通过web页面及图形展示监控数据。
3.zabbix的特性
由server和agent程序协同工作,如果是分布式监控还需要proxy程序。
-
监控方式站在agnet的角度分为主动监控(agent active)和被动监控(agent)。
-
主动监控
当监控条目配置为agent active
时,即为主动监控,此时agent会主动根据配置好的时间间隔去向server或proxy询问要监控哪些item,然后将item的数据主动提交给server或proxy。 -
被动监控
当监控条目配置为agent
时,即为被动监控,此时server或proxy会主动向agent请求它要监控的item的数据,然后agent会将数据发送给server或proxy。
-
主动监控
-
支持的监控手段
所谓监控手段即server或proxy通过什么方式来收集监控到的数据,常用的有:- SNMP(polling,trapping)
- IPMI(监控硬件状况)
- JMX(监控java应用)
- 自定义监测(自定义各类监控脚本监测)
-
告警阈值定义
- 在trigger中定义告警阈值或条件
- 存储于后台数据库中
- 可以自定义告警升级机制
- 调用action实现自动化动作
监控数据呈现
zabbix通过内置的画图软件将监控到的数据实时通过web页面呈现出来。-
历史数据存储
- 存储于数据库中
- 支持多种数据库,mysql,db2,oracle,postgresql,sqlite
- 存储时长可自定义
- 自动清理过期历史数据
-
监控主机配置
- 通过添加监控设备方式添加
- 可以使用模板进行配置
-
模板的使用
- 模板包含item,trigger,action等一系列单个主机支持的元素
- 模板中可以使用组监控
- 模板可以继承
-
自动发现功能
- 网络设备自动发现
- agent自动注册
- 自动发现文件系统、网卡、SNMP OID
-
web界面
- web前端采用php编写
- 界面样式可以灵活自定义
- 自带操作日志审计
zabbix API
供第三方程序接入权限系统
可以对用户进行分组认证及授权。agent端
支持Linux和Windows系统。守护进程
基于C语言开发。
4.zabbix系统的组成
-
zabbix_server
- 服务端守护进程。
- 负责处理客户端主动送上来以及它主动去取回的数据。
- 通过web界面呈现这些数据。
-
zabbix_agentd
- 客户端守护进程。
- 负责收集客户端上的数据并发送给server或proxy。
-
zabbix_get
- 服务端工具。
- 在服务器上执行,用于手动收集客户端的监控数据,可以用于监控测试或者排错。
-
zabbix_sender
- 客户端工具。
- 对于非常耗时间的检测项,可以在其检测完成以后,通过它将数据发送给server或者proxy。
- 需要与trapper配合使用。
zabbix_proxy
类似于server,但它只是一个中转站,当跨地区,跨机房部署zabbix系统时,需要用到它,以将它收集到的数据发送给server。-
zabbix_java_gateway
- 类似于agentd程序。
- 只用于java应用程序的监控。
- 只能主动去获取数据,类似于agent active。
- 最终将收集到的数据发送给server或proxy。
zabbix_web
构建zabbix专用的站点,将监控数据以web页面的形式呈现出来,并对zabbix系统进行配置设定。
5.zabbix 3.2.4的软件环境要求
**zabbix 3.2.4 web需求php的环境如下: **
Pre-requisite | Minimum value | Description |
---|---|---|
PHP version | 5.4.0 | |
PHP memory_limit option | 128MB | In php.ini:memory_limit = 128M |
PHP post_max_size option | 16MB | In php.ini:post_max_size = 16M |
PHP upload_max_filesize option | 2MB | In php.ini:upload_max_filesize = 2M |
PHP max_execution_time option | 300 seconds (values 0 and -1 are allowed) | In php.ini:max_execution_time = 300 |
PHP max_input_time option | 300 seconds (values 0 and -1 are allowed) | In php.ini:max_input_time = 300 |
PHP session.auto_start option | must be disabled | In php.ini:session.auto_start = 0 |
Database support | One of: IBM DB2, MySQL, Oracle, PostgreSQL, SQLite | One of the following modules must be installed:ibm_db2, mysql, oci8, pgsql, sqlite3 |
bcmath | php-bcmath | |
mbstring | php-mbstring | |
PHP mbstring.func_overload option | must be disabled | In php.ini:mbstring.func_overload = 0 |
PHP always_populate_raw_post_data option | must be disabled | Required only for PHP versions 5.6.0 or newer.In php.ini:always_populate_raw_post_data = -1 |
sockets | php-net-socket. Required for user script support. | |
gd | 2.0 or higher | php-gd. PHP GD extension must support PNG images (--with-png-dir), JPEG (--with-jpeg-dir) images and FreeType 2 (--with-freetype-dir). |
libxml | 2.6.15 | php-xml or php5-dom |
xmlwriter | php-xmlwriter | |
xmlreader | php-xmlreader | |
ctype | php-ctype | |
session | php-session | |
gettext | php-gettext,Since Zabbix 2.2.1, the PHP gettext extension is not a mandatory requirement for installing Zabbix. If gettext is not installed, the frontend will work as usual, however, the translations will not be available. |
以上参数决定了php在编译时需要指定的参数,以及需要设定的php.ini参数值。