首页 > 数据库 > 数据库开发技术 > 企业级监控方案——zabbix!(下)
zabbix-server:整个监控体系中最核心的组件,它负责接收客户端发送的报告信息,所有配置、 统计数据及操作数据都由它组织。
Database:所有配置信息和zabbix收集到的数据都存储在数据库中。
zabbix-proxy:用于分布式系统中,可以代理zabbix-server的功能,减轻server的压力。
zabbix-agent:客户端软件,装在被监控主机上,用于采集监控数据,并把采集到的的数据发送给proxy或者server。
web界面:web界面可以让用户随时随地都能够轻松的访问到zabbix,是zabbix-server的一部分,通常跟server运行在同一台物理机上。

1.部署
下面则是本次实验的架构

我们现在来开始部署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-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 ~]# 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=1LogFile=/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的可用性变成绿色,则说明成功啦


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