搭建Zabbix监控系统详解

在企业网络运维过程当中,管理员必须随时关注各服务器和网络的运行状况,以便及时发现问题,尽量减小故障的发生。当网络中的设备,服务器等数量较多时,为了更加方便、快捷地得到各类监控信息,一般会借助于一些集中监测软件。php

博文大纲:前端

1、Zabbix概述、工做原理及重要组件;
2、Zabbix安装;
3、配置Zabbix监控系统监控网络设备;java

要想实时地了解服务器的运行情况而且能在出现问题时及时解决,利用监控软件是一个很好的途径。就目前而言,有服务器的地方必然少不了监控系统。现有的监控软件有不少,可是Zabbix能够灵活的监控服务器资源,而且集Cacti和Nagio二者的优势于一身且功能更增强大,实现企业级分布式监控,因此在市场上应用很是普遍!node

1、Zabbix概述、工做原理及重要组件;

(1)Zabbix概述

Zabbix是一个基于Web界面的企业级开源监控套件,提供分布式系统监控与网络监视功能。具备主机的性能监控、网络设备性能监控、数据库性能监控、多种告警方式、详细报表、图表的绘制等功能。监测的对象能够是Linux或Windows服务器,也能够是路由器、交换机等网络设备,经过SNMP(简单网络管理协议)、Zabbix、Agent、PING、端口监视等方法提供对远程网络服务器等监控、数据收集等功能,并提供通知机制使系统管理员能够快速定位、解决系统中存在的各类问题。目前Zabbix最新版本为Zabbix 3.4.官方网站是http://www.zabbix.com 。mysql

Zabbix是免费的。Zabbix遵循GPL(通用公共许可证)版本2,这意味着它的源代码是能够自由分布的。Zabbix的商业版本是由Zabbix公司提供支持的。世界上不少大小不一样的组织机构都依懒于Zabbix做为本身的一个主要的监控平台。尤为是如今不少互联网企业都在使用它。linux

Zabbix是一个高度集成的网络监控解决方案,具体描述如图:
在这里插入图片描述web

(2)Zabbix重要组件

zabbix主要由如下几个重要的组件构成,具体做用以下:sql

  • Zabbix Server:负责接收Agent发送报告信息的核心组件,全部的配置、数据统计、数据操做都由它组织进行;
  • Database strongage:负责存储全部的配置信息以及收集的数据;
  • Web interface:是zabbix的GUI接口,一般强开下与Zabbix Server运行在同一台主机上;
  • Proxy:属于可选组件,经常使用于分布式监控环境中,代理Server收集部分数据,而后转发到Server,能够减轻Server的压力;
  • Agent:部署在被监控的主机(客户端)上,负责收集被监控端主机的数据,如CPU、内存、数据库等数据,而后发送到Server端或Proxy端。

(3)Zabbix进程

默认状况下,Zabbix包含五个程序,另外还有一个是可选的,须要另外安装。数据库

各个程序各自的特色及做用以下:vim

  • zabbix_agentd:客户端守护进程,此进程用于收集被监控端的数据,如CPU负载、内存、硬盘使用状况等;
  • zabbix_get:zabbix工具是单独使用的命令。zabbix_get是在server或者proxy端执行获取远程客户端信息的命令。主要用于排错。例如:在server端获取不到客户端的内存数据时,咱们可使用zabbix_get获取客户端的内容的方式来作故障排查;
  • zabbix_sender:用于发送数据给server或者Proxy,一般用于耗时比较常的检查。不少检查很是耗时间,致使zabbix超时。因而咱们在脚本执行完毕以后,可使用sender主动提交数据;
  • zabbix_server:zabbix服务器端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、
    zabbix_java_gateway的数据最终都是提交到server。数据并不都是主动提交给zabbix_server的,也有被动提交数据的,及server主动去获取数据;
  • zabbix_proxy:zabbix代理守护进程。功能相似于server,惟一不一样的是它只是一个中转站,须要把收集到的数据主动(或被动)地提交到server上;
  • zabbix_java_gateway:在zabbix2.0以后引入的一个功能。顾名思义:Java网关,相似agentd,但目前只用于Java方面,须要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会提交到server或者proxy。

(4)Zabbix监控架构

在实际生产环境中,Zabbix根据网络环境,监控规模等外界因素分为三种架构,如图:
在这里插入图片描述

1)server-client架构(直接链接)

server-client架构是Zabbix的最简单的架构,监控机和被监控机之间不通过任何代理,直接在zabbix server和zabbix agentd之间进行数据交互,适用于网络比较简单,设备比较少的监控环境;

2)master-node-client架构(node架构)

master-node-client架构是Zabbix最复杂的监控架构,适用于跨网络、跨机房、设备较多的大型环境。每一个node同时也是一个server端。node下面能够接proxy,也能够直接接client。node有本身的配置文件和数据库。其要作的是将配置信息和监控数据项master同步。当master发生故障或损坏,node能够保证架构的完整性;

3)server-proxy-client架构(proxy架构)

