zoukankan      html  css  js  c++  java
  • zabbix分布式监控多网段的部署与实现

    文章目录

    [隐藏]

    • 集群架构:
    • 构建思路:
    • 部署步骤:
      • 一、准备阶段:
      • 二、部署阶段:
    集群架构:

     构建思路:

    本监控系统由一个zabbix master和两个zabbix proxy组成,各自位于不同的网段,且有独立的MySQL服务器;其中192.168.1.0网段作为三个路由互联的网段,10.0.0.0网段为zabbix master所处的网段,172.16.0.0和172.26.0.0网段为zabbix proxy1和zabbix proxy2所处的网段。

    两个zabbix proxy负责收集各自网段内主机的数据,每2秒向zabbix master发送监控各自网段内主机的数据。为节约资源,所有zabbix GUI服务均与zabbix server服务配置在同一台主机。

    部署步骤:

    一、准备阶段:

    1、准备三台最小化安装的centos7,修改hostname,关闭selinux和防火墙,打开ipv4核心转发并重启:

    # vi /etc/hostname

    修改:

    router1

    保存退出

    # vi /etc/selinux/config

    修改:

    SELINUX=disabled

    保存退出

    # systemctl disable firewalld # vi /usr/lib/sysctl.d/50-default.conf

    添加:

    net.ipv4.ip_forward = 1

    保存退出

    # sync # reboot

    2、在各router上写入静态路由
    1)在router1上写入静态路由:

    # vi /etc/sysconfig/network-scripts/route-ens33

    添加:

    172.16.0.0/24 via 192.168.1.182 dev ens33 172.26.0.0/24 via 192.168.1.183 dev ens33

    保存退出

    # sync # reboot

    2)在router2上写入静态路由:

    # vi /etc/sysconfig/network-scripts/route-ens33

    添加:

    10.0.0.0/24 via 192.168.1.181 dev ens33 172.26.0.0/24 via 192.168.1.183 dev ens33

    保存退出

    # sync # reboot

    3)在router3上写入静态路由:

    # vi /etc/sysconfig/network-scripts/route-ens33

    添加:

    10.0.0.0/24 via 192.168.1.181 dev ens33 172.16.0.0/24 via 192.168.1.182 dev ens33

    保存退出

    # sync # reboot

    3、在route1-3上测试静态路由的连通情况:
    1)route1:


    2)route2:


    3)route3:


    4、准备三台安装好MySQL的主机,配置好IP备用;
    5、准备一台zabbix master主机和两台zabbix ,配置好IP备用;
    6、准备六台被监控主机,安装好相应的服务、配置好IP备用;
    7、各主机使用相同的hosts文件:

    10.0.0.11 zbx-master 10.0.0.12 mysql1 10.0.0.21 tomcat1 10.0.0.22 tomcat2 172.16.0.11 zbx-proxy1 172.16.0.12 mysql2 172.16.0.21 nginx1 172.16.0.22 nginx2 172.26.0.11 zbx-proxy2 172.26.0.12 mysql3 172.26.0.21 redis1 172.26.0.22 redis2

    8、各主机均使用NTP服务器校准时间;

    二、部署阶段:

    对zabbix master的部署:
    1、在zabbix master上安装zabbix相关程序包:

    # yum install zabbix22 zabbix22-server zabbix22-server-mysql zabbix22-web zabbix22-web-mysql zabbix22-agent zabbix22-dbfiles-mysql

    2、在MySQL1上为zabbix创建用户和数据库:

    # yum install mariadb-server mariadb # mysql MariaDB> CREATE DATABASE zabbix CHARACTER SET utf8; MariaDB> GRANT ALL on zabbix.* TO ‘zbxuser’@’10.0.0.%’ IDENTIFIED BY ‘zbxpass’; MariaDB> GRANT ALL on zabbix.* TO ‘zbxuser’@’zbx-master’ IDENTIFIED BY ‘zbxpass’; MariaDB> FLUSH PRIVILEGES;

    3、复制zabbix master安装的的数据库模板至MySQL1:

    # cd /usr/share/zabbix-mysql/ # scp *.sql root@mysql1:/root/

    4、在MySQL1上导入数据库模板:

    # cd # mysql zabbix < schema.sql # mysql zabbix < images.sql # mysql zabbix < data.sql

    5、在zabbix master上动httpd:

    # systemctl start httpd.service

    6、在zabbix master上编辑zabbix配置文件:

    # vim /etc/zabbix/zabbix_server.conf

    修改:

    DBHost=10.0.0.12 DBName=zabbix DBUser=zbxuser DBPassword=zbxpass

    保存退出
    7、启动zabbix-server

    # systemctl start zabbix-server.service

    8、查看10051端口是否监听:

    # ss –tnl

    9、修改php的时区:

    # vim /etc/php.ini

    启用:

    date.timezone = Asia/Shanghai

    保存退出
    10、重启httpd:

    # systemctl restart httpd.service

    11、在浏览器中启动zabbix的配置界面:

    http://10.0.0.11/zabbix


    12、按提示配置zabbix
    填入数据库服务器地址、用户、密码等,填完之后还可以测试一下,看到“OK”说明数据库连接正常:


    标记zabbix服务器本身:

    Host 10.0.0.11 Port 10051 Name zbx-master

    确认后完成zabbix的配置
    13、登陆时,默认账号密码:
    用户:admin
    密码:zabbix
    登陆成功后即可进入zabbix的dashboard:


    14、加入zabbix-server本身为监控对象:
    配置agent的配置文件(注意:zabbix_agent.conf 和 zabbix_agentd.conf不一样,要配置的是zabbix_agentd.conf,不能错!)

    # vim /etc/zabbix/zabbix_agentd.conf

    修改:

    Server=127.0.0.1,10.0.0.11

    保存退出
    启动zabbix-agent

    # systemctl start zabbix-agent

    15、在zabbix GUI配置界面上启用对本机的监控
    点击Status中的Not monitored,选择OK:


    当绿色的“Z”标志亮起,说明服务器已被正常监控:


    16、配置并启动两台tomcat服务器的zabbix-agent:
    在tomcat1上安装、配置并启动zabbix-agent:

    # yum install zabbix22-agent # vim /etc/zabbix/zabbix_agentd.conf

    修改:

    Server=10.0.0.11 ServerActive=10.0.0.11 Hostname=tomcat1

    保存退出

    # systemctl start zabbix-agent.service

    在tomcat2上安装、配置并启动zabbix-agent:

    # yum install zabbix22-agent # vim /etc/zabbix/zabbix_agentd.conf

    修改:

    Server=10.0.0.11 ServerActive=10.0.0.11 Hostname=tomcat2

    保存退出

    # systemctl start zabbix-agent.service

    17、将两台tomcat服务器加入主机列表:


    18、至此,zabbix master已部署完毕。

    对zabbix proxy1的部署:
    1、在zabbix proxy1上安装程序包:

    # yum install zabbix22 zabbix22-proxy zabbix22-proxy-mysql zabbix22-agent zabbix22-dbfiles-mysql

    2、在MySQL2上为proxy1创建一个数据库:

    # mysql MariaDB> CREATE DATABASE zabbix_proxy CHARACTER SET utf8; MariaDB> GRANT ALL ON zabbix_proxy.* TO zbxuser@’172.16.0.%’IDENTIFIED BY ‘zbxpass’; MariaDB> GRANT ALL ON zabbix_proxy.* TO zbxuser@’zbx-proxy1’IDENTIFIED BY ‘zbxpass’; MariaDB> FLUSH PRIVILEGES; MariaDB> quit

    3、在zabbix proxy1上复制数据库文件到MySQL2上:

    # cd /usr/share/zabbix-mysql/ # scp *.sql root@mysql2:/root/

    4、在MySQL2上导入数据库文件:

    # cd # mysql zabbix_proxy < schema.sql 注意:proxy只需要schema.sql

    5、在MySQL2上验证导入数据库是否成功:

    # mysql MariaDB> USE zabbix_proxy MariaDB> SHOW TABLES;

    6、在zabbix proxy1上配置zabbix-proxy的配置文件:

    # cd /etc/zabbix # vim zabbix_proxy.conf

    修改:

    Server=10.0.0.11 ##填写Master的地址 Hostname=zbx-proxy1 ##填写本机hostname DBhost=172.16.0.12 ##填写数据库地址 DBname=zabbix_proxy DBuser=zbxuser DBpassword=zbxpass DataSenderFrequency=2 ##每隔2秒向Master送一次数据

    保存退出
    7、在zabbix proxy1上启动zabbix-proxy服务:

    # systemctl start zabbix-proxy

    9、在zabbix proxy1上查看服务监听端口:

    # ss –tnl


    10、在Maser的GUI界面上添加proxy
    找到选项卡:Administration è DM
    选择“Create proxy”

    Proxy name zbx-proxy1 Proxy mode Passive ##由Master推送配置 Proxy hosts


    这里选择需要加入的主机(目前还没有主机加入)
    点击save完成添加


    11、在zabbix proxy1上配置agent文件:

    # vim /etc/zabbix/zabbix_agentd.conf

    修改:

    Server=10.0.0.11 ServerActive=10.0.0.11 Hostname=zbx-proxy1

    保存退出

    # systemctl start zabbix-agent.service

    12、在zabbix的GUI界面上添加对proxy1的监控:


    13、配置并启动两台nginx服务器的zabbix-agent:
    在nginx1上安装、配置并启动zabbix-agent:

    # yum install zabbix22-agent # vim /etc/zabbix/zabbix_agentd.conf

    修改:

    Server=172.16.0.11 ServerActive=172.16.0.11 Hostname=nginx1

    保存退出

    # systemctl start zabbix-agent.service

    在nginx2上安装、配置并启动zabbix-agent:

    # yum install zabbix22-agent # vim /etc/zabbix/zabbix_agentd.conf

    修改:

    Server=172.16.0.11 ServerActive=172.16.0.11 Hostname=nginx2

    保存退出

    # systemctl start zabbix-agent.service

    14、将两台nginx服务器以proxy的模式加入主机列表:

     



    15、至此,zabbix proxy1已部署完毕。

    对zabbix proxy2的部署:

    1、在zabbix proxy2上安装程序包:

    # yum install zabbix22 zabbix22-proxy zabbix22-proxy-mysql zabbix22-agent zabbix22-dbfiles-mysql

    2、在MySQL3上为proxy2创建一个数据库:

    # mysql MariaDB> CREATE DATABASE zabbix_proxy CHARACTER SET utf8; MariaDB> GRANT ALL ON zabbix_proxy.* TO zbxuser@’172.26.0.%’IDENTIFIED BY ‘zbxpass’; MariaDB> GRANT ALL ON zabbix_proxy.* TO zbxuser@’zbx-proxy2’IDENTIFIED BY ‘zbxpass’; MariaDB> FLUSH PRIVILEGES; MariaDB> quit

    3、在zabbix proxy2上复制数据库文件到MySQL3上:

    # cd /usr/share/zabbix-mysql/ # scp *.sql root@mysql3:/root/

    4、在MySQL3上导入数据库文件:

    # cd # mysql zabbix_proxy < schema.sql

    5、在MySQL3上验证导入数据库是否成功:

    # mysql MariaDB> USE zabbix_proxy MariaDB> SHOW TABLES;

    6、在zabbix proxy2上配置zabbix-proxy的配置文件:

    # cd /etc/zabbix # vim zabbix_proxy.conf

    修改:

    Server=10.0.0.11 Hostname=zbx-proxy2 DBhost=172.26.0.12 DBname=zabbix_proxy DBuser=zbxuser DBpassword=zbxpass DataSenderFrequency=2

    保存退出
    7、在zabbix proxy2上启动zabbix-proxy服务:

    # systemctl start zabbix-proxy

    8、在zabbix proxy2上查看服务监听端口:

    # ss –tnl


    9、在Maser的GUI界面上添加proxy
    找到选项卡:Administration è DM
    选择“Create proxy”

    Proxy name zbx-proxy2 Proxy mode Passive ##由Master推送配置 Proxy hosts


    这里选择需要加入的主机(目前还没有主机加入)
    点击save完成添加


    10、在zabbix proxy2上配置agent文件:

    # vim /etc/zabbix/zabbix_agentd.conf

    修改:

    Server=10.0.0.11 ServerActive=10.0.0.11 Hostname=zbx-proxy2

    保存退出

    # systemctl start zabbix-agent.service

    11、在zabbix的GUI界面上添加对proxy2的监控:


    12、配置并启动两台redis服务器的zabbix-agent:
    在redis1上安装、配置并启动zabbix-agent:

    # yum install zabbix22-agent # vim /etc/zabbix/zabbix_agentd.conf

    修改:

    Server=172.26.0.11 ServerActive=172.26.0.11 Hostname=redis1

    保存退出

    # systemctl start zabbix-agent.service

    在redis2上安装、配置并启动zabbix-agent:

    # yum install zabbix22-agent # vim /etc/zabbix/zabbix_agentd.conf

    修改:

    Server=172.26.0.11 ServerActive=172.26.0.11 Hostname=redis2

    保存退出

    # systemctl start zabbix-agent.service

    13、将两台redis服务器以proxy的模式加入主机列表:



    14、至此,zabbix proxy2已部署完毕。

    监控主机全家福:


    发现问题:
    2个proxy后的主机均不能正常监控,Dashboard报错:

    Zabbix agent on nx1 unreachable for 5 minutes.


    解决问题:
    查询zabbix master的日志,发现如下信息:

    “172.26.0.11”failed: proxy “zbx-proxy2” is configured in passive mode.


    说明此时proxy的工作模式和server的不一致,默认情况下,proxy是运行在active模式中的,故应该修改2个proxy的配置文件,使其运行在passive模式中:
    在zbx-proxy1上修改:

    # cd /etc/zabbix # vi zabbix_proxy.conf

    修改:

    ProxyMode=1

    保存退出

    # systemctl restart zabbix-proxy

    在zbx-proxy2上修改:

    # cd /etc/zabbix # vi zabbix_proxy.conf

    修改:

    ProxyMode=1

    保存退出

    # systemctl restart zabbix-proxy

    问题解决:


    经测试,passive模式工作的proxy的延迟要远高于active模式,正确配置passive模式后如果proxy后的hosts无法显示被监控,请耐心等待master向proxy推送新配置信息。

    至此,整个zabbix分布式监控的部署完成。

  • 相关阅读:
    Mybatis分页插件
    Mybatis代码自动生成
    Spring-Mybatis依赖
    Spring-test单元测试
    Spring-json依赖
    Spring-MVC依赖
    Log4j日志依赖
    Spring数据库连接池依赖
    Spring-JDBC依赖
    Spring依赖
  • 原文地址:https://www.cnblogs.com/ityunwei/p/13913501.html
Copyright © 2011-2022 走看看