zoukankan      html  css  js  c++  java
  • 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的负载压力,使得可以支持更大规模的监控需求

    一些Zabbix相关教程集合

    Ubuntu 14.04下Zabbix2.4.5 源码编译安装  http://www.linuxidc.com/Linux/2015-05/117657.htm

    安装部署分布式监控系统Zabbix 2.06 http://www.linuxidc.com/Linux/2013-07/86942.htm

    《安装部署分布式监控系统Zabbix 2.06》 http://www.linuxidc.com/Linux/2013-07/86942.htm

    CentOS 6.3下Zabbix安装部署 http://www.linuxidc.com/Linux/2013-05/83786.htm

    Zabbix分布式监控系统实践 http://www.linuxidc.com/Linux/2013-06/85758.htm

    CentOS 6.3下Zabbix监控apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm

    CentOS 6.3下Zabbix监控MySQL数据库参数 http://www.linuxidc.com/Linux/2013-05/84800.htm

    64位CentOS 6.2下安装Zabbix 2.0.6   http://www.linuxidc.com/Linux/2014-11/109541.htm

    实现过程

    实验拓扑

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

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

    Zabbix Server配置

    快速构建LAMP

    [root@node4 ~]# yum install httpd mysql mysql-libs php php-mysql mysql-server php-bcmath
    php-gd php-mbstring -y

    安装Zabbix Server所需软件包

    [root@node4 ~]# cd zabbix-2.4/
    [root@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
    [root@node4 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

    数据库准备

    [root@node4 ~]# vim /etc/my.cnf
    
    [mysqld]
    default-character-set = utf8   #此项可确保zabbix中文界面不乱码
    
    [root@node4 ~]# 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数据
    [root@node4 ~]# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create/
    [root@node4 create]# mysql --default-character-set=utf8 zabbix < schema.sql 
    [root@node4 create]# mysql --default-character-set=utf8 zabbix < images.sql 
    [root@node4 create]# mysql --default-character-set=utf8 zabbix < data.sql
    
    #--default-character-set=utf8 此项为防止中文乱码,不用中文则可忽略

    配置Zabbix Server

    [root@node4 ~]# vim /etc/zabbix/zabbix_server.conf 
    
    DBHost=localhost        #指定数据库
    DBName=zabbix           #数据库名
    DBUser=zbuser           #数据库用户
    DBPassword=zbpass       #数据库密码
    
    #其他参数根据实际需求修改即可
    
    [root@node4 ~]# 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
    
    [root@node4 ~]# vim /etc/php.ini   #配置时区
    
    date.timezone = Asia/Shanghai
    
    [root@node4 ~]# service httpd restart
    Stopping httpd:                                            [  OK  ]
    Starting httpd:                                            [  OK  ]
    [root@node4 ~]# service zabbix-server start
    Starting Zabbix server:                                    [  OK  ]
    [root@node4 ~]# service zabbix-agent start
    Starting Zabbix agent:                                     [  OK  ]

    开始安装

    访问http://172.16.10.126/zabbix

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

    填写数据库信息

    Name可自定义

    Next-Next-Finish即可完成安装

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

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

    [root@node4 ~]# vim /usr/share/zabbix/include/locales.inc.php
    #将false改为true
    'zh_CN' => array('name' => _('Chinese (zh_CN)'),        'display' => true),
    
    #为防止乱码用楷体替换默认字体
    [root@node4 ~]# mv simkai.ttf /usr/share/zabbix/fonts/
    [root@node4 ~]# vim /usr/share/zabbix/include/defines.inc.php
    
    define('ZBX_GRAPH_FONT_NAME', 'simkai');
    define('ZBX_FONT_NAME', 'simkai');
    
    [root@node4 ~]# service httpd restart
    Stopping httpd:                                            [  OK  ]
    Starting httpd:                                            [  OK  ]

    修改语言

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

    Zabbix Proxy配置

    安装Zabbix Proxy所需软件包

    [root@node3 ~]# cd zabbix-2.4/
    [root@node3 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
    [root@node3 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)
    
    #导入数据
    [root@node3 ~]# mysql zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-2.4.0/create/schema.sql

    配置Zabbix Proxy

    [root@node3 ~]# 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            #数据同步间隔
    
    #其他参数根据自己实际需求修改即可
    
    [root@node3 ~]# service zabbix-proxy start
    Starting Zabbix proxy:                                     [  OK  ]

    Zabbix Agent配置

    安装Zabbix Agent所需软件包

    [root@node1 ~]# cd zabbix-2.4/
    [root@node1 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
    [root@node1 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

    [root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
    
    Server=172.16.10.125           #指向proxy
    ServerActive=172.16.10.125   
    Hostname=node1.scholar.com
    
    [root@node1 ~]# service zabbix-agent start
    Starting Zabbix agent:                                     [  OK  ]
    
    #全部Agent节点都执行以上配置

    添加监控

    添加代理

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

    添加模板

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

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

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

    创建web监控

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

    点击web场景,自定义场景

    创建相关步骤

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

    查看web状态

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

  • 相关阅读:
    linux 防火墙管理
    自动化运维监控工具有哪些?常用的开源运维监控工具大全
    编程必备github代码仓库使用
    安全加密算法
    浅笑若风之高效工作流程
    jmeter压力测试工具使用
    ES扩容实战记录
    在5G+AI+CLCP下拉动互联网走向物联网
    设计模式之简单工厂模式
    设计模式之单例模式
  • 原文地址:https://www.cnblogs.com/weapon-liu/p/7160172.html
Copyright © 2011-2022 走看看