实现Zabbix高可用分布式架构:打造强大的监控数据可视化平台_zabbix高可用架构(1)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

exit
fi
#接收参数
action= 1 c a s e   1 case  1case action in
“start”)
        service mariadb start
        ;;
“stop”)
        service mariadb stop
        ;;
“status”)
        service mariadb status
esac



Step 3.zabbix 资源脚本示例,当前建议换用systemd进行管理zabbix。




#!/bin/bash
#zabbix服务启动管理脚本
action= 1 i f   [   1 if [  1if [ # -eq 0 ];then
  echo “Usage:zabbix [start|stop|status]”
  exit
fi
case $action in
“start”)
  systemctl start zabbix-server httpd
  ;;
“stop”)
  systemctl stop zabbix-server httpd
  ;;
“status”)
  systemctl status zabbix-server httpd
esac



Step 4.drbd 配置文件示例:




[root@Szabbix ha.d]# egrep -v ‘^#’ /etc/drbd.d/global_common.conf
global {
    usage-count no;  #是否参加DRBD使用者统计,默认是参加
}
common {
    protocol C;
    startup {
        degr-wfc-timeout 60;
    }
    disk {
        on-io-error detach;
    }
    net {
        cram-hmac-alg md5; #DRBD同步时使用的验证方式和密码
        shared-secret “testdrbd”;
    }
    syncer {
        rate 100M;      #主节点和备用节点同步时最大的网络速率 工作中是100M~1000M
        verify-alg crc32c; #验证算法
    }
}
resource data{
    disk {
        on-io-error detach;  #磁盘出现IO错误处理
    }
    #两台主备节点配置 (关键点)
on Mzabbix {
        device /dev/drbd0;  #drbd写设备有自己对应的分区
        disk /dev/sdb1;        #本地数据分区1
        address  192.168.56.103:7788;  #心跳/数据传输接口 (建议把这个地址设置到hosts中改成心跳线的网卡)
        meta-disk /dev/sdb2[0];  #meta data数据分区2
    }
on Szabbix {
        device /dev/drbd0;
        disk /dev/sdb1;
        address  192.168.56.102:7788;
        meta-disk /dev/sdb2[0];
    }
}


完成以上配置后执行:`$chown -R root:haclient /usr/local/heartbeat/etc/ha.d/`


#### 3.Zabbix Server|Web 组件安装配置


Step 1. 按照`zabbix入门学习安装与配置`Zabbix-server和zabbix-web以及mariadb数据库的安装; 由于我已经安装并配置好主节点zabbix的zabbix-web,我们将一些文件进行中直接复制到从节点中改IP指向我们VIP即可;



#需要将主节点配置文件复制到从节点并进行修改
[root@Mzabbix ~]KaTeX parse error: Expected 'EOF', got '#' at position 102: …root@Mzabbix ~]#̲ egrep -v '^#' …|#|[[:space:]]+#" /etc/zabbix/zabbix_server.conf  推荐方式

LogFileSize=10
LogFile=/var/log/zabbix/zabbix_server.log
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix

#漂移的VIP
DBHost=192.168.1.200
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
#DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306

SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4

#预警脚本
AlertScriptsPath=/usr/lib/zabbix/alterscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
FpingLocation=/usr/sbin/fping
LogSlowQueries=3000

#注意权限的赋值
AllowRoot=1
User=root
StatsAllowedIP=192.168.1.0/24


Step 2.复制主中zabbix-web项目文件到从机 /usr/share/zabbix 和etc/zabbix/web中config的php配置文件到从机:(非常重要:不用重新去初始化zabbix-web)



[root@Mzabbix web] s c p   / e t c / z a b b i x / w e b / z a b b i x . c o n f . p h p   r o o t @ 192.168.1.98 : / e t c / z a b b i x / w e b / [ r o o t @ S z a b b i x   w e b ] scp /etc/zabbix/web/zabbix.conf.php root@192.168.1.98:/etc/zabbix/web/ [root@Szabbix web] scp /etc/zabbix/web/zabbix.conf.php root@192.168.1.98:/etc/zabbix/web/[root@Szabbix web]chown -R apache:apache zabbix.conf.php  #注意权限

#根据需求进行更改

