美文网首页
Zabbix分布式监控

Zabbix分布式监控

作者: 唯爱熊 | 来源:发表于2020-01-17 15:28 被阅读0次

    一.概述

    zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力.此外,当所有agents和proxies报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。(摘自官网)

    zabbix proxy 使用场景:

    监控远程区域设备
    监控本地网络不稳定区域
    当 zabbix 监控上千设备时,使用它来减轻 server 的压力
    简化分布式监控的维护



    zabbix proxy 仅仅需要一条 tcp 连接到 zabbix server,所以防火墙上仅仅需要加上一条规则即可

    分布式监控原理
    proxy收集到数据之后,首先将数据缓存在本地,然后在一定得时间之后传递给zabbix server,这样就不会因为服务器的任何临时通信问题而丢失数据。这个时间由proxy配置文件中参数ProxyLocalBuffer和 ProxyOfflineBuffer决定。

    二.实践配置

    环境说明:
    zabbix-server 处于外网,zabbix-agent 处于各个地方的内网,各地的内网都是互通的。其中有一台内网服务器既可以和内网通信,也可以和外网进行通信。
    实践场景与地址分配

    1.操作配置

    1)zabbix-server端
    这里省略,之前已有安装好的。
    2)zabbix-proxy端安装。

    #下载安装包
    [root@sh-proxy ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
    [root@sh-proxy ~]# yum -y install zabbix-proxy-mysql
    #安装数据库
    [root@sh-proxy ~]# yum -y install mariadb-server
    #启动数据库并设置开机自启
    [root@sh-proxy ~]# systemctl start mariadb
    [root@sh-proxy ~]# systemctl enable mariadb
    #初始化数据库并创建数据库以及授权
    [root@sh-proxy ~]# mysql_secure_installation
    [root@sh-proxy ~]# mysql -uroot -p123456
    MariaDB [(none)]> create database zabbix_proxy default charset utf8;
    Query OK, 1 row affected (0.00 sec)
    
    MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix_proxy@'localhost' identified by 'zabbix_proxy';
    Query OK, 0 rows affected (0.00 sec)
    #导入数据
    [root@sh-proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-4.0.16/
    [root@sh-proxy /usr/share/doc/zabbix-proxy-mysql-4.0.16]# ls
    AUTHORS  ChangeLog  COPYING  NEWS  README  schema.sql.gz
    [root@sh-proxy /usr/share/doc/zabbix-proxy-mysql-4.0.16]#  zcat schema.sql.gz |mysql -uzabbix_proxy -pzabbix_proxy zabbix_proxy
    #配置proxy连接数据库
    [root@sh-proxy ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
    Server=10.0.0.71
    Hostname=sh-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=zabbix_proxy
    SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
    Timeout=4
    ExternalScripts=/usr/lib/zabbix/externalscripts
    LogSlowQueries=3000
    #启动zabbix-agent
    [root@sh-proxy ~]# systemctl start zabbix-proxy.service
    [root@sh-proxy ~]# netstat -lntp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      7959/mysqld         
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      7127/sshd           
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      7224/master         
    tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      8201/zabbix_proxy   
    tcp6       0      0 :::22                   :::*                    LISTEN      7127/sshd           
    tcp6       0      0 ::1:25                  :::*                    LISTEN      7224/master         
    tcp6       0      0 :::10051                :::*        
    

    2.server端 Web 配置

    1)创建一个agent代理程序;进入:配置 -> agent代理程序 -> 创建代理



    agnet代理名称(必须是zabbix-proxy上面的主机名),模式根据配置里面来定,代理地址(zabbix-proxy上面能和zabbix-server通信的地址)



    2)配置zabbix-agent
    [root@zabbix-agent ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    Server=172.16.1.8
    ServerActive=172.16.1.8
    Hostname=172.16.1.7
    Include=/etc/zabbix/zabbix_agentd.d/*.conf
    

    3)添加主机
    自动添加


    手动添加

    注意:根据实际需求配置数据同步和配置同步的频率,由于地域和网络的问题,配置有不同,自行配置即可。

    相关文章

      网友评论

          本文标题:Zabbix分布式监控

          本文链接:https://www.haomeiwen.com/subject/txpczctx.html