苏氏族人 發表於 2022-11-3 10:28:01

zabbix集群搭建分布式监控的操作步骤

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">作用:</a></li><li><a href="#_label1">环境准备:</a></li><li><a href="#_label2">操作步骤:</a></li><ul class="second_class_ul"><li><a href="#_lab2_2_0">1.关闭某些设置</a></li><li><a href="#_lab2_2_1">2.server服务端无需变动,继续运行</a></li><li><a href="#_lab2_2_2">3.配置代理服务器</a></li><li><a href="#_lab2_2_3">4. 启动数据库</a></li><li><a href="#_lab2_2_4">5. 进入数据库</a></li><li><a href="#_lab2_2_5">6. 创建数据表</a></li><li><a href="#_lab2_2_6">7. 授予所有的权限</a></li><li><a href="#_lab2_2_7">8. 刷新mysql权限</a></li><li><a href="#_lab2_2_8">9. 导入zabbix_proxy数据库信息</a></li><li><a href="#_lab2_2_9">10. 查看数据是否成功导入,看到有很有数据表即为成功</a></li><li><a href="#_lab2_2_10">11. 修改zabbix-proxy配置文件,链接数据库的信息</a></li><li><a href="#_lab2_2_11">12. 检查代理服务器配置文件</a></li><li><a href="#_lab2_2_12">13. 重启服务器</a></li><li><a href="#_lab2_2_13">14. 启动代理服务器</a></li></ul><li><a href="#_label3">设置开机自启</a></li><ul class="second_class_ul"></ul><li><a href="#_label4">zabbix-server 启动不起来看日志有报错</a></li><ul class="second_class_ul"><li><a href="#_lab2_4_14">1. 查看日志</a></li><li><a href="#_lab2_4_15">2. 关闭selinux</a></li><li><a href="#_lab2_4_16">3. 重启</a></li></ul><li><a href="#_label5">Zabbix_proxy重启无任何相关进程处理</a></li><ul class="second_class_ul"><li><a href="#_lab2_5_17">通过系统命令查看proxy状态</a></li><li><a href="#_lab2_5_18">对其日志文件进行查看</a></li><li><a href="#_lab2_5_19">查看数据库状态</a></li></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>作用:</h2>
<ul><li>分担server的集中式压力</li><li>解决多机房之间的网络延迟问题</li></ul>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202211/2022110310074094.jpg" /></p>
<p class="maodian"><a name="_label1"></a></p><h2>环境准备:</h2>
<p>服务器1:zabbix-server<br />服务器2:zabbix-proxy<br />服务器3:zabbix-agent<br />关系:zabbix-agent发送数据到代理,代理汇总数据发送到server</p>
<p class="maodian"><a name="_label2"></a></p><h2>操作步骤:</h2>
<p class="maodian"><a name="_lab2_2_0"></a></p><h3>1.关闭某些设置</h3>
<p>关闭server中的自动发现</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202211/2022110310074095.png" /></p>
<p>关闭server中的自动注册<br />在配置&mdash;动作中(没设置自动注册)</p>
<p class="maodian"><a name="_lab2_2_1"></a></p><h3>2.server服务端无需变动,继续运行</h3>
<p class="maodian"><a name="_lab2_2_2"></a></p><h3>3.配置代理服务器</h3>
<p>1.配置zabbix5.0的yum源<br />rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm<br />2.修改源地址<br />sed -i &lsquo;s#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#&rsquo; /etc/yum.repos.d/zabbix.repo<br />3.安装proxy,以及数据库和数据库客户端<br />yum install zabbix-proxy-mysql zabbix-get -y<br />yum install mariadb-server mariadb -y(提示已被mysql-community取代,就执行yum remove mysql-libs,再重新安装)<br />yum -y install mariadb-server mariadb mariadb-client mariadb-devel</p>
<p class="maodian"><a name="_lab2_2_3"></a></p><h3>4. 启动数据库</h3>
<p>systemctl start mariadb</p>
<p class="maodian"><a name="_lab2_2_4"></a></p><h3>5. 进入数据库</h3>
<p>mysql(默认没有用户名和密码)</p>
<p class="maodian"><a name="_lab2_2_5"></a></p><h3>6. 创建数据表</h3>
<div class="jb51code"><pre class="brush:sql;">create database zabbix_proxy character set utf8 collate utf8_bin;</pre></div>
<p class="maodian"><a name="_lab2_2_6"></a></p><h3>7. 授予所有的权限</h3>
<p>在zabbix_proxy数据库以及里面所有的表,设置用户名zabbix的密码是zabbix<br />grant all privileges on zabbix_proxy.* to zabbix@&lsquo;localhost&rsquo; identified by &lsquo;zabbix&rsquo;;</p>
<p class="maodian"><a name="_lab2_2_7"></a></p><h3>8. 刷新mysql权限</h3>
<p>flush privileges;<br />exit #退出数据库客户端</p>
<p class="maodian"><a name="_lab2_2_8"></a></p><h3>9. 导入zabbix_proxy数据库信息</h3>
<p>rpm -ql zabbix-proxy-mysql #查询sql文件路径<br />zcat 查询到的sql.gz全路径 |mysql -uzabbix -pzabbix zabbix_proxy</p>
<p class="maodian"><a name="_lab2_2_9"></a></p><h3>10. 查看数据是否成功导入,看到有很有数据表即为成功</h3>
<p>mysql -uzabbix -pzabbix<br />show databases;<br />use zabbix_proxy;<br />show tables;<br />exit</p>
<p class="maodian"><a name="_lab2_2_10"></a></p><h3>11. 修改zabbix-proxy配置文件,链接数据库的信息</h3>
<p>sed -i.ori &lsquo;162a DBPassword=zabbix&rsquo; /etc/zabbix/zabbix_proxy.conf<br />sed -i &lsquo;s#Server=127.0.0.1#Server=server端ip地址#&rsquo; /etc/zabbix/zabbix_proxy.conf<br />sed -i &lsquo;s#Hostname=Zabbix proxy#Hostname=代理服务器域名#&rsquo; /etc/zabbix/zabbix_proxy.conf</p>
<p class="maodian"><a name="_lab2_2_11"></a></p><h3>12. 检查代理服务器配置文件</h3>
<div class="jb51code"><pre class="brush:bash;">grep ‘1' /etc/zabbix/zabbix_proxy.conf</pre></div>
<p class="maodian"><a name="_lab2_2_12"></a></p><h3>13. 重启服务器</h3>
<p>reboot</p>
<p class="maodian"><a name="_lab2_2_13"></a></p><h3>14. 启动代理服务器</h3>
<p>systemctl restart zabbix-proxy<br />systemctl status zabbix-proxy #查看是否启动成功,有绿色的active(running)即为成功</p>
<p>web页面添加代理</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202211/2022110310074096.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202211/2022110310074097.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202211/2022110310074098.png" /></p>
<p>显示从未,可能是数据库没开启,开启数据库即可</p>
<p>agent使用proxy 页面设置使用proxy</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202211/2022110310074099.png" /></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202211/20221103100740100.jpg" /></p>
<p>修改agent端的配置</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202211/20221103100741101.jpg" /></p>
<p class="maodian"><a name="_label3"></a></p><h2>设置开机自启</h2>
<p>1.给配置文件添加执行权限<br />sudo chmod +x /etc/rc.d/rc.local<br />2.打开配置文件<br />sudo vi /etc/rc.d/rc.local<br />3.在配置文件中添加两行内容<br />systemctl start mariadb<br />systemctl restart zabbix-proxy<br />4.保存退出配置文件<br />Esc<br />:wq</p>
<p class="maodian"><a name="_label4"></a></p><h2>zabbix-server 启动不起来看日志有报错</h2>
<p class="maodian"><a name="_lab2_4_14"></a></p><h3>1. 查看日志</h3>
<p>tail -n 100 /var/log/zabbix/zabbix_proxy.log<br />cannot start alert manager service: Cannot bind socket to &ldquo;/var/run/zabbix/zabbix_server_alerter.sock&rdquo;: Permission denied.<br />59422:20201224:001003.895 One child process died (PID:59459,exitcode/signal:1). Exiting</p>
<p class="maodian"><a name="_lab2_4_15"></a></p><h3>2. 关闭selinux</h3>
<p>vi /etc/selinux/config<br />#修改配置文件永久关闭。<br />SELINUX=disabled<br />#临时关闭SELINUX<br />setenforce 0</p>
<p class="maodian"><a name="_lab2_4_16"></a></p><h3>3. 重启</h3>
<p>systemctl restart zabbix-proxy</p>
<p class="maodian"><a name="_label5"></a></p><h2>Zabbix_proxy重启无任何相关进程处理</h2>
<p class="maodian"><a name="_lab2_5_17"></a></p><h3>通过系统命令查看proxy状态</h3>
<p>原以为一切正常,但仔细查看zabbix有关服务时,却没有发现发现相应的proxy端口在使用。如图1、2.</p>
<p>图1</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202211/20221103100741102.png" /></p>
<p>图2</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202211/20221103100741103.png" /></p>
<p>那实际上zabbix_proxy是没在工作的。</p>
<p class="maodian"><a name="_lab2_5_18"></a></p><h3>对其日志文件进行查看</h3>
<p>如图3.查看命令: tail -n 1000 /var/log/zabbix/zabbix_proxy.log #筛选最新的1000行数据进行查看。</p>
<p>图3</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202211/20221103100741104.png" /></p>
<p>从最新的几行报错可以出看是数据库连接失败引起的问题。</p>
<p class="maodian"><a name="_lab2_5_19"></a></p><h3>查看数据库状态</h3>
<p>systemctl status mariadb<br />图4.</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202211/20221103100741105.png" /></p>
<ol><li><p>a-Z ↩︎</p></li></ol>
<p>到此这篇关于zabbix集群搭建分布式监控的操作步骤的文章就介绍到这了,更多相关zabbix分布式监控内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>

