欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

实现分布式 zabbix proxy 监控

程序员文章站 2022-07-11 11:41:21
...

实现分布式 zabbix proxy 监控

1、实验前准备

  • ntpdate 同步时间

  • 关闭防火墙,selinux

  • 设置主机名
    -hostnamectl --static set-hostname zbxproxy

  • vim /etc/hosts 每个机器都设置hosts,以解析主机名;DNS也行

[aaa@qq.com ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.122.221 zabbix
192.168.122.208 node-1
192.168.122.56 node-2
192.168.122.132 node-3

2、环境配置(4台主机)

机器名称 IP配置 服务角色
zabbix 192.168.122.221 监控
node-1 192.168.122.208 被监控端
node-2 192.168.122.56 被监控端
node-3 192.168.122.132 代理proxy
  • zabbix-server 直接监控一台主机 node-1

  • zabbix-server 通过代理node-3 监控 node-2

3、在 node3 上配置 mysql

1、创建配置 mysql
1、创建 mariadb.repo
[aaa@qq.com ~]# vim /etc/yum.repos.d/mariadb.repo
写入以下内容:
[mariadb]
name = MariaDB 
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64 
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB 
gpgcheck=1
2、yum 安装最新版本 mariadb
[aaa@qq.com ~]# yum install -y MariaDB-server MariaDB-client
  • 修改配置文件
[aaa@qq.com ~]# vim /etc/my.cnf.d/server.cnf
    [mysqld]
    skip_name_resolve = ON          # 跳过主机名解析
    innodb_file_per_table = ON      # 开启独立表空间
    innodb_buffer_pool_size = 256M  # 缓存池大小
    max_connections = 2000          # 最大连接数
    log-bin = master-log            # 开启二进制日志
3、重启我们的数据库服务
[aaa@qq.com ~]#  systemctl restart mariadb
[aaa@qq.com ~]#  mysql_secure_installation  # 初始化mariadb
4、创建数据库 和 授权用户
[root@node-3 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 19
Server version: 10.4.14-MariaDB-log MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> create database zbxproxydb character set 'utf8';
MariaDB [(none)]> grant all on zbxproxydb.* to 'zbxproxyuser'@'192.168.122.%' identified by '1026';
MariaDB [(none)]> flush privileges;

3、在node3 上下载zabbix 相关的包,主要是代理proxy的包

[aaa@qq.com ~]# yum -y install zabbix-proxy-mysql zabbix-get zabbix-agent zabbix-sender

如果安装zabbix-proxy-server时,报以下错误,可通过更换zabbix仓库源来实现

 错误:软件包:zabbix-proxy-mysql-5.0.3-1.el8.x86_64 (zabbix)
             需要:libssh.so.4(LIBSSH_4_5_0)(64bit)

错误:软件包:zabbix-proxy-mysql-5.0.3-1.el8.x86_64 (zabbix)
          需要:libnetsnmp.so.35()(64bit)
错误:软件包:zabbix-proxy-mysql-5.0.3-1.el8.x86_64 (zabbix)
          需要:libevent-2.1.so.6()(64bit)
[aaa@qq.com ~]# vim /etc/yum.repos.d/zabbix.repo
 
[zabbix]
name=Zabbix Official Repository - $basearch
#baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
#baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
#baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1

[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
#baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
1、初始化数据库
  • zabbix-proxy-mysql 包里带有,导入数据的文件
[aaa@qq.com ~]# cp /usr/share/doc/zabbix-proxy-mysql-3.4.4/schema.sql.gz ./ 复制
[aaa@qq.com ~]# gzip -d schema.sql.gz 解包
[aaa@qq.com ~]# mysql -uroot -p zbxproxydb < schema.sql 导入数据
2、查看数据已经生成

实现分布式 zabbix proxy 监控

实现分布式 zabbix proxy 监控

4、配置 proxy 端

[aaa@qq.com ~]# vim /etc/zabbix/zabbix_proxy.conf

实现分布式 zabbix proxy 监控

Server=192.168.122.221        # zabbix-server 的IP
ServerPort=10051             # server 的端口

Hostname=node-3  # 主机名
ListenPort=10051             # proxy自己的监听端口
EnableRemoteCommands=1       # 允许远程命令
LogRemoteCommands=1          # 记录远程命令的日志

# 数据的配置
DBHost=192.168.122.132
DBName=zbxproxydb  
DBUser=zbxproxyuser
DBPassword=1026

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

2、开启服务

[aaa@qq.com ~]# systemctl start zabbix-proxy

5、配置node2端允许proxy代理监控(node-2需安装zabbix-agent)

[aaa@qq.com ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=1192.168.122.132  #代理服务器(node-3)的ip
ServerActive=192.168.122.132
[aaa@qq.com ~]# systemctl restart zabbix-agent # 启动服务 

6、把代理加入监控 server 创建配置agent 代理

1、创建agent 代理

实现分布式 zabbix proxy 监控

2、配置

实现分布式 zabbix proxy 监控

7、创建node2 主机并采用代理监控

实现分布式 zabbix proxy 监控

  • 设置代理成功并添加一个模板
  • 实现分布式 zabbix proxy 监控

实现分布式 zabbix proxy 监控

成功graph 图形生成

实现分布式 zabbix proxy 监控