<?php // Zabbix GUI configuration file. global $DB; $DB['TYPE']     = 'MYSQL'; $DB['SERVER']   = '192.168.1.200';  //VIP $DB['PORT']     = '3306'; $DB['DATABASE'] = 'zabbix'; $DB['USER']     = 'zabbix'; $DB['PASSWORD'] = 'zabbix'; // Schema name. Used for IBM DB2 and PostgreSQL. $DB['SCHEMA'] = ''; $ZBX_SERVER      = '192.168.1.200';  //从节点设置从即刻 $ZBX_SERVER_PORT = '10051'; $ZBX_SERVER_NAME = 'zabbix.weiyigeek.top'; $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG; ``` ![1bd09b8528a9f9e2685ed8a870ab7c93.png](https://img-blog.csdnimg.cn/img_convert/1bd09b8528a9f9e2685ed8a870ab7c93.png) weiyigeek.top-zabbix.conf.php Step 3.安装zabbix-proxy-mysql并将sql文件导入数据中:: ``` $ yum install -y zabbix-proxy-mysql 已安装:   zabbix-proxy-mysql.x86_64 0:4.2.1-1.el7 #安装成功后将里面proxy-数据库导入我的mysql数据库中 mysql_db:zabbix_proxy mysql_user:zabbix_proxy mysql_pass:zabbix $zcat /usr/share/doc/zabbix-proxy-mysql-4.2.1/schema.sql.gz | mysql -h192.168.1.200 -u'zabbix_proxy' -p'zabbix' zabbix_porxy ``` ![47866c2c2b13cdf23b32e36e0fac160d.png](https://img-blog.csdnimg.cn/img_convert/47866c2c2b13cdf23b32e36e0fac160d.png) weiyigeek.top-导入成功 Step 4.利用docker-compose构建zabbix-proxy环境 ``` #docker-compose构建配置文件结构 [root@Szabbix zabbix-proxy]# ll -R . .: -rw-r--r-- 1 root root 462 5月  15 15:55 docker-compose.yaml drwxr-xr-x 3 root root  51 5月  15 15:05 etc ./etc: drwxr-xr-x 2 root root  30 5月  15 15:03 enc -rw-r--r-- 1 root root 123 5月  15 15:05 env_mysql -rw-r--r-- 1 root root 205 5月  15 15:04 env_proxy ./etc/enc: -rw-r--r-- 1 root root 65 5月  15 14:29 zabbix_proxy.psk #允许Zabbix代理容器的卷,参考以下网址来放psk文件 https://hub.docker.com/r/zabbix/zabbix-proxy-mysql #启动前先生成zabbix网络: $docker network create zabbix #docker-compose.yaml version: "3.0" services:     zabbix_proxy:         image: zabbix/zabbix-proxy-mysql:alpine-4.2.1         container_name: zabbix_proxy         ports:           - "10055:10051"         volumes:           - /etc/localtime:/etc/localtime:ro           - ./etc/enc:/var/lib/zabbix/enc         env_file:           - ./etc/env_proxy           - ./etc/env_mysql         networks:           - zabbix         #command: ['top'] networks:     zabbix:         external: true #env_mysql文件 DB_SERVER_HOST=192.168.1.200 DB_SERVER_PORT=3306 MYSQL_DATABASE=zabbix_porxy MYSQL_USER=zabbix_proxy MYSQL_PASSWORD=zabbix #env_proxy文件 ZBX_SERVER_HOST=192.168.1.200 ZBX_SERVER_PORT=10051 ZBX_TLSCONNECT=psk ZBX_TLSPSKIDENTITY=ZABBIXPROXY ZBX_TLSPSKFILE=zabbix_proxy.psk ZBX_HOSTNAME=ZabbixProxy ZBX_CONFIGFREQUENCY=60 ZBX_PROXYOFFLINEBUFFER=10 ZBX_TLSCONNECT=psk ZBX_TLSACCEPT=psk ZBX_DATASENDERFREQUENCY=30 ZBX_PROXYLOCALBUFFER=10 # 在 docker-compose.yaml 所在的目录下执行; docker-compose -f docker-compose.yaml up -d docker-compose up    #以后直接启动 docker-compose logs  #查看连接日志 #在zabbix-proxy-mysql docker中显示如下则表示成功接入,或者 zabbix_proxy    |    186:20190515:161355.527 proxy #26 started [preprocessing wo            rker #1] zabbix_proxy    |    161:20190515:161455.932 received configuration data from server at "192.168.1.200", datalen 3707 ``` 选择 管理 -> agent代理程序 -> 创建代理:![7d63f9947814aa5f35aa19a06160a8a0.png](https://img-blog.csdnimg.cn/img_convert/7d63f9947814aa5f35aa19a06160a8a0.png) 进行zabbix-proxy加密设置:![3ede554e9c74aa0aecc7627fc4fb7cba.png](https://img-blog.csdnimg.cn/img_convert/3ede554e9c74aa0aecc7627fc4fb7cba.png) Step 5. 接入主机到zabbix-proxy中: ``` #拿一台data连接到我们zabbix-proxy中,然后从zabbix-server进行获取信息 $egrep -v '^#' /etc/zabbix/zabbix_agentd.conf Server=192.168.1.98 ListenPort=10050 ServerActive=192.168.1.98:10055   #主动推送加端口 Hostname=proxy-agent #启动服务器的zabbix-agent [root@Master-data1 ~]$ service zabbix-agent start Starting Zabbix agent:                                     [  OK  ] ``` ![d24225e587c8e3aa2089448f009a8f69.png](https://img-blog.csdnimg.cn/img_convert/d24225e587c8e3aa2089448f009a8f69.png) weiyigeek.top-zabbix-proxy访问成功 Step 6.接入其他需要监控的主机到server中 ``` # 由于这里做了(高可用-直接连接server会进行主网卡转发) - 所以采用代理的形式 注意:在机器数量较少的时候可以采用被动主动,当机器变多的时候建议agent采用采用主动发送,以减少server的负载; #linux - agent 共用配置 Server192.168.1.98 ListenPort=10050 ServerActive=192.168.1.98:10055 #Linux-agent(主从) Hostname=Mzabbix Hostname=Szabbix #windows-agent Server192.168.56.102 ListenPort=10050 ServerActive=192.168.56.102:10055 Hostname=Windows7 ``` #### 4.Grafana 安装配置 step 1.Grafana应安装在zabbix-server服务器上并进行以下配置 ``` $wget https://dl.grafana.com/oss/release/grafana-5.4.2-1.x86_64.rpm  $sudo yum -y localinstall grafana-5.4.2-1.x86_64.rpm 已安装:   grafana.x86_64 0:5.4.2-1 $systemctl daemon-reload $systemctl start grafana-server $yum -y install fontconfig freetype* urw-fonts 已安装:   freetype-demos.x86_64 0:2.8-12.el7_6.1 freetype-devel.x86_64 0:2.8-12.el7_6.1 作为依赖被安装:   libpng-devel.x86_64 2:1.5.13-7.el7_2 $yum -y install fontconfig freetype* urw-fonts  #服务器端图像是一项可选功能 $systemctl start grafana-server ``` step 2.启动Grafana后,在浏览器中输入http://ip:3000,可访问(3000为默认端口,账号密码都是admin/weiyigeek),登录成功后需要您更改默认密码,然后进行插件安装: ``` #获取可用插件列表 grafana-cli plugins list-remote #安装zabbix插件 grafana-cli plugins list-remote |grep zabbix grafana-cli plugins install alexanderzobnin-zabbix-app #重启grafana,并再次访问 systemctl restart grafana-server ``` ![8c8a45026c6147d68f4b939f5b207dc3.png](https://img-blog.csdnimg.cn/img_convert/8c8a45026c6147d68f4b939f5b207dc3.png) weiyigeek.top-grafana安装zabbix插件 step 3.Grafana的zabbix配置: ``` 1.点击zabbix图标,启用zabbix插件 2.点击Enable 3.点击Add data source ,添加数据源 (首页) 4.点击zabbix,添加zabbix插件的数据源 ``` ![ca14c61e61d524647eff0820a921ee62.png](https://img-blog.csdnimg.cn/img_convert/ca14c61e61d524647eff0820a921ee62.png) weiyigeek.top-数据源 5.配置数据源 Name为自定义,要可区分 URL为zabbix的API地址,默认为:`http://zabbix-server的IP/zabbix/api_jsonrpc.php` 6.选择ACCESS为Browser Username,Password为zabbix的用户及对应的密码(可在zabbix上设置用户) 注意选择zabbix version为你自己的版本 - 确认无误则保存;![bac684c47be20d55df716c6a789635b4.png](https://img-blog.csdnimg.cn/img_convert/bac684c47be20d55df716c6a789635b4.png) 7.指示板进行查看并导入![15a014668274e07e963709202c5de02a.png](https://img-blog.csdnimg.cn/img_convert/15a014668274e07e963709202c5de02a.png) **亲,文章就要看完了,不关注一下【全栈工程师修炼指南】吗?** ![475e274f2eb116d29f2f750fbf9ae8b5.jpeg](https://img-blog.csdnimg.cn/img_convert/475e274f2eb116d29f2f750fbf9ae8b5.jpeg) 8.如何不正正确的链接到zabbix需要查看本地是否能正常连接到zabbix以及,绑定的zabbix的mysql的![d7619cb6d4fbd2f6c89005063c7d95ac.png](https://img-blog.csdnimg.cn/img_convert/d7619cb6d4fbd2f6c89005063c7d95ac.png) 9.最后grafana数据展现大成![27650d6a29068833f5e3c0d130124706.png](https://img-blog.csdnimg.cn/img_convert/27650d6a29068833f5e3c0d130124706.png) #### n.实践整体架构说明 ![ec7d7cbd945a9377e778f59e01eca43c.png](https://img-blog.csdnimg.cn/img_convert/ec7d7cbd945a9377e778f59e01eca43c.png) weiyigeek.top-zabbix架构 本文至此完毕,更多技术文章,尽情等待下篇好文! 原文地址: https://blog.weiyigeek.top/2019/5-14-191.html **【 如果此篇文章对你有帮助,请你将它分享给更多的人! 】** ![7c8a58f10eef5eee311fa23aa3a9c7b0.gif](https://img-blog.csdnimg.cn/img_convert/7c8a58f10eef5eee311fa23aa3a9c7b0.gif) ![313d78a17a7821d208eb568dd2e587bc.png](https://img-blog.csdnimg.cn/img_convert/313d78a17a7821d208eb568dd2e587bc.png) **学习书籍推荐****往期发布文章**![0e644bf77e102fa33cd476aa533721f6.png](https://img-blog.csdnimg.cn/img_convert/0e644bf77e102fa33cd476aa533721f6.png) 为了做好运维面试路上的助攻手,特整理了上百道 **【运维技术栈面试题集锦】** ,让你面试不慌心不跳,高薪offer怀里抱! 这次整理的面试题,**小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。** ![](https://img-blog.csdnimg.cn/img_convert/0c30ce56f9ccbc03c4e01e7cc595ed84.png) 本份面试集锦涵盖了 * **174 道运维工程师面试题** * **128道k8s面试题** * **108道shell脚本面试题** * **200道Linux面试题** * **51道docker面试题** * **35道Jenkis面试题** * **78道MongoDB面试题** * **17道ansible面试题** * **60道dubbo面试题** * **53道kafka面试** * **18道mysql面试题** * **40道nginx面试题** * **77道redis面试题** * **28道zookeeper** **总计 1000+ 道面试题, 内容 又全含金量又高** * **174道运维工程师面试题** > 1、什么是运维? > 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的? > 3、现在给你三百台服务器,你怎么对他们进行管理? > 4、简述raid0 raid1raid5二种工作模式的工作原理及特点 > 5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择? > 6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择? > 7、Tomcat和Resin有什么区别,工作中你怎么选择? > 8、什么是中间件?什么是jdk? > 9、讲述一下Tomcat8005、8009、8080三个端口的含义? > 10、什么叫CDN? > 11、什么叫网站灰度发布? > 12、简述DNS进行域名解析的过程? > 13、RabbitMQ是什么东西? > 14、讲一下Keepalived的工作原理? > 15、讲述一下LVS三种模式的工作过程? > 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟? > 17、如何重置mysql root密码? **网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。** **[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)** **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!** 怎么选择? > 8、什么是中间件?什么是jdk? > 9、讲述一下Tomcat8005、8009、8080三个端口的含义? > 10、什么叫CDN? > 11、什么叫网站灰度发布? > 12、简述DNS进行域名解析的过程? > 13、RabbitMQ是什么东西? > 14、讲一下Keepalived的工作原理? > 15、讲述一下LVS三种模式的工作过程? > 16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟? > 17、如何重置mysql root密码? **网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。** **[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)** **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值