zoukankan      html  css  js  c++  java
  • 四行shell脚本实现Zabbix_server 的高可用

    高可用:保障业务出现故障的时候,进行快速的切换,从而不影响到业务的正常运转。

    VIP(虚拟IP):高可用技术离不开VIP,高可用的原理其实就是用户通过VIP访问业务,而VIP会映射到对应的服务器IP。

     默认情况下,客户端通过192.168.74.150的IP映射到192.168.74.149这台主zabbix的服务,如果主zabbix_server服务器关机了,那么客户端继续使用192.168.74.150的IP就会映射到备用zabbix_server(192.168.74.148)这台服务。

    准备内容:

    安装两台zabbix_server,一台数据库服务器(主zabbix_server和备zabbix_server的数据都保存在这台数据库上)

    备:zabbix_server:192.168.74.148

    主:zabbix_server:192.168.74.149

    一台数据库服务器:192.168.74.128

    本实验都内容需要利用逻辑网卡作为VIP(192.168.74.150)

    第一步:在两台zabbix_server服务器上创建逻辑网卡,即VIP两台zabbix_server服务器进入/etc/sysconfig/network-script目录

    cd /etc/sysconfig/network-scripts

     拷贝当前服务器网卡文件,我的网卡是ifcfg-ens33

    cp ifcfg-ens33 ifcfg-ens33:0

    编辑ifcfg-ens33:0 文件(两台zabbix_server都ifcfg-ens33:0文件中,ip都改为192.168.74.150作为虚拟ip)

    现在任意一台zabbix_server上启动ifcfg-ens33:0,确认网卡是否可以启动。

    注意:不可以同时在两台zabbix_server启用ifcfg-ens33:0,否则会出现IP冲突。

    逻辑网卡启动命令是ifup 网卡名,使用ifup命令,只重启新增都网卡即可,做好不要用systemctl network restart命令重启全部网卡,一旦这条命令导致网卡启动失败,将会导致无法远程服务器。

    ifup ifcfg-ens33:0

    第二步:验证是否可以通过vip(192.168.74.150),访问到主zabbix_server或者备zabbix_server的ip

    在window主机上安装agent,把agent配置文件的server_ip指向192.168.74.150这个虚拟IP,确认是否可以通过192.168.74.150映射到192.168.74.149这个zabbix_server服务

    此时已经可以通过虚拟IP(192.168.74.150)访问到192.168.74.149的zabbix_server。

    但同时出现了一个问题,如图,所有的监控主机ZBX出现爆红

    为了解决上面的问题,需要修改所有监控主机的zabbix_agentd.conf的server ip都指向192.168.74.150

    PS:修改完agent的配置,一定要重启zabbix_agent

    最重要的一步,修改两台zabbix_server.conf里面的参数Source指定为虚拟IP192.168.74.150,否则界面的ZBX会出现爆红

    重启zabbix_server:Systemctl restart zabbix_server

    以上配置完成后,界面的监控主机将恢复正常

    主机的数据也正常

    下面开始编写shell脚本,实现主zabbix_server(192.168.74.149)服务器挂掉后,仍然可以通过192.168.74.150继续访问备用zabbix_server(192.168.74.148)

    在192.168.74.149和192.168.74.148两台服务器上编写脚本check_alive .sh

    并在两台服务器上crontab -e的定时任务中加入这个脚本,执行这个脚本的时间由用户自定义。本人暂时以60s一次执行这个监测脚本。PS:给这个脚本可执行的权限:chmod o+x 755 check_alive.sh

    之所以设置60s执行一次脚本,是为了待会演示关闭192.168.74.149这台虚拟机,然后界面会无法访问。接着等待60s,备用zabbix_server的192.168.74.148就会启用vip,界面就可以继续访问zabbix_server。正常来说,设置3-10s比较合适,这样才能做到快速切换。

    PS:一定要用绝对路径,否则可能会报错

    最终效果演示

    关闭主zabbix_server(192.168.74.149虚拟机),此时vip在 主zabbix_server上

    关闭主zabbix_server(192.168.74.149)后,备zabbix_server就无法ping通 vip:192.168.74.150了

    等待60s,vip(192.168.74.150)会出现在备用zabbix_server(192.168.74.148)

    vip切换成功,刷新界面看一下能否访问zabbix_server

    界面访问正常

    主zabbix_server关机了,所有无法获取数据。

    本实例可以确保zabbix_server服务进行高可用,但有一个缺点,就是两个zabbix_zabbix_server服务使用但是同一个数据库服务器,如果这个数据库服务器挂掉,同样会无法获取数据,所以最好也做一下数据库的高可用。

  • 相关阅读:
    this_is_flag
    攻防世界-misc-如来十三掌
    攻防世界-misc-pdf
    nextcloud取消新用户的默认文件
    nextcloud开放注册-添加注册功能
    图片马制作
    Npoi Web 项目中(XSSFWorkbook) 导出出现无法访问已关闭的流的解决方法
    VS2017 如何安装水晶报表 VS2017 如何下载相应版本的水晶报表 VS2017 水晶报表 中文乱码
    js 带有返回值的 匿名方法
    varchar nvarchar 设计长度时 设计成 (2^n)-1 的好处
  • 原文地址:https://www.cnblogs.com/winnerREN/p/12737525.html
Copyright © 2011-2022 走看看