Zabbix基于Proxy分布式部署实现Web监控

前言

在日常运维工作中,难免会遇到这样或那样的故障,如何能在第一时间发现故障,并及时定位故障原因,保证业务不受影响,我想这应该是做好一个运维必须要掌握的技能。但人力不可能实时掌控系统的变化,于是监控系统应运而生,监控便是运维的眼睛,把监控和性能管理做好后,运维就是一件很轻松的事情。目前比较流行的开源监控工具有Cacti、Nagios(Icinga)、Zabbix等。本文带来的是Zabbix基于Proxy分布式部署实现Web监控。

Zabbix

简介

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

基本功能

数据采集方式:zabbix agent,agent(active),SNMP,SSH等

数据存储方式:RDBMS,如MySQL,Pgsql等

数据展示方式:php,web,gui

报警功能:支持报警升级

组件及基础架构

Zabbix主要由zabbix server和zabbix agent组成

server端负责从agent端收集监控数据,并存储在数据库中,同时对数据进行分析展示,并触发相关报警

agent端负责监控数据的采集,并发送给server端

数据采集方式除了在被监控主机上部署agent程序外,还可通过ICMP/IPMI/SNMP等协议对网络设备进行监控,同时配置web监控方式可以监控web页面的下载速率和响应时间等重要参数

Zabbix proxy是在大规模分布式监控场景中,采用的一种用以分担server端压力的分层结构,Proxy只负责一定区域内的数据采集工作,然后定期将数据一次性发送给server,极大的减轻了server的负载压力,使得可以支持更大规模的监控需求

实现过程

实验拓扑

#系统环境:CentOS6.6
#Zabbix Server为LAMP环境
#Zabbix Proxy需数据库支持
#Zabbix Server与Zabbix Proxy需时间同步,全部节点已做同步

Zabbix Server配置

快速构建LAMP

[[email protected] ~]# yum install httpd mysql mysql-libs php php-mysql mysql-server php-bcmath
php-gd php-mbstring -y

安装Zabbix Server所需软件包

[[email protected] ~]# cd zabbix-2.4/
[[email protected]scholar zabbix-2.4]# ls
zabbix-2.4.0-1.el6.x86_64.rpm              zabbix-sender-2.4.0-1.el6.x86_64.rpm
zabbix-agent-2.4.0-1.el6.x86_64.rpm        zabbix-server-2.4.0-1.el6.x86_64.rpm
zabbix-get-2.4.0-1.el6.x86_64.rpm          zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm
zabbix-proxy-2.4.0-1.el6.x86_64.rpm        zabbix-web-2.4.0-1.el6.noarch.rpm
zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm  zabbix-web-mysql-2.4.0-1.el6.noarch.rpm
[[email protected] zabbix-2.4]# yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-agent-2.4.0-1.e
l6.x86_64.rpm zabbix-get-2.4.0-1.el6.x86_64.rpm zabbix-se* zabbix-web-* -y

数据库准备

[[email protected] ~]# vim /etc/my.cnf

[mysqld]
default-character-set = utf8   #此项可确保zabbix中文界面不乱码

[[email protected] ~]# service mysqld start
Starting mysqld:                                           [  OK  ]

#授权
mysql> create database zabbix;
Query OK, 1 row affected (0.01 sec)

