zabbix的官方文档:www.zabbix.com/

监控三剑客:cacti,nagios,zabbix。当然还有其他的监控系统:比如Prometheus(Prometheus是一个开源监控系统,它前身是SoundCloud的警告工具包。)

 

这里对zabbix和Prometheus进行对比:

Zabbix

Prometheus

后端用 C 开发,界面用 PHP 开发,定制化难度很高。

后端用 golang 开发,前端是 Grafana,JSON 编辑即可解决。定制化难度较低。

集群规模上限为 10000 个节点。

支持更大的集群规模,速度也更快。

更适合监控物理机环境。

更适合云环境的监控,对 OpenStack,Kubernetes 有更好的集成。

监控数据存储在关系型数据库内,如 MySQL,很难从现有数据中扩展维度。

监控数据存储在基于时间序列的数据库内,便于对已有数据进行新的聚合。

安装简单,zabbix-server 一个软件包中包括了所有的服务端功能。

安装相对复杂,监控、告警和界面都分属于不同的组件。

图形化界面比较成熟,界面上基本上能完成全部的配置操作。

界面相对较弱,很多配置需要修改配置文件。

发展时间更长,对于很多监控场景,都有现成的解决方案。

2015 年后开始快速发展,但发展时间较短,成熟度不及 Zabbix。

 

一.zabbix的简单介绍

 

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。它可以监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。

zabbix是开源监控系统,企业使用zabbix来对成千上万台服务器进行批量监控,批量监控有两种规则:自动发现规则和自动注册规则。

 

二.实验环境(rhel7.3版本)

1.selinux和firewalld状态为disabled

2.各主机信息如下:

主机

ip

server1(zabbix-server,zabbix-agent,httpd)

172.25.83.1

server2(zabbix-agent)

172.25.83.2

 

三.zabbix的安装和部署

 

