一、zabbix介绍
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题
zabbix由2部分构成,zabbix server与可选组件zabbix agent
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能
它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上
二、为什么要使用zabbix?
对于运维人员来说,监控是非常重要的,因为如果想要保证公司的线上业务整体能够稳定运行,那么我们则需要实时关注与其相关的各项指标是否正常,而一个业务系统的背后,往往存在着很多的服务器、网络设备等硬件资源,如果我们想要能够更加方便的、集中的监控他们,我们则需要依靠一些外部的工具,而zabbix就是一个被广泛使用的,可以实现集中监控管理的应用程序。
我们监控的初衷就是当某些指标不符合我们的需求时,我们能够在第一时间发现异常,所以,监控工具需要定期的对被监控主机进行检查、信息收集等操作,当被监控主机出现异常时,能够及时报警、通知管理员,并且需要记录这些异常,以便我们分析这些数据,查漏补缺,那么,一个监控工具就应该具备采集信息、存储信息、展示信息、报警通知等功能,而zabbix就可以做到这些。
三、简述搭建Zabbix监控环境
要想搭建一个Zabbix的工作环境,需要从服务器入手。与服务器通信,管理员需要使用一个Zabbix前端界面,与Zabbix服务器和数据库进行通信。三个关键(web界面、服务器和数据库)可以安装在同一台服务器上,但是如果你拥有一个更大更复杂的环境,将它们安装在不同的主机上也是一个选项。Zabbix服务器能够直接监控到同一网络中的设备,如果其他网络的设备也需要被监控,那还需要一台Zabbix代理服务器。
四、zabbix的主要特点
安装与配置简单,学习成本低
支持多语言(包括中文)
免费开源
自动发现服务器与网络设备
分布式监视以及WEB集中管理功能
可以无agent监视
用户安全认证和柔软的授权方式
通过WEB界面设置或查看监视结果
email等通知功能
五、Zabbix主要功能
CPU负荷
内存使用
磁盘使用
网络状况
端口监视
日志监视
六、zabbix 通讯方式
理论上来说,只要是与我们的业务有关的硬件资源,都应该被监控,比如:主机、交换机、路由器、UPS等等
但是,监控它们的前提是能与它们进行通讯,那么问题来了,由于硬件的不同,导致我们无法使用统一的方法去监控他们
这个时候,就需要监控程序有一定的通用性,或者说,监控程序需要能够与多种硬件设备通讯,才能满足我们的监控需求
举个例子:如果被监控的对象是一台安装了linux操作系统的服务器
那么我们可以通过ssh或者telnet这种远程工具与被监控对象建立起通讯的通道
可是如果被监控的对象是一台安装了其他操作系统的服务器呢,更甚之,被监控的对象并不是服务器
而只是一台交换机或者路由器呢,所以,zabbix如果想要能够全面的监控这些对象,则需要能够通过各种方法与它们进行通讯。
七.zabbix 各项组件介绍
Zabbix由几个主要的软件组件构成,这些组件的功能如下:
(1)服务器
Zabbix服务器是代理程序报告系统可用性,系统完整性和统计数据的核心组件,是所有配置信息,统计信息和操作数据的核心存储器。
(2)数据库存储
所有配置信息和的zabbix收集到的数据都被存储在数据库中。
(3)网络界面
为了从任何地方和任何平台都可以轻松的访问Zabbix,我们提供基于Web的Zabbix界面。
该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。
(4)代理服务器
Zabbix proxy可以替Zabbix Server收集性能和可用性数据.Proxy代理服务器是Zabbix软件可选择部署的一部分;
当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。
(5)代理监控代理
Zabbix代理监控代理部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix服务器。
(6)数据流:
了解的zabbix内部的数据流同样很重要。监控方面,为了创建一个监控项(项)用于采集数据,必须先创建一个主机(主机)。
告警方面,在监控项里创建触发器(扳机) ,因此,如果你想收到Server X CPU负载过高的告警,你必须:
1.为Server X创建一个主机并关联一个用于对CPU进行监控的监控项(Item)。
2.创建一个Trigger,设置成当CPU负载过高时会触发
3.触发被触发,发送告警邮件虽然看起来有很多步骤,
但是使用模板的话操作起来其实很简单,ZABBIX这样的设计使得配置机制非常灵活易用。
Zabbix Server: 负责接收Agent发送的报告信息,组织所有配置、数据和操作。
Database Storage: 存储配置信息以及收集到的数据。
Web Interface: Zabbix的GUI 接口,通常与Server运行在同一台机器上。
Proxy: 可选组件,常用于分布式监控环境中。
Agent: 部署在被监控主机上,负责收集数据发送给Server。
八、zabbix的工作流程
(1)Agent获取被监控端数据,发送给Server。
(2)Server记录所接收到的数据,存储在Database中并按照策略进行相应操作。
(3)Web Interface将收集到的数据和操作信息显示给用户。
九、zabbix搭建过程
登陆数据库,创建zabbix数据库并且授权
create database zabbix character set utf8 collate utf8_bin; 字符 校验字符
grant all privileges on zabbix.* to zabbix@localhost identified by 'westos'; 授权
zcat /usr/share/doc/zabbix-server-mysql-4.4.1/create.sql.gz | mysql -uzabbix -p zabbix
登录数据库可以看到zabbix数据库里面有很多表格以及数据
编辑zabbix的配置文件,修改zabbix数据库密码
此密码是在数据库对zabbix用户进行授权时候的密码
[root@server1 ~]# vim /etc/zabbix/zabbix_server.conf
[root@server1 ~]# systemctl start zabbix-server.service
[root@server1 ~]# systemctl start zabbix-agent.service
在安装php服务是由于依赖性httpd会自动安装
[root@server1 ~]# vim /etc/httpd/conf.d/zabbix.conf 更改时区
[root@server1 ~]# systemctl start httpd
访问zabbix页面
点击【Next step】——相关配置都必须是【OK】
输入server端的名字(可以自行命名)
查看server的状态,如图绿色部分显示已经启用监控
十、添加监控主机
1>接下来在添加一台主机监控起来
点击模板。指定监控项
[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf
更改:
98 Server=172.25.254.1
139 ServerActive=172.25.254.1
150 Hostname=server2
[root@server2 ~]# systemctl start zabbix-agent.service
2>添加监控主机方法(自动发现添加主机)
配置自动注册(需要一台全新主机server3)
配置zabbix服务的配置文件
[root@server3 ~]# yum install -y zabbix-agent-4.4.1-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
不要忘记添加主机
启动server3主机上的zabbix服务查看添加成功
[root@server3 ~]# systemctl start zabbix-agent.service 启动
[root@server1 ~]# systemctl restart zabbix-server.service 重启
总结:自动发现是主动添加,自动注册是被动添加