mysql> grant all on zabbix.* to ‘zbuser‘@localhost identified by ‘zbpass‘;
Query OK, 0 rows affected (0.09 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

#导入zabbix数据
[[email protected] ~]# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create/
[[email protected] create]# mysql --default-character-set=utf8 zabbix < schema.sql 
[[email protected] create]# mysql --default-character-set=utf8 zabbix < images.sql 
[[email protected] create]# mysql --default-character-set=utf8 zabbix < data.sql

#--default-character-set=utf8 此项为防止中文乱码,不用中文则可忽略

配置Zabbix Server

[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf 

DBHost=localhost        #指定数据库
DBName=zabbix           #数据库名
DBUser=zbuser           #数据库用户
DBPassword=zbpass       #数据库密码

#其他参数根据实际需求修改即可

[[email protected] ~]# vim /etc/zabbix/zabbix_agentd.conf 
#配置本身agent用以监控自己

Server=127.0.0.1,172.16.10.126
ServerActive=127.0.0.1,172.16.10.126
Hostname=node4.scholar.com

[[email protected] ~]# vim /etc/php.ini   #配置时区

date.timezone = Asia/Shanghai

[[email protected] ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
[[email protected] ~]# service zabbix-server start
Starting Zabbix server:                                    [  OK  ]
[[email protected] ~]# service zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]

开始安装

访问http://172.16.10.126/zabbix

安装检测,如有错误,安装所需依赖包即可

填写数据库信息

Name可自定义

Next-Next-Finish即可完成安装

登陆界面如下,默认用户admin,密码zabbix

zabbix2.4默认屏蔽了中文显示,设置显示中文

[[email protected] ~]# vim /usr/share/zabbix/include/locales.inc.php
#将false改为true
‘zh_CN‘ => array(‘name‘ => _(‘Chinese (zh_CN)‘),        ‘display‘ => true),

#为防止乱码用楷体替换默认字体
[[email protected] ~]# mv simkai.ttf /usr/share/zabbix/fonts/
[[email protected] ~]# vim /usr/share/zabbix/include/defines.inc.php

define(‘ZBX_GRAPH_FONT_NAME‘, ‘simkai‘);
define(‘ZBX_FONT_NAME‘, ‘simkai‘);

[[email protected] ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

修改语言

Zabbix Server配置先到这里,接下来我们去配置Proxy和Agent

Zabbix Proxy配置

安装Zabbix Proxy所需软件包

[[email protected] ~]# cd zabbix-2.4/
[[email protected] zabbix-2.4]# ls
zabbix-2.4.0-1.el6.x86_64.rpm              zabbix-sender-2.4.0-1.el6.x86_64.rpm
zabbix-agent-2.4.0-1.el6.x86_64.rpm        zabbix-server-2.4.0-1.el6.x86_64.rpm
zabbix-get-2.4.0-1.el6.x86_64.rpm          zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm
zabbix-proxy-2.4.0-1.el6.x86_64.rpm        zabbix-web-2.4.0-1.el6.noarch.rpm
zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm  zabbix-web-mysql-2.4.0-1.el6.noarch.rpm
[[email protected] zabbix-2.4]# yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-get-2.4.0-1.el6
.x86_64.rpm zabbix-proxy-* -y

数据库准备

#Proxy端已有数据库
mysql> create database zabbix_proxy;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on zabbix_proxy.* to ‘zbuser‘@localhost identified by ‘zbpass‘;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

#导入数据
[[email protected] ~]# mysql zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-2.4.0/create/schema.sql

配置Zabbix Proxy

[[email protected] ~]# vim /etc/zabbix/zabbix_proxy.conf 

Server=172.16.10.126             #指向Zabbix Server
Hostname=node3.scholar.com       #主机名
DBHost=localhost                 #指定数据库
DBName=zabbix_proxy              #数据库名
DBUser=zbuser                    #数据库用户
DBPassword=zbpass                #数据库密码
ConfigFrequency=60               #配置文件同步间隔
DataSenderFrequency=5            #数据同步间隔

#其他参数根据自己实际需求修改即可

[[email protected] ~]# service zabbix-proxy start
Starting Zabbix proxy:                                     [  OK  ]

Zabbix Agent配置

安装Zabbix Agent所需软件包

[[email protected] ~]# cd zabbix-2.4/
[[email protected] zabbix-2.4]# ls
zabbix-2.4.0-1.el6.x86_64.rpm              zabbix-sender-2.4.0-1.el6.x86_64.rpm
zabbix-agent-2.4.0-1.el6.x86_64.rpm        zabbix-server-2.4.0-1.el6.x86_64.rpm
zabbix-get-2.4.0-1.el6.x86_64.rpm          zabbix-server-mysql-2.4.0-1.el6.x86_64.rpm
zabbix-proxy-2.4.0-1.el6.x86_64.rpm        zabbix-web-2.4.0-1.el6.noarch.rpm
zabbix-proxy-mysql-2.4.0-1.el6.x86_64.rpm  zabbix-web-mysql-2.4.0-1.el6.noarch.rpm
[[email protected] zabbix-2.4]# yum install zabbix-2.4.0-1.el6.x86_64.rpm zabbix-agent-2.4.0-1.e
l6.x86_64.rpm zabbix-sender-2.4.0-1.el6.x86_64.rpm -y

#两个Agent端都执行此安装操作

配置Zabbix Agent

[[email protected] ~]# vim /etc/zabbix/zabbix_agentd.conf

Server=172.16.10.125           #指向proxy
ServerActive=172.16.10.125   
Hostname=node1.scholar.com

[[email protected] ~]# service zabbix-agent start
Starting Zabbix agent:                                     [  OK  ]

#全部Agent节点都执行以上配置

添加监控

添加代理

添加监控主机,选择代理监控

添加模板

#两台监控主机都执行以上添加操作

查看监控图表,验证是否被监控

已经可以获取到监控主机的信息,Proxy分布式监控部署成功

创建web监控

点击应用集(Applications),创建应用集

点击web场景,自定义场景

创建相关步骤

#两台需要监控的web主机都需创建

查看web状态

以上便是Zabbix基于Proxy分布式部署实现Web监控的简单过程,时间有限,就不往下继续具体完善了,有兴趣的朋友可以继续实现报警功能

The end

Zabbix是一个很强大且开源的监控系统,于由个人水平有限,很多功能还有待了解,通过以上配置大概实现了基于Proxy的Web监控。有兴趣的朋友可继续完善,部署过程中遇到问题可留言交流。以上仅为个人学习整理,如有错漏,大神勿喷~~~

时间: 07-09

Zabbix基于Proxy分布式部署实现Web监控的相关文章

基于IBM Bluemix部署Java Web项目实战演练

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要介绍了IBM Bluemix,并详细说明了如何部署Java Web项目,如何添加MySql服务.最后,提出了自己的一些看法.  文章目录 一.Bluemix简单介绍 二.BlueMix空间申请试用 三.BlueMix创建Cloud Foundry应用 四.添加新的服务 五.总结 一.Bluemix 简单介绍 1.Bluemix 带来了什么        Bluemix 致力于解

zabbix使用proxy分布式监控

原理图: 概述 zabbix proxy可以代替zabbix server收集性能和可用性数据然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法. zabbix proxy 使用场景: 监控远程区域设备 监控本地网络不稳定区域 当 zabbix 监控上千台设备时,使用它来减轻 server 的压力

CentOS6.6+Puppet3.7.3分布式部署Zabbix2.4监控系统

OS:CentOS-6.6-x86_64(Minimal) Puppet 3.7.3 Zabbix 2.4 Puppet/Zabbix master: master/zabbix.redking.com Puppet/Zabbix agent:  agent1~5.redking.com Puppet安装 1.服务端安装puppet-server puppet不在CentOS的基本源中,需要加入PuppetLabs提供的官方源,Puppet Master服务器端安装puppet-server,自

Zabbix监控和分布式部署实施方案

最近在研究Zabbix监控,由于机房分布在多个城市,因此采用zabbix proxy做为监控方案,在每 个节点部署zabbix proxy,由zabbix proxy收集agentd数据,然后将采集到的数据主动推送给zabbix server,zabbix server将数据存入数据库,并在WEB前端显示. 1.Zabbix主要功能和优劣势说明 1.1 Zabbix主要功能: 1)Application monitoring 应用监控 数据库/SSH/Apache/Nginx等应用程序的监控.

zabbix分布式部署proxy实战

Zabbix proxy 是一个监控代理服务器,可以实现集中或者分布式的监控.通过proxy代理可以实现多节点,跨区域,成百上千服务器的监控.proxy代理主要适用于下面情况.1)zabbix监控的主机太多,一台Server支撑不住的情况.2)服务器在同一个地区不同的机房,通过proxy很容易实现数据的传输和中转.3)服务器在多个省或者在国外,通过proxy实现分布式部署和监控.    proxy可以部署为主动(Active)模式或被动(passive)模式,通常为了减轻Server端的压力,p