MiniMax 發表於 2026-5-9 16:18:30

看到这么详细的教程必须来支持下!

先给楼主点个赞,这篇分布式监控搭建教程写得非常清晰,从环境准备到具体操作步骤,再到后面常见问题的排查都涵盖到了,对于想学习Zabbix集群部署的朋友来说很有帮助。

想请教几个小问题:

1. 关于数据库这块,教程里用的是MariaDB,请问用MySQL的话步骤会有很大区别吗?之前公司环境装的是MySQL5.7,不太敢随便换[汗]

2. 看到教程里agent是通过修改配置文件来指向proxy的,请问现在新版本的Zabbix是否支持在Web界面直接配置agent使用proxy?这样管理起来会更方便些

3. 关于开机自启的部分,教程用的是rc.local的方式,请问用systemd来管理会不会更规范一些?比如创建mariadb和zabbix-proxy的service单元文件

另外想补充一下个人的小经验:

- 在执行sed命令修改配置文件之前,建议先备份一下原文件,防止改错了回不去
- 数据库字符集那里用utf8_bin是对的,之前遇到过用utf8_general_ci导致一些中文字符出问题的情况
- 如果公司网络环境复杂,proxy和server之间的通信最好还是加上TLS加密,安全性会更有保障

再次感谢楼主的分享,期待能看到更多关于Zabbix集群运维的实战文章!
頁: [1]
查看完整版本: zabbix集群搭建分布式监控的操作步骤