proxy是server、client之间沟通的一个桥梁,proxy自己没有前端,并且其自己并不存放数据,只是将agentd发来的数据暂时存放,然后在提交给server。该架构常常是和master-node-client架构作比较的架构,通常适用于跨机房、跨网络的中型网络架构的监控;

2、Zabbix安装

Zabbix提供两种安装方式:YUM安装与编译安装。须要注意的是,因为Centos官方YUM源中并不提供Zabbix软件包以及相关依懒包,所以,若是想用YUM安装Zabbix须要经过Zabbix官方源或第三方的YUM源实现。

Zabbix服务器须要LAMP环境或LNMP环境,如下实验部署环境采用YUM安装的LAMP环境为例,详细介绍Zabbix监控服务器的部署方法。

(1)安装MariaDB

为何是安装MariaDB不是MySQL呢?
由于Centos 7 系统光盘中默认提供的数据库不是MySQL而是MariaDB,所以在LAMP架构中使用MariaDB来充当“M”的角色,其他的组件仍是保持原有的Apache与PHP。MariaDB是MySQL数据库源码的一个分支版本,与MySQL在大多数方面是兼容的!

[root@localhost ~]# yum -y install mariadb-server mariadb
//安装MariaDB数据库及MariaDB客户端工具
[root@localhost ~]# systemctl start mariadb
//启动MariaDB数据库
[root@localhost ~]# mysqladmin -u root password "password123"
//为MariaDB数据库管理员设置密码
[root@localhost ~]# mysql -u root -ppassword123
//登陆MariaDB数据库
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 
//登陆成功

(2)安装Zabbix

由于安装Zabbix时会安装不少依懒包,其中包括httpd与PHP相关依懒包,因此直接安装Zabbix便可!无须在单独安装httpd与PHP。使用YUM安装Zabbix可使用Zabbix官方源或者第三方提供的YUM源,这里以第三方提供的YUM为例!
安装Zabbix所需软件包网盘连接:https://pan.baidu.com/s/1mnOHhY7EVmmMnONFetMUUg
提取码:b2sd
建议在Windows系统解压完成,将其中的YUM所需软件包上传到Linux服务器便可!

[root@localhost ~]# mount /dev/cdrom /mnt
[root@localhost ~]# cp /mnt/* /a
[root@localhost ~]# cd /a
[root@localhost a]# createrepo .
//由于自己自带的只有软件包,并无其须要用到的依赖关系文件,因此须要本身手动生成!
[root@localhost ~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
//安装Zabbix及其所需服务(若是使用官方源的话,直接YUM安装便可)!
//zabbix-agent这个服务是被监控端安装的

由于安装Zabbix Web时须要数据库,因此要在MariaDB中手动建立库名为Zabbix的数据库,并受权给zabbix用户使用,以增长数据库的安全性。

[root@localhost ~]# mysql -u root -ppassword123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'password@456';
Query OK, 0 rows affected (0.00 sec)
//登陆数据库建立数据库、并授予权限

导入数据库SQL脚本文件

[root@localhost ~]# zcat  /usr/share/doc/zabbix-server-mysql-3.4.1/create.sql.gz |mysql -u zabbix -ppassword@456  zabbix

1)检查其配置文件

编写Zabbix server配置文件,指定数据库的名称能、用户和密码。

[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
                    ……………………                    //省略部份内容
DBHost=localhost   //去掉注释
DBName=zabbix    //不变
DBUser=zabbix     //不变
DBPassword=password@456  //去掉注释

编辑Zabbix agent的配置文件,必须指定zabbix server的IP地址,在每台安装了agent的主机上都要配置。

[root@localhost ~]# vim  /etc/zabbix/zabbix_agentd.conf
                    ……………………                    //省略部份内容          
    Server=127.0.0.1                //客户端被动等待指定服务器来查询数据
    ServerActive=127.0.0.1     //客户端主动提交数据到指定服务器
Hostname=linux-server001  //修改
//由于本机就是zabbix server,因此指定的地址就是本机便可!

2)安装Zabbix Web接口

编辑Apache服务器针对Zabbix的前端配置文件,设置时区与当前系统时区一致便可!内容以下:

[root@localhost ~]# vim /etc/httpd/conf.d/zabbix.conf 
        php_value date.timezone Asia/Shanghai
//去掉注释,修改便可!

3)重启全部服务

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//建议关闭防火墙与SELinux
[root@localhost ~]# systemctl restart zabbix-server.service 
[root@localhost ~]# systemctl restart zabbix-agent.service 
[root@localhost ~]# systemctl restart httpd

4)客户端访问

能够在本地访问,也可在客户端访问,均可以!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4)Zabbix用户管理

为了加强安全性,须要修改Zabbix服务器默认用户Admin的初始密码,操做以下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5)修改Zabbix中文乱码

安装Zabbix后,当显示语言为中文时,可能会出现中文乱码的状况。主要是由字体致使的问题,若是须要解决,须要下载合适的字体,并将其上传到Zabbix服务器上。

下载标准中文字体,将其上传到Zabbix服务器的文档根目录中;中文字体(simkai.ttf)也在刚才的网盘链接的压缩包中。具体操做,以下:

