Zabbix 手册:https://www.zabbix.com/documentation/3.4/zh/manual
Zabbix 3.0 从入门到精通(zabbix使用详解):https://www.cnblogs.com/clsn/p/7885990.html
一、概述
Zabbix能监控各种网络参数,以及服务器健康性和完整性。提供了灵活的通知机制,以快速反馈服务器的问题。提供了Web的前端页面,以访问报告、统计信息和配置参数。
1、组成结构
zabbix由Zabbix server、Zabbix proxy和Zabbix agent组成
Zabbix server
核心程序,通过主动轮询和被动捕获数据,计算是否满足触发器条件,向用户发送通知。
分三个不同组件:Zabbix服务器、Web前端和数据库存储。
Zabbix proxy
可选部署,替Zabbix Server收集数据,分担负载压力。
所有收集的数据都在本地进行缓存,然后传送到proxy所属的Zabbix sever。需要使用独立的数据库。
Zabbix agent
部署在监控目标,调用本地系统监控性能,收集数据,报告给Zabbix Server。
可以执行被动和主动两种检查方式。
2、工作原理
zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web 根据数据在前端进行展现和绘图。
agent收集数据分为两种模式:
被动模式
server/proxy向agent请求获取监控项的数据,agent应答数据请求,回送结果。
默认采用,客户端量大之后,pull任务会出现积压,出现延迟和卡顿。
被动模式端口不可用时,也可选用主动模式
主动模式
agent先请求server获取主动的监控项列表,再主动将收集数据周期性提交给server/proxy。
更改为主动模式后,监控项也要选择主动模式。
3、常用架构
在实际监控架构中,zabbix根据网络环境、监控规模等分了三种架构:
server-client架构
最简单的架构,监控机和被监控机之间不经过任何代理,直接由zabbix server和zabbix agentd之间进行数据交互。 适用于网络比较简单,设备比较少的监控环境。
server-proxy-client架构
proxy沟通server、client,分担负载压力,没有前端,缓存agentd数据,再提交给server。 适用于跨机房、跨网络的中型网络架构的监控。
master-node-client架构
每个node同时也是一个server端,node下面可以接proxy,也可以直接接client 。node有自已的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master的故障或损坏对node其下架构的完整性。 适用于跨网络、跨机房、设备较多的大型环境。
二、安装
Zabbix server
依赖
依赖Apache、MySQL、PHP,需事先装好LAMP环境。
从部署包安装
以CentOS 7 、zabbix3.2为例
- 安装源码库配置部署包。
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
- 安装Zabbix部署包。
yum install zabbix-server-mysql zabbix-web-mysql
- 安装初始化数据库
shell> mysql -uroot -p<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>';
mysql> quit;
- 导入初始架构和数据。
cd /usr/share/doc/zabbix-server-mysql-3.2.11
zcat create.sql.gz | mysql -uroot zabbix
- 修改Zabbix前端的Apache配置文件
更改时区
vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
- 启动Zabbix Server进程
systemctl start zabbix-server
- 重启Apache Web服务器
systemctl start httpd
- 访问/setup.php初始化
访问http://zabbix-frontend-hostname/zabbix/setup.php,配置数据库等信息。
默认的用户名/密码为 Admin/zabbix。
配置通知脚本
- 将通知脚本放入默认路径:/usr/lib/zabbix/alertscripts。
- 在“报警媒介类型”添加通知脚本。
Zabbix Agent
yum install zabbix-agent
被动模式配置
1、agent端
StartAgents=3//被动模式,启动客户端数不为0
Server=x.x.x.x//允许获取数据的地址,可配置0.0.0.0/0允许任意ip获取数据
Hostname=zabbix_client//与服务端设置的名字相同
2、zabbix-server端
zabbix监控模板默认使用的就是被动模式,直接添加就好
主动模式配置
1、agent端
StartAgents=0//主动模式,不启动客户端
ServerActive=x.x.x.x//配置服务器地址,可配置域名,域名如用nginx需要tcp转发10051端口
Hostname=zabbix_master//与服务端设置的名字相同
2、zabbix-server端
克隆默认的模板,将配置项和自动发现改为主动模式,主机连接主动模式模板
三、迁移
在新服务器上安装好相同版本Zabbix server。
不保留历史数据
只需迁移配置文件。
Zabbix server配置文件:/etc/zabbix/zabbix_server.conf
Zabbix web配置文件:/etc/httpd/conf.d/zabbix.conf
通知脚本:/usr/lib/zabbix/alertscripts
保留历史数据
还需迁移数据库。
1.导出zabbix数据库
mysqldump -uroot -p --opt zabbix > zabbix.sql
2.传送sql文件到新的服务器上(新服务器上基本环境应搭建好)
scp zabbix.sql [email protected]:/tmp
3.在新服务器上导入sql文件
mysql -uroot -p zabbix < zabbix.sql
四、使用
为了创建一个监控项(item)用于采集数据,必须先创建一个主机(host)。告警方面,在监控项里创建触发器(trigger),通过触发器(trigger)来触发告警动作(action)。
或者对主机使用模板。
添加用户
- 以具有“超级管理员”权限的用户登陆。
- 在“管理”→“用户”页面下,点击“创建用户”以增加用户。
- 填写基本信息,选择用户组,
- 在“报警媒介”标签下,添加邮箱和微信报警
- 在“权限”标签下,选择用户类型
添加主机
- 以具有“超级管理员”权限的用户登陆。
- 在“配置”→“主机”页面下,点击“创建主机”以新增主机。
- 主机名称和IP地址都填写IP地址,选择主机组。
添加监控项
- 在“主机”→“监控项”页面下,点击“创建监控项”以新增监控项。
- 类型根据客户端选择“Zabbix客户端”或“Zabbix客户端(主动式)”
- 键值填写 Zabbix Agent预定义值 中的一种。
- “历史数据保留时长”填写7天。
添加触发器
- 在“主机”→“触发器”页面下,点击“创建触发器”以新增触发器。
- 填写名称、选择表达式
添加报警媒介
- 在“管理”→“报警媒介类型”页面下,点击“创建报警媒介”以新增报警媒介。
- 添加类型为脚本,名称为/usr/lib/zabbix/alertscripts下通知脚本的报警媒介
- 在“配置”→“动作”页面下,点击“创建动作”以新增报警媒介的动作。
添加模版
- 在“配置”→“模版”页面下,点击“创建模版”以新增模版。
- 为模板添加监控项,之后就可给主机链接模板,复用监控项