配置server1:(zabbix-server,zabbix-agent。zabbix-server端的日志所在的文件: cat /var/log/zabbix/zabbix_server.log

 

前期准备:

 

清除环境(因为server1之前安装过mysql,mysql和mariadb不兼容,所以要清除环境)

 

<1>关闭mysqld服务,以免mysqld服务占用3306端口

[root@server1 ~]# systemctl stop mysqld

 

<2>删除/var/lib/mysql下的文件(因为mariadb服务启动时生成的执行入口文件,在该目录下。如果不删除该目录下的文件,那么mariadb服务将无法启动)

[root@server1 ~]# cd /var/lib/mysql
[root@server1 ~]# rm -rf *

 

<3>删除之前安装mysql时的一些rpm包(mysql-community-common-5.7.24-1.el7.x86_64,mysql-community-client-5.7.24-1.el7.x86_64, mysql-community-libs-5.7.24-1.el7.x86_64 ,mysql-community-server-5.7.24-1.el7.x86_64),因为这些包会影响mariadb服务的安装。

[root@server1 mysql]# yum remove mysql-community-common-5.7.24-1.el7.x86_64 -y
[root@server1 mysql]# yum remove mysql-community-client-5.7.24-1.el7.x86_64 mysql-community-libs-5.7.24-1.el7.x86_64 mysql-community-server-5.7.24-1.el7.x86_64 -y

 

1.下载zabbix软件包及其对应依赖性对应的包,并进行安装

 

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库

 

[root@server1 ~]# yum install * -y

 

注:php的安装版本需要注意(yum list php 查看匹配版本);如果是7.0版本的,需要安装的为5.4.16-21.el7;如果是7.2的主机,需要安装为5.4.16-36.el7;如果是7.3版本的,需要安装的为5.4.16-42.el7。

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_mysql_02

 

2.安装数据库,启动数据库,登陆数据库,并对数据库进行配置

 

[root@server1 ~]#  yum install mariadb-server -y
[root@server1 mysql]# systemctl start mariadb
[root@server1 mysql]# mysql_secure_installation    #第一个敲空格,其余的敲y
[root@server1 mysql]# mysql -uroot -proot
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;    #创建zabbix数据库,因为之后要在web界面进行操作,为了防止乱码,这里创建的数据库要求格式为utf-8
MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';   
#创建zabbix用户,并对其进行授权

 

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_配置文件_03

 

3.安装httpd服务,对其进行配置,并启动httpd服务

 

<1>安装httpd服务

[root@server1 ~]# yum install httpd -y

 

<2>对httpd服务进行配置(编辑/etc/httpd/conf.d/zabbix.conf)

[root@server1 ~]# cd /etc/httpd/conf.d/
[root@server1 conf.d]# vim zabbix.conf    #更改时区
 19         php_value date.timezone Asia/Shanghai

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_04

 

<3>启动httpd服务

[root@server1 ~]# systemctl start httpd

 

4.导入数据库

 

<1>先找到数据库要导入的位置:

 

[root@server1 ~]# rpm -ql zabbix-server-mysql-4.0.5

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_05

 

<2>导入数据库

 

[root@server1 ~]# cd /usr/share/doc/zabbix-server-mysql-4.0.5/
[root@server1 zabbix-server-mysql-4.0.5]# zcat create.sql.gz | mysql -u zabbix -p zabbix  ##这里的第一个zabbix是用户,第二个zabbix是要创建数据库的名字
Enter password:  #这里的密码是zabbix用户的密码,输入之后,等待,不要ctrl+c
[root@server1 zabbix-server-mysql-4.0.5]# mysql -uroot -proot   #登陆数据库查看,可以看到zabbix数据库中共有140张表
MariaDB [(none)]> show databases;
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_06

 

5.编辑zabbix配置文件,并启动zabbix-server与zabbix-agent服务

 

<1>先找到zabbix-server配置文件所在的位置

 

[root@server1 ~]# rpm -ql zabbix-server-mysql-4.0.5

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_配置文件_07

 

<2>编辑zabbix-server的配置文件(编辑 /etc/zabbix/zabbix_server.conf)

 

[root@server1 ~]# vim /etc/zabbix/zabbix_server.conf
124 DBPassword=zabbix      #zabbix用户的密码

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_08

 

<3>启动zabbix-server和zabbix-agent服务

 

[root@server1 ~]# systemctl start zabbix-server
[root@server1 ~]# systemctl start zabbix-agent

 

6.访问http://172.25.83.1/zabbix,进行监控项配置即可

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_09

点击Next step

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_mysql_10

点击Next step

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_11

输入zabbix用户的密码:zabbix。

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_12

点击Next step

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_13

输入Name:Zabbix server(这个名字可以随便起的)。点击Next step

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_14

点击Next step

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_15

点击Finish,完成安装

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_16

输入Username:Admin和Password:zabbix。进入登陆界面(注意Admin的首字母需要大写)

 

注意:初始帐号和密码。

帐号:Admin

密码:zabbix

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_17

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_18

点击小人这里,我们可以修改语言

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_配置文件_19

将Language该为Chinese(zh_CN),然后点击update,即修改成功

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_配置文件_20

 

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_21

 

 

配置server2(zabbix-agent。zabbix-agent端的日志所在的文件: cat /var/log/zabbix/zabbix_agent.log

 

1.下载zabbix-agent对应软件包:zabbix-agent-4.0.5-1.el7.x86_64.rpm,并进行安装

 

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_22

[root@server2 ~]# yum install zabbix-agent-3.4.6-1.el7.x86_64.rpm -y

 

2.配置zabbix-agent,并启动zabbix-agent服务

 

<1>先找到zabbix-agent配置文件所在的位置

 

[root@server2 ~]# rpm -ql zabbix-agent-4.0.5

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_23

 

<2>编辑zabbix-agent的配置文件

 

[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf
 98 Server=172.25.83.1
139 ServerActive=172.25.83.1   #主动模式的server IP地址(客户端主动发送数据给服务端)
150 Hostname=server2     #客户端的hostname(在web界面上显示的名字)

#在这里,139行可写,可不写。因为现在配置的是被动模式(服务端来找客户端要数据)。要想开启主动模式,还要结合StartAgents这一行(#StartAgents=3   #客户端agent模式,设置为0表示禁止被动模式)

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_配置文件_24

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_mysql_25

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_26

 

<3>启动zabbix-agent服务

 

[root@server2 ~]# systemctl start zabbix-agent

 

测试:在server1(zabbix-server)端添加监控:

 

1.自动发现agent:

 

配置—>自动发现。点击“停用的”,使得其显示“已启用”。

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_27

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_28

点击Local network,进入自动发现规则;

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_29

在IP范围内填入,自己主机的IP网段(这里写的是172.25.83.1-10,其实只要这个ip段包含server2主机对应的ip地址172.25.83.2即可)。然后,点击更新,以启动自动发现的动作

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_30

然后选择动作——事件源(选择自动发现),进入下一个界面

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_31

点击停用的,使其启用,即显示“已启用”

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_mysql_32

为了加快自动发现的速度,点击Auto discovery Linux servers,进入界面添加触发条件

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_33

在新的触发条件这一栏,写入"接收到的值包含server",点击添加,再点击更新,进入下一个界面

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_mysql_34

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_配置文件_35

为了加快自动发现的速度,我们在server1端重启zabbix-server服务,在server2端重启zabbix-agent服务

[root@server2 ~]# systemctl restart zabbix-agent
[root@server1 ~]# systemctl restart zabbix-server

点击监测——>自动发现,会出现server2;

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_36

同样的,点击配置——>主机,等待几十秒,会出现server2;

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_37

我们看到的是ZBX的图标是灰色的,这是不对的。等待几秒,进行刷新,看图标是否变绿。ZBX的图标是绿色的,这才是正确的。

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_mysql_38

 

 

2.手动添加agent:

 

<1>停止自动发现

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_39

<2>创建主机

点击 配置—>主机—>创建主机

填写主机名称,选择群组,填写IP地址

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_40

 

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_mysql_41

值的注意的是:主机名称:必须要和agent中的HostName中一样,否则会出错

点击最下方的添加,进入下一个界面

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_42

点击下方的server2,进入下一个界面

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_43

点击模板,进行模板的编写,点击右方的选择,选择Template OS Linux,然后选择添加,再选择更新,进入下一个界面

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_44

最后的效果图

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_45

我们看到的是ZBX的图标是灰色的,这是不对的。等待几秒,进行刷新,看图标是否变绿。ZBX的图标是绿色的,这才是正确的。

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_mysql_38

 

 

3.自动注册agent(适合生产环境:大批量)

 

首先删除手动添加的server2这台主机;然后选择配置—>动作,选择自动注册

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_mysql_47

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_48

 

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_mysql_49

点击创建动作,进入下一步

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_50

在动作这一栏,写入名称:auto_reg。新的触发条件这一栏,写入:server2

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_51

点击操作,进入下一个界面,在该界面的操作中选择如下的三个操作,然后,点击添加,进入下一个界面

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_52

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_配置文件_53

点击配置—>主机,停留几十秒,可以看到最后的效果图(为了加快看到server2这台主机,我们可以在server2端重启zabbix-agent服务)

[root@server2 ~]# systemctl restart zabbix-agent

 

最后的效果图

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_普罗米修斯 比 ZABBIX 难学_45

我们看到的是ZBX的图标是灰色的,这是不对的。等待几秒,进行刷新,看图标是否变绿。ZBX的图标是绿色的,这才是正确的。

普罗米修斯 比 ZABBIX 难学 普罗米修斯和zabbix的区别_数据库_55