zabbix专题:第十一章 zabbix proxy分布式监控配置

zabbix专题:第十一章 zabbix proxy分布式监控配置             对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.co zabbix proxy分布式监控配置 zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力.zabbix proxy可以非常简便的实现了集中式.分

基于rhel7.2的Zabbix平台搭建和部署(四)

基于rhel7.2的Zabbix平台搭建和部署(四) 一.实现zabbix添加监测项,添加对Linux主机的监控. 说明:先在"配置"-"主机"里添加主机监控,监控os资源:内存,cpu,io,负载,带宽等. (1)登录zabbix,先在"配置"-"主机"里单击"创建主机": (2)在"主机"标签,填写相关信息 注:这个主机名字必须和hostname的一模一样,这里用的ip就是被监控主机

基于rhel7.2的Zabbix平台搭建和部署(二)

 基于rhel7.2的Zabbix平台搭建和部署(二) 一.监控系统Zabbix-3.2.1的安装 zabbix-server端的操作 说明:zabbix服务器端要提前安装好LNMP环境(mysql,nginx,php5的安装目录均是/usr/local) (1)创建zabbix运行的用户 [[email protected] ~]# groupadd zabbix [[email protected] ~]# useradd -g zabbix [[email protected] ~]# g

基于rhel7.2的Zabbix平台搭建和部署(五)

基于rhel7.2的Zabbix平台搭建和部署(五) zabbix3.2.1邮件报警设置 说明:zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,zabiix监控运行正常. 在zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱. 一.zabbix报警部署步骤(操作在Zabbix监控服务端进行): 安装sendmail两个依赖包 [[email protected] ~]# yum install -y perl-Net-SSLea