ITPub博客

首页 > 数据库 > 数据库开发技术 > 企业级监控方案——zabbix!(下)

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

原创 数据库开发技术 作者:咸鱼运维杂谈 时间:2022-07-19 23:40:00 0 删除 编辑
zabbix-agent部署


    在上一篇文章《企业级监控方案——zabbix!(上)》中我们已经介绍了zabbix的一些基础知识和架构图,我们还部署了zabbix-server,接下来我们要在两台虚拟机上部署我们的zabbix-agent服务

 在正式开始之前我们再来复习下zabbix有哪些组件

zabbix-server:整个监控体系中最核心的组件,它负责接收客户端发送的报告信息,所有配置、 统计数据及操作数据都由它组织。


Database:所有配置信息和zabbix收集到的数据都存储在数据库中。


zabbix-proxy:用于分布式系统中,可以代理zabbix-server的功能,减轻server的压力。


zabbix-agent:客户端软件,装在被监控主机上,用于采集监控数据,并把采集到的的数据发送给proxy或者server。


web界面:web界面可以让用户随时随地都能够轻松的访问到zabbix,是zabbix-server的一部分,通常跟server运行在同一台物理机上。



1.部署


下面则是本次实验的架构


server:192.168.244.141
agent1:192.168.244.128
agent2:192.168.244.129



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


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


  • 安装zabbix-agent(rpm包与zabbix-server一致)

[root@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



  • 修改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


  • 关闭防火墙和selinux

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

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



2.监控


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


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


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












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


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






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




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




点击添加





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


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








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




就能看到了


3.自定义监控项


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


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


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




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


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



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


[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



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


[root@server ~]# yum install zabbix-get.x86_64 -y[root@server ~]# zabbix_get -s 192.168.244.128 -k sda_io1.93#-s:指定agent ip地址 #-k:指定监控项名字


验证没问题,我们在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


1.proxy相关软件安装


下载zabbix-proxy和数据库

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



数据库初始化配置

[root@proxy1 ~]# systemctl start mariadb[root@proxy1 ~]# systemctl enable mariadb[root@proxy1 ~]# mysql -uroot -pEnter password: #按回车即可
#创建数据库zabbix_proxy,并设置为utf-8编码MariaDB [(none)]> create database zabbix_proxy character set utf8 collateutf8_bin;
#创建用户并设置密码MariaDB [(none)]> create user zabbix_proxy@localhost identified by '123456';
#为用户授权MariaDB [(none)]> grant all privileges on zabbix_proxy.* tozabbix_proxy@localhost;
#刷新权限MariaDB [(none)]> flush privileges;


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

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


导入之后我们验证一下

root@proxy1 ~]# mysql -uzabbix_proxy -p zabbix_proxyEnter password: 
MariaDB [zabbix_proxy]> show tables;




可以看到导入成功了!


2.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


[root@proxy1 ~]# vim /etc/zabbix/zabbix_proxy.conf#zabbix server服务器的地址或主机名,主动模式只能写一个IP,被动可以写多个IPServer=192.168.244.141 #代理服务器名称,需要与zabbix server添加代理时候的proxy name是一致Hostname=192.168.244.129#允许zabbix server执行远程命令EnableRemoteCommands=1 LogFile=/var/log/zabbix/zabbix_proxy.logLogFileSize=0PidFile=/var/run/zabbix/zabbix_proxy.pid#数据库服务器地址DBHost=localhost#使用的数据库名称DBName=zabbix_proxy#连接数据库的用户名称DBUser=zabbix_proxy#数据库用户密码DBPassword=123456
[root@proxy1 ~]# systemctl restart zabbix-proxy



3.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


[root@agent1 ~]# vim /etc/zabbix/zabbix_agentd.confPidFile=/var/run/zabbix/zabbix_agentd.pidLogFile=/var/log/zabbix/zabbix_agentd.logLogFileSize=0Server=192.168.244.129ServerActive=192.168.244.129Hostname=192.168.244.128Include=/etc/zabbix/zabbix_agentd.d/*.conf


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



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




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




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




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




总结
今天给大家展示了zabbix的一个简单架构部署,让大家了解到zabbix的server端和agent端是怎么部署配置的,以及zabbix的两种监控方式——主动式和被动式

还介绍了zabbix-proxy组件,一般在分布式场景中比较常用到,主要是为了减轻server的压力。

后面还演示了zabbix-proxy是如何安装部署以及如何通过配置来监控到agent端的



扫码
关注


原文作者:咸鱼运维杂谈;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
最新的技术文章首先发布在微信公众号:咸鱼运维杂谈 擅长Linux系统维护、开源软件维护、自动化运维等领域,博客主要偏向于学习笔记及经历分享

注册时间:2021-05-29

  • 博文量
    193
  • 访问量
    84244