本监控系统由一个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分布式监控的部署完成。
PHP网站源码合肥网站推广系统公司郴州网站推广哪家好天门关键词按天收费公司襄樊外贸网站制作哪家好益阳百度网站优化多少钱淮北企业网站制作哪家好清远SEO按天收费推荐开封网站建设设计哪家好咸阳seo网站优化价格太原优化多少钱萍乡设计公司网站张北高端网站设计报价梅州SEO按效果付费公司白城模板推广推荐济源百度竞价包年推广哈尔滨阿里店铺托管海南百度网站优化排名哪家好济宁推广网站价格黄山网站seo优化报价宝鸡网站设计模板眉山网站优化按天收费多少钱民治网站关键词优化多少钱焦作关键词按天计费推荐大浪网站搜索优化价格玉树高端网站设计哪家好临夏网站设计模板价格海口网站开发报价坑梓SEO按效果付费多少钱保山网站推广工具价格承德网站开发价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运
PHP网站源码合肥网站推广系统公司郴州网站推广哪家好天门关键词按天收费公司襄樊外贸网站制作哪家好益阳百度网站优化多少钱淮北企业网站制作哪家好清远SEO按天收费推荐开封网站建设设计哪家好咸阳seo网站优化价格太原优化多少钱萍乡设计公司网站张北高端网站设计报价梅州SEO按效果付费公司白城模板推广推荐济源百度竞价包年推广哈尔滨阿里店铺托管海南百度网站优化排名哪家好济宁推广网站价格黄山网站seo优化报价宝鸡网站设计模板眉山网站优化按天收费多少钱民治网站关键词优化多少钱焦作关键词按天计费推荐大浪网站搜索优化价格玉树高端网站设计哪家好临夏网站设计模板价格海口网站开发报价坑梓SEO按效果付费多少钱保山网站推广工具价格承德网站开发价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运