zabbix笔记_007 zabbix 分布式架构

1. zabbix 分布式架构[服务器数量较大的场景下使用]

现有架构:
agent --> zabbix server

proxy架构:
agent --> zabbix proxy --> zabbix server
proxy架构是让agent数据上报给zabbix proxy然后由zabbix proxy统一发送给zabbix server

架构改造:
将一台zabbix_agent 转变为 zabbix proxy  
新增一台 zabbix server让zabbix proxy数据发送给zabbix server


10.0.0.80  zabbix_server
10.0.0.66  zabbix_agent 转变为 zabbix_proxy 
10.0.0.63  zabbix_agent
10.0.0.65  zabbix_agent

2. zabbix_proxy架构图

3. zabbix agent业务机器配置agent:

将zabbix agent的服务器地址指向 proxy服务器
下面配置的是 10.0.0.63 10.0.0.65 服务器修改 zabbix proxy 项指向了 10.0.0.66的proxy服务器

#agent客户端10.0.0.63配置:
#1. 修改agent配置文件的proxy服务器地址
[root@master zabbix]# egrep  -v "^#|^$"  /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#----------------------- 将server改为我们的zabbix proxy服务器地址 ----------------------------
如下:
[root@node2_proxy zabbix-proxy-mysql-3.4.10]# egrep  -v "^#|^$" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.66
ServerActive=10.0.0.66
Hostname=Zabbix_agent_66
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#-----------------

# 2. 重启 zabbix_agent服务
 [root@master zabbix]# systemctl restart zabbix-agent.service
 
 
 ============================================
 ----------------分割线----------------------
 ============================================

#agent客户端10.0.0.65配置:

#agent客户端配置:
#1. 修改agent配置文件的proxy服务器地址
[root@master zabbix]# egrep  -v "^#|^$" zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#----------------------- 将server改为我们的zabbix proxy 服务器地址 ----------------------------
如下:
[root@master zabbix]# egrep  -v "^#|^$" zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.66
ServerActive=10.0.0.66
Hostname=Zabbix_agent_65
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#-----------------

# 2. 重启 zabbix_agent服务
 [root@master zabbix]# systemctl restart zabbix-agent.service

4. zabbix_proxy 安装 [10.0.0.66]

-------------------------------------------------
一 . 安装zabbix-proxy:
#1. 安装zabbix-agent zabbix-proxy
   yum localinstall -y  https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.10-1.el7.x86_64.rpm
   yum localinstall -y  http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-proxy-mysql-3.4.10-1.el7.x86_64.rpm

#2. 安装 mariadb
   yum install  -y mariadb-server
 #2.1 启动mariadb和设置开机自启动   
   systemctl start mariadb.service
   systemctl enable mariadb.service
 
 #2.2 创建zabbix_proxy库
  mysql
   create database zabbix_proxy default charset utf8;
   grant all privileges on zabbix_proxy.* to zabbix_proxy@'localhost' identified by '123456';
   flush privileges;
   exit
  数据库账号密码: zabbix_proxy 123456
 
  MariaDB [(none)]> show databases;
 +--------------------+
 | Database           |
 +--------------------+
 | information_schema |
 | test               |
 | zabbix_proxy       |
 +--------------------+
3 rows in set (0.00 sec)

 #2.3 导入zabbix_proxy数据[默认就在zabbix-proxy中]:
  cd /usr/share/doc/zabbix-proxy-mysql-3.4.10/
  zcat schema.sql.gz |mysql -uzabbix_proxy -p123456 zabbix_proxy
  如果你不知道文件在哪儿你可以使用 rpm -ql zabbix-proxy 来查看
  schema.sql.gz  这个文件就是
 进入数据库检查:
 mysql
 use zabbix_proxy;
 show tables;
 
 看到里面有表证明成功
-------------------------------------------------

二. 配置zabbix-proxy连接数据库:
配置文件: /etc/zabbix/zabbix_proxy.conf
1. 修改配置文件:
/etc/zabbix/zabbix_proxy.conf
修改为以下结果:
Server=10.0.0.80
Hostname=Zabbix_proxy
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=123456
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
-------------------------------------------------
1.1 配置文件解释:
[root@node2_proxy zabbix-proxy-mysql-3.4.10]# cat /etc/zabbix/zabbix_proxy.conf
Server=10.0.0.80      ##<--------改为zabbix server服务器地址
Hostname=80_zabbix_proxy ##<--------这个名字很重要,它关系到 zabbix server是否可以找到proxy服务器
LogFile=/var/log/zabbix/zabbix_proxy.log  ##<-------- 日志文件
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid  ##<-------- 进程pid
SocketDir=/var/run/zabbix
DBName=zabbix_proxy   ##<-------- 改为zabbix_proxy 数据库名
DBUser=zabbix_proxy   ##<-------- 改为zabbix_proxy 数据库连接账户
DBPassword=123456     ##<-------- 改为zabbix_proxy 数据库连接密码
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

#2. 重启zabbix-proxy服务
   systemctl restart zabbix-proxy.service
   #检查状态:
   systemctl status zabbix-proxy.service
   #开机启动:
   systemctl enable zabbix-proxy.service
   
 
记得启动完成后检查一下服务状态: systemctl status zabbix-proxy.service,直接查看进程也可以:
 [root@node2_proxy zabbix-proxy-mysql-3.4.10]# netstat -lntup |grep zabbix_proxy
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      37332/zabbix_proxy
tcp6       0      0 :::10051                :::*                    LISTEN      37332/zabbix_proxy
-------------------------------------------------

三. zabbix server配置获取zabbix proxy数据配置:   

5. WEB页面配置 [http://10.0.0.80]

依次选择:
配置 - 主机 - 创建主机

配置好了添加:

这里的 zabbix图标没有亮,需要等待一会儿,如果等不及,就去重启一下 proxy服务器中的zabbix-proxy

systemctl restart zabbix-proxy

再次刷新就看到被监控上了:

检查告警是否正常:

微信告警推送正常:

posted @ 2020-03-27 16:54  陈雷雷  阅读(395)  评论(0编辑  收藏  举报