[root@localhost ~]# cp simkai.ttf /usr/share/zabbix/fonts/
[root@localhost ~]# ls /usr/share/zabbix/fonts/
graphfont.ttf  simkai.ttf

执行如下命令,修改PHP界面指定的字体文件,将本来的grapfont更改成simkai,而后刷新界面便可正常显示中文。
[root@localhost ~]# vim /usr/share/zabbix/include/defines.inc.php
…………………… //省略部份内容
define('ZBX_GRAPH_FONT_NAME', 'simkai');
zabbix服务器搭建完成!!!

3、配置Zabbix监控系统监控网络设备

企业网络环境中采用Zabbix来做为监控服务器,监控对象为网络中的各类服务器及网络设备,服务器有Linux服务器、Windows服务器,交换机采用GNS3模拟器来模拟,桥接3块网卡分别链接Zabbix服务器、Linux服务器和Windows服务器,具体的实验拓补图以下:
在这里插入图片描述
案例实施步骤:

(1)Zabbix监控网络设备

网络设备通常支持SNMP协议来作监控,因此首先要在交换机上配置IP地址,并开启SNMP,主要是设置共同体的值,本次案例使用GNS3模拟器,用路由器来代替交换机。具体操做以下:

R1(config)#int r f0/0 - 15
R1(config-if-range)#no sh
R1(config)#int vlan 1
R1(config-if)#ip add 192.168.1.100 255.255.255.0
R1(config-if)#no sh
//给vlan设置IP地址
R1(config)#no ip routing
//关闭路由功能
R1(config)#snmp-server community centos ro
//设置被服务器查询的只读共同体
R1(config)#snmp-server enable traps
//容许发送trap消息
R1(config)#snmp-server host 192.168.1.1 centos
//设置发送trap消息的共同体

在Zabbix服务器上添加网络设备,操做以下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
交换机的名称稍后便会更新成功的!
在这里插入图片描述
交换机检测完成!!!

(2)监控Linux服务器

若是但愿监控Linux服务器,可使用agent的方式,即在Linux服务器上安装Zabbix的agent。agent软件包也在zabbix软件包中,并修改其配置文件。

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
//关闭防火墙与SELinux
[root@localhost ~]# rpm -ivh zabbix-agent-3.2.6-1.el7.x86_64.rpm 
//安装agent软件包
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf 
//编写agentd服务器的配置文件
                      …………………………              //省略部份内容
Server=192.168.1.1
//用于客户端被动等待指定服务器来查询数据
ServerActive=192.168.1.1
//用于客户端主动提交数据到指定服务器
Hostname=linux-server001
//能够自定义,但必须与Zabbix Web上配置一致,
//不然Zabbix主动监控将没法工做。
[root@localhost ~]# systemctl start zabbix-agent.service 
//启动agent服务
[root@localhost ~]# netstat -anpt | grep 10050
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      43876/zabbix_agentd 
tcp6       0      0 :::10050                :::*                    LISTEN      43876/zabbix_agentd 
//agent服务默认端口是10050

在Zabbix服务器上添加Linux主机,操做以下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)监控Windows服务器

Windows服务器32位操做系统便选择32位的软件包;64位便选择64位的软件包,Zabbix软件包中都有。
在C盘中新建文件夹,命名为zabbix,将所需的软件及配置文件移进去,修改配置文件,修改的内容以下:
Server=192.168.1.1
ServerActive=192.168.1.1
Hostname=windows-server001
修改完成以后,建议关闭防火墙,以避免出现错误!
接下来在命令行完成如下操做:

C:\Users\Administrator>cd \zabbix

C:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -i
zabbix_agentd.exe [1368]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [1368]: event source [Zabbix Agent] installed successfully
//安装agent
C:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -s
zabbix_agentd.exe [1504]: service [Zabbix Agent] started successfully
//指定agent配置文件启动agent
经常使用的选项有:“-c”指定配置文件;“-i”安装;“-s”启动;“-x”中止;“-d”卸载!

在Zabbix服务器上添加Windows主机操做以下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(4)Zabbix自定义监控项

Zabbix自带的默认模板里包含了不少监控项,也能够根据业务需求自定义监控项。

以监控httpd进程为例,介绍如何在Zabbix自定义监控项。
如下操做均在客户端执行,命令以下:

[root@localhost ~]# vim check_httpd.sh
//本身手动编写脚本,内容以下:
#!/bin/bash
A=`ps -ef | grep httpd | grep -v grep`
if      [ -n "$A" ]
then
        echo '1'
else
        echo '0'
fi
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf
//修改agent服务的配置文件,修改如下内容
UnsafeUserParameters=1                  //去掉注释并改成1
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_httpd.conf
//本身建立Userparameter_httpd.conf文件
UserParameter=check_httpd,sh /root/check_httpd.sh
//格式为Userparameter=<键值>,<命令>

便可登陆Zabbix服务器,在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关于Zabbix的配置就先接受这么多,之后有新的问题,会实时更新的!!!

———————— 本文至此结束,感谢阅读 ————————

相关文章
相关标签/搜索