• 企业级监控方案——zabbix!(下)


    zabbix-agent部署

    图片

    server:192.168.244.141
    
    agent1:192.168.244.128
    
    agent2:192.168.244.129
    
    • 1
    • 2
    • 3
    • 4
    • 5

    我们现在来开始部署zabbix-agent

    这里我只写出agent1的步骤,agent2的操作同agent1

    • 安装zabbix-agent(rpm包与zabbix-server一致
    oot@agent1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
    
    [root@agent1 ~]#  yum install -y zabbix-agent
    
    • 1
    • 2
    • 3
    • 修改agent配置文件

    我们需要修改配置文件,添加zabbix-server的IP地址

    [root@agent1 ~]# vim /etc/zabbix/zabbix_agentd.conf
    
    ###修改成zabbix-server端的ip地址###
    Server=192.168.244.141
    
    ###修改成zabbix-server端的ip地址###
    ServerActive=192.168.244.141
    ###修改成zabbix-agent端即本机的ip地址,不要用127.0.0.1###
    Hostname=192.168.244.128
    
    ###修改完配置文件后别忘了开启服务,并设置成自启动
    [root@agent1 ~]# systemctl start zabbix-agent.service
    [root@agent1 ~]# systemctl enable zabbix-agent.service
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 关闭防火墙和selinux

    测试环境可以这么做,方便server与agent通信

    [root@agent1 ~]# setenforce 0
    [root@agent1 ~]# systemctl stop firewalld
    
    • 1
    • 2

    监控

    至此,我们的server和两台agent都已经部署完毕了,我们在server端的web监控添加一些监控项来对agent1和agent2来进行监控

    我们先将agent1、agent2添加到监控主机中

    配置——>主机——>创建主机

    图片

    图片

    图片

    添加完监控主机后我们可以添加一下监控项对其进行监控

    监控项——>(左上角)创建监控项

    图片

    图片

    添加完后我们可以看到agent1、agent2监控项数量有了新增

    图片

    别忘了链接至模板,否则获取不到zabbix agent状态,并且图标为灰色,而在zabbix-server端使用zabbix_get可以正常获取到数据。在正常情况下应为绿色或红色

    图片

    点击添加

    图片

    我们还可以对监控项添加图形界面

    点击名称——>图形——>创建图形

    图片

    图片

    图片

    添加完毕后我们在上方菜单栏:监测——>图形——>选择监控主机

    图片

    就能看到了

    自定义监控项

    除了server给出的监控项模板,我们还可以自定义监控项,从而实现更加个性化的设置

    我们自定义监控项来监控agent1上的磁盘每秒IO数

    首先在agent1上查看磁盘sda每秒IO数:tps

    图片

    我们通过grep和awk工具过滤出我们想要的数据

    [root@agent1 ~]# iostat | grep sda | awk '{print $2}'
    2.13
    
    • 1
    • 2

    然后添加自定义监控项配置文件

    [root@agent1 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_io.conf
    #sda_io为自定义监控项名字,逗号后面为得出数据的语句
    UserParameter=sda_io,iostat | grep sda | awk '{print $2}'
    
    [root@agent1 ~]# systemctl restart zabbix-agent
    
    • 1
    • 2
    • 3
    • 4
    • 5

    我们可以先在server端进行验证,需要安装zabbix-get工具

    [root@server ~]# yum install zabbix-get.x86_64 -y
    [root@server ~]# zabbix_get -s 192.168.244.128 -k sda_io
    1.93
    #-s:指定agent ip地址 
    #-k:指定监控项名字
    
    • 1
    • 2
    • 3
    • 4
    • 5

    验证没问题,我们在web页面添加监控项并添加图形界面

    图片

    图片

    添加完图形之后我们观察一下

    图片

    zabbix-proxy部署

    在一些分布式环境中,一台zabbix-server可能要监控许多agent,这会导致zabbix-server压力过大,容易出现资源紧张的情况

    zabbix-proxy 可以代替 zabbix-server 收集性能和可用性数据,然后把数据汇报给 zabbix-server,在一定程度上分担了zabbix-server 的压力。

    zabbix-proxy使用场景:

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

    图片

    如上图所示,我们在192.168.244.129这台机器上去配置zabbix-proxy,然后代替zabbix-server去监控zabbix-agent1

    proxy相关软件安装

    下载zabbix-proxy和数据库

    [root@proxy1 ~]# yum install zabbix-proxy-mysql -y
    
    [root@proxy1 ~]# yum install mariadb-server -y
    
    • 1
    • 2
    • 3

    数据库初始化配置

    [root@proxy1 ~]# systemctl start mariadb
    [root@proxy1 ~]# systemctl enable mariadb
    [root@proxy1 ~]# mysql -uroot -p
    Enter password: #按回车即可
    
    #创建数据库zabbix_proxy,并设置为utf-8编码
    MariaDB [(none)]> create database zabbix_proxy character set utf8 collate
    utf8_bin;
    
    #创建用户并设置密码
    MariaDB [(none)]> create user zabbix_proxy@localhost identified by '123456';
    
    #为用户授权
    MariaDB [(none)]> grant all privileges on zabbix_proxy.* to
    zabbix_proxy@localhost;
    
    #刷新权限
    MariaDB [(none)]> flush privileges;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    数据库配置好之后我们导入表

    [root@proxy1 ~]# zcat /usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uzabbix_proxy -p zabbix_proxy
    Enter password: 
    #密码是123456
    
    • 1
    • 2
    • 3

    导入之后我们验证一下

    [root@proxy1 ~]# mysql -uzabbix_proxy -p zabbix_proxy
    Enter password: 
    
    MariaDB [zabbix_proxy]> show tables;
    
    • 1
    • 2
    • 3
    • 4

    图片

    可以看到导入成功了!

    proxy配置

    我们接下来修改proxy1的配置文件,让它能够与zabbix-server连接起来

    先备份配置文件,又因为配置文件里有很多注释和空行,我们可以先使用grep过滤掉

    [root@proxy1 ~]# cp /etc/zabbix/zabbix_proxy.conf /etc/zabbix/zabbix_proxy.conf.bak
    
    [root@proxy1 ~]# grep -Ev "^$|#" /etc/zabbix/zabbix_proxy.conf > /etc/zabbix/1.conf
    [root@proxy1 ~]# mv /etc/zabbix/1.conf /etc/zabbix/zabbix_proxy.conf
    
    • 1
    • 2
    • 3
    • 4
    [root@proxy1 ~]# vim /etc/zabbix/zabbix_proxy.conf
    #zabbix server服务器的地址或主机名,主动模式只能写一个IP,被动可以写多个IP
    Server=192.168.244.141 
    #代理服务器名称,需要与zabbix server添加代理时候的proxy name是一致
    Hostname=192.168.244.129
    #允许zabbix server执行远程命令
    EnableRemoteCommands=1 
    LogFile=/var/log/zabbix/zabbix_proxy.log
    LogFileSize=0
    PidFile=/var/run/zabbix/zabbix_proxy.pid
    #数据库服务器地址
    DBHost=localhost
    #使用的数据库名称
    DBName=zabbix_proxy
    #连接数据库的用户名称
    DBUser=zabbix_proxy
    #数据库用户密码
    DBPassword=123456
    
    [root@proxy1 ~]# systemctl restart zabbix-proxy
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    agent端配置

    我们先在zabbix-agent1上修改下配置文件

    同理,先备份配置文件再去除注释和空行

    [root@agent1 ~]# cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf.bak
    
    [root@agent1 ~]# grep -Ev "^$|#" /etc/zabbix/zabbix_agentd.conf >  /etc/zabbix/1.conf
    
    [root@agent1 ~]# mv /etc/zabbix/1.conf /etc/zabbix/zabbix_agentd.conf
    
    • 1
    • 2
    • 3
    • 4
    • 5
    [root@agent1 ~]# vim /etc/zabbix/zabbix_agentd.conf
    PidFile=/var/run/zabbix/zabbix_agentd.pid
    LogFile=/var/log/zabbix/zabbix_agentd.log
    LogFileSize=0
    Server=192.168.244.129
    ServerActive=192.168.244.129
    Hostname=192.168.244.128
    Include=/etc/zabbix/zabbix_agentd.d/*.conf
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    配置好之后我们在server的web界面进行代理程序添加

    图片

    点击右上角的“创建代理”

    图片

    创建完后我们点开proxy配置看一下有没有问题

    图片

    我们修改下agent1的配置,添加监控代理程序

    图片

    之后我们看一下,zabbix的可用性变成绿色,则说明成功啦

    图片

  • 相关阅读:
    机器学习中的数学基础(一)
    SharedPreferences存储
    简易的安卓天气app(二)——适配器、每小时数据展示
    商业打假系列之第一百之--无聊的制度和管理流程真的可以扔进垃圾桶-顺便分析十几个无用的Unity游戏自检项目
    floyd 算法模板详解(适合新手)
    想要精通算法和SQL的成长之路 - N皇后问题
    分享Arduino环境下加速下载 第三方库或芯片包
    【HTML专栏2】VSCode的使用(新建HTML文件)
    闭包的详细认识与实例
    拒绝加班:巧用前端电子表格中构建公式树
  • 原文地址:https://blog.csdn.net/s_alted/article/details/126024174