使用zabbix-proxy进行分布式监控

目录

一、准备4台服务器

二、配置主从复制

1.准备环境

2.主机名解析

3.安装数据库

4.配置主库db1

5.配置从库db2

6.主从状态显示

三、db1,db2配置zabbix-agent

三、zabbix-server的配置

四、zabbix-proxy的配置

1.为您的平台安装和配置Zabbix-proxy

a. 安装Zabbix存储库

b. 安装Zabbix proxy

c.创建初始数据库

d.在Zabbix server主机上,导入初始模式和数据。系统将提示您输入新创建的密码。

e.导入数据库架构后禁用log_bin_trust_function_creators选项。

f.为Zabbix proxy配置数据库

g.启动Zabbix proxy进程

2.修改zabbix-proxy的配置文件

 3.页面配置

?4.检查


一、准备4台服务器

zabbix-server                服务端

zabbix-proxy                 代理端

db1                                数据库1(主库)

db2                                 数据库2(从库)

二、配置主从复制

1.准备环境

#防火墙 selinux
[root@localhost ~]# systemctl stop firewalld --now && setenforce 0
# 修改主机名
[root@localhost ~]# hostnamectl set-hostname db1
# 固定IP
[root@db1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static    		    #静态ip          
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes						#网卡开机自启 
IPADDR=110.12.155.112			#需要固定的ip地址
PREFIX=24						#子网掩码
GATEWAY=10.12.155.250			#网关
DNS1=223.5.5.5
DNS2=223.6.6.6

保存退出后重启网卡
[root@db1 ~]# systemctl restart network

注:为防止配对成功以后ip地址改变出现连接问题

2.主机名解析

主机名解析
[root@db1 ~]# vim /etc/hosts #添加以下内容

10.12.155.112 db1    #主库机ip和主机名
10.12.155.113 db2    #从库机ip和主机名

3.安装数据库

#1yum安装
(安装数据库步骤请看博主前面的文章)
https://blog.csdn.net/zbw0323/article/details/135171013?spm=1001.2014.3001.5501

#2启动数据库
[root@db1 ~]# systemctl start msyqld

#3修改密码
[root@db2 ~]# mysqladmin -uroot -p"`awk '/temporary password/{p=$NF}END{print p}' /var/log/mysqld.log`" password '新密码'

4.配置主库db1

#开启binlog
[root@db1 ~]# mkdir -pv /data/          #创建二进制日志文件的存储目录

[root@db1 ~]# chown mysql.mysql /data   #改属主属组为mysql

[root@db1 ~]# vim /etc/my.cnf		   #编辑mysql配置文件添加以下内容
server-id=328           	  #id号可自定义
log-bin=/data/mysql-bin       #日志文件名可自定义

# 重启数据库
[root@db1 ~]# systemctl restart msyqld

# 创建并授权一个账号
mysql> grant replication slave on *.* to '账号名'@'授权网段或ip' identified by '账号的密码';

mysql> flush privileges;

# 查看当前binlog日志文件以及pos位置点
mysql> show master statusG
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 606
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

5.配置从库db2

#编辑mysql配置文件添加server-id
[root@db2 ~]# vim /etc/my.cnf
server-id=329

# 重启数据库
[root@db2 ~]# systemctl restart msyqld

mysql> ? change master to   		  	#查找需要插入的配置主从信息模板

模板如下 修改配置信息后并执行
mysql> CHANGE MASTER TO
  MASTER_HOST='master',
  MASTER_USER='账号名',
  MASTER_PASSWORD='账号的密码',
  MASTER_PORT=3306,
  MASTER_LOG_FILE='mysql-bin.000001',     #主库查到的当前binlog日志文件
  MASTER_LOG_POS=606,                     #主库查到的pos位置点
  MASTER_CONNECT_RETRY=10;
  
# 启动slave
mysql> start slave;

# 查看主从状态
mysql> show slave statusG

6.主从状态显示

mysql> show slave statusG 
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: master
                  Master_User: relication
                  Master_Port: 3306
                Connect_Retry: 10
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 154
               Relay_Log_File: slave-relay-bin.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes                    为Yes成功 
            Slave_SQL_Running: Yes                    为Yes成功
              Replicate_Do_DB:                         
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 154
              Relay_Log_Space: 527
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 203
                  Master_UUID: 6f6d0551-a073-11ee-9f28-000c298a6e96
             Master_Info_File: /var/lib/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)

三、db1,db2配置zabbix-agent

参考博主的博客的配置zabbix-agent(客户端)

配置zabbix监控平台-CSDN博客

三、zabbix-server的配置

参考博主的博客的配置zabbix-server(服务端)

配置zabbix监控平台-CSDN博客

四、zabbix-proxy的配置

1.为您的平台安装和配置Zabbix-proxy

a. 安装Zabbix存储库
[root@zabbix-proxy ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@zabbix-proxy ~]# yum clean all
b. 安装Zabbix proxy
[root@zabbix-proxy ~]# yum install zabbix-proxy-mysql
c.创建初始数据库

参考博主博客-----MySQL部署之yum安装-CSDN博客

确保您已启动并运行数据库服务器。

在数据库主机上运行以下命令。

[root@zabbix-proxy ~]# mysql -uroot -p'密码'    登录MySQL
 mysql> create database zabbix_proxy character set utf8 collate utf8_bin;    创建zabbix库
 mysql> grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by '密码'    给zabbix用户授权
 mysql> set global log_bin_trust_function_creators = 1;        
 mysql> quit;
d.在Zabbix server主机上,导入初始模式和数据。系统将提示您输入新创建的密码。
 [root@zabbix-proxy ~]# zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix -p '密码' zabbix_proxy
e.导入数据库架构后禁用log_bin_trust_function_creators选项。
[root@zabbix-proxy ~]#  mysql -uroot -p'密码'
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit
f.为Zabbix proxy配置数据库

编辑文件 /etc/zabbix/zabbix_proxy.conf

DBPassword=password
g.启动Zabbix proxy进程

启动Zabbix proxy进程,使其在系统启动时启动。

[root@zabbix-proxy ~]# systemctl restart zabbix-proxy
[root@zabbix-proxy ~]# systemctl enable zabbix-proxy

2.修改zabbix-proxy的配置文件

 vim /etc/zabbix/zabbix_proxy.conf

# 修改一下内容
ProxyMode=1 # 0为主动  1为被动
Server=服务端ip地址
Hostname=zbxproxy.proxy   #主机名
ListenPort=10051    #proxy自己的监听端口
EnableRemoteCommands=1    #允许远程命令
LogRemoteCommands=1    #记录远程命令的日志

数据的配置
DBHost=数据库地址
DBName=zabbix_proxy  
DBUser=zabbix
DBPassword=zbxproxypass

ConfigFrequency=30    #多长时间,去服务端拖一次有自己监控的操作配置;为了实验更快的生效,这里设置30秒,默认3600s
DataSenderFrequency=1   #每一秒向server 端发一次数据,发送频度

[root@zabbix-proxy ~]# systemctl start zabbix-proxy

 3.页面配置

4.检查

查看以前的监控项是否正常