一.zabbix简介
1.什么是zabbix
Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持。
Zabbix 是一个企业级的分布式开源监控方案。
Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。
Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保从任何方面评估网络状态和服务器的健康性。适当的配置后,Zabbix可以在IT基础架构监控方面扮演重要的角色。对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此。
Zabbix是免费的。Zabbix是根据GPL通用公共许可证第2版编写和发行的。这意味着它的源代码都是免费发行的,可供公众任意使用。
2.zabbix结构
Zabbix由几个主要的软件组件构成,这些组件的功能如下。
服务器:
Zabbix服务器是代理程序报告系统可用性,系统完整性和统计数据的核心组件,是所有配置信息,统计信息和操作数据的核心存储器。
数据库存储 :
所有配置信息和的zabbix收集到的数据都被存储在数据库中。
网络界面:
为了从任何地方和任何平台都可以轻松的访问Zabbix,我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。
代理服务器 :
Zabbix proxy可以替Zabbix Server收集性能和可用性数据.Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。
代理监控代理 :
Zabbix代理监控代理部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix服务器。
数据流:
了解的zabbix内部的数据流同样很重要。监控方面,为了创建一个监控项(项)用于采集数据,必须先创建一个主机(主机)。告警方面,在监控项里创建触发器(扳机) ,因此,如果你想收到Server X CPU负载过高的告警,你必须:1.为Server X创建一个主机并关联一个用于对CPU进行监控的监控项(Item)。2.创建一个Trigger,设置成当CPU负载过高时会触发3.触发被触发,发送告警邮件虽然看起来有很多步骤,但是使用模板的话操作起来其实很简单, ZABBIX这样的设计使得配置机制非常灵活易用。
3.zabbix架构
Zabbix Server:负责接收Agent发送的报告信息,组织所有配置、数据和操作。
Database Storage:存储配置信息以及收集到的数据。
Web Interface:Zabbix的GUI 接口,通常与Server运行在同一台机器上。
Proxy:可选组件,常用于分布式监控环境中。
Agent:部署在被监控主机上,负责收集数据发送给Server。
4.zabbix的工作流程
- Agent获取被监控端数据,发送给Server。
- Server记录所接收到的数据,存储在Database中并按照策略进行相应操作。
- Web Interface将收集到的数据和操作信息显示给用户。
二.zabbix的部署
1.实验环境
主机名(IP) | 服务 |
---|---|
server1(172.25.254.1) | zabbix server |
server2(172.25.254.2) | zabbix agent |
server3(172.25.254.3) | zabbix agent |
zabbix的部署:
1.官网下载zabbix部署所需安装包
2.server1(zabbix server)安装zabbix监控相关软件
注意配置好网络yum源,因为还有相关的依赖性软件需要网络yum源安装
3.zabbix server安装mariadb数据库及其相应的配置
a.安装数据库并且进行安全初始化
[root@server1 4.0]# yum install -y mariadb-server
[root@server1 4.0]# systemctl start mariadb
[root@server1 4.0]# mysql_secure_installation //安全初始化
Set root password? [Y/n]y
New password:
Re-enter new password: //输入root超户密码
其余都为yes默认回车即可
b.进入数据库使用utf8编码建立zabbix的库并且授权zabbix用户
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'redhat';
c.导入zabbix数据库并且查看
4.编辑zabbix的配置文件,修改zabbix数据库的密码及其时区
[root@server1 4.0]# cd /etc/zabbix/
[root@server1 zabbix]# ls
web zabbix_server.conf
[root@server1 zabbix]# vim zabbix_server.conf
[root@server1 zabbix]# cd /etc/httpd/conf.d/
[root@server1 conf.d]# ls
autoindex.conf php.conf README userdir.conf welcome.conf zabbix.conf
[root@server1 conf.d]# vim zabbix.conf
5.开启zabbix监控的相应服务
6.在浏览器页面输入http://172.25.254.1/zabbix进行zabbix监控配置的建立
7.登录zabbix并且进行修改密码及其语言
三.zabbix地主机的添加
server2:(agent)
1.官网下载angent的安装包并且安装agent并且
在zabbix web界面添加监控主机的三种方式
法一:手动创建主机
创建主机:
添加模版:
手动添加完成后上面的zbx为灰色,还为启用,需要在server2上配置agent并且开启zabbix-agent服务
[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf
文件需要修改的内容如下:
98 Server=172.25.254.1
139 ServerActive=172.25.254.1
150 Hostname=server2
开启agent服务
[root@server2 ~]# systemctl start zabbix-agent
再次刷新页面,显示server2可用
法二:自动发现
1.在web页面创建自动发现
添加自动发现规则
添加自动发现动作:
添加自动发现规则:
2.在主机server3上配置zabbix-agent
//zabbix-agent的安装
[root@server3 ~]# ls
anaconda-ks.cfg zabbix-agent-4.0.5-1.el7.x86_64.rpm (准备安装包)
[root@server3 ~]# rpm -ivh zabbix-agent-4.0.5-1.el7.x86_64.rpm
[root@server3 ~]# ls
anaconda-ks.cfg zabbix-agent-4.0.5-1.el7.x86_64.rpm
[root@server3 ~]# rpm -ivh zabbix-agent-4.0.5-1.el7.x86_64.rpm
//配置文件的修改
[root@server3 ~]# vim /etc/zabbix/zabbix_agentd.conf
98 Server=172.25.254.1
139 ServerActive=172.25.254.1
150 Hostname=server3
//开启zabbix-agent服务
[root@server3 ~]# systemctl start zabbix-agent
3.再次刷新页面发现server3主机已经添加进来并且显示可用
法三:自动注册
删除server3主机,并且禁用自动发现
修改动作为自动注册并且启用
创建动作:
为动作添加操作:
在server3上重新启动zabbix-agent服务,刷新页面查看
发现server3重新添加