Zabbix监控基础搭建以及在zbbix的web界面添加agent被监控端_zbagent 配置-程序员宅基地

技术标签: 网络  前端  服务器  

关于zabbix

zabbix(音同 za:bix)是一个基于WEB界面的提供分布式系统监视以及网络 监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供 灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。
Zabbix服务器能够直接监控到同一网络中的设备,如果其他网络的设备也需要被监控,那还需要一台Zabbix代理服务器。
在这里插入图片描述
组件介绍
zabbix agent
由agent采集数据,报告给负责监控的中心主机,中心主机也就是master/agent模型中的master,负责监控的中心主机被称为zabbix server,zabbix server将从agent端接收到的信息存储于zabbix的数据库中,我们把zabbix的数据库端称为zabbix database, 如果管理员需要查看各种监控信息,则需要zabbix的GUI,zabbix的GUI是一种Web GUI,我们称之为zabbix web,zabbix web是使用php编写的,所以,如果想要使用zabbix web展示相关监控信息,需要依赖LAMP环境,不管是zabbix server ,或是zabbix web,他们都需要连接到zabbix database获取相关数据

当监控规模变得庞大时,我们可能有成千上万台设备需要监控,这时我们是否需要部署多套zabbix系统进行监控呢?
zabbix支持分布式监控,我们可以把成千上万台的被监控对象分成不同的区域,每个区域中设置一台代理主机,区域内的每个被监控对象的信息被agent采集,提交给代理主机,在这个区域内,代理主机的作用就好比zabbix server,我们称这些代理主机为zabbix proxy,zabbix proxy再将收集到的信息统一提交给真正的zabbix server处理,这样,zabbix proxy分摊了zabbix server的压力,同时,我们还能够通过统一的监控入口,监控所有的对象

下游设备信息–给proxy–定时反馈给server
proxy–自带数据库–数据备份

在这里插入图片描述

zabbix的工作模式

了解完了zabbix的几个核心组件,我们再来聊聊zabbix的工作模式
我们知道,agent端会将采集完的数据主动发送给server端,这种模式我们称之为主动模式,即对于agent端来说是主动的,即对于agent端来说是主动的serverActive
其实,agent端也可以不主动发送数据,而是等待server过来拉取数据,这种模式我们称之为被动模式
你一定已经明白,不管是主动模式还是被动模式,都是对于agent端来说的,而且,主动模式与被动模式可以同时存在,并不冲突
管理员可以在agent端使用一个名为zabbix_sender的工具,测试是否能够向server端发送数据
管理员可以在server端使用一个名为zabbix_get的工具,测试是否能够从agent端拉取数据
zabbix就是通过使用的php程序就采集的数据通过Web GUI直观的展示给用户

zabbix 通讯方式

通过zabbix能够监控哪些硬件资源

理论上来说,只要是与我们的业务有关的硬件资源,都应该被监控,比如:主机、交换机、路由器、UPS等等

但是,监控它们的前提是能与它们进行通讯,由于硬件的不同,导致我们无法使用统一的方法去监控他们

这个时候,就需要监控程序有一定的通用性,或者说,监控程序需要能够与多种硬件设备通讯,才能满足我们的监控需求

举个例子:如果被监控的对象是一台安装了linux操作系统的服务器
那么我们可以通过ssh或者telnet这种远程工具与被监控对象建立起通讯的通道
可是如果被监控的对象是一台安装了其他操作系统的服务器呢,更甚之,被监控的对象并不是服务器.而只是一台交换机或者路由器呢,所以,zabbix如果想要能够全面的监控这些对象,则需要能够通过各种方法与它们进行通讯

方式 	详解
agent 	通过专用的代理程序进行监控,与常见的master/agent模型类似,如果被监控对象支持对应的agent,推荐首选这种方式
----------------------------------------------------------
ssh/telnet 	通过远程控制协议进行通讯,比如ssh或者telnet
-----------------------------------------------------------
SNMP 	通过SNMP协议与被监控对象进行通讯,SNMP协议的全称为Simple Network Management Protocol ,被译为 “简单网络管理协议”,通常来说,我们无法在路由器、交换机这种硬件上安装agent,但是这些硬件往
往都支持SNMP协议,SNMP是一种比较久远的、通行的协议,大部分网络设备都支持这种协议,其实SNMP协议的工作方式也可以理解为master/agent的工作方式,只不过是在这些设备中内置了SNMP的agent而已,所以,大部分网络设备都支持这种协议
-------------------------------------------------------------
IPMI 	通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压,温度,风扇状态,电源状态等
------------------------------------------------------------
JMX 	通过JMX进行监控,JMX(Java Management Extensions,即Java管理扩展),监控JVM虚拟机时,JAVa性能。使用这种方法也是非常不错的选择
-------------------------------------------------------------

通过内建了snmp的agent端
只要启动snmp功能就能监控

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述触发器–>事件–>动作
在这里插入图片描述

在这里插入图片描述

zabbix监控要素
1.必要组件
总管--zabbix-Server  用于下发请求的
麼摩---zabbix-agent 用于接收,收集,反馈
本子---zabbix-database  1.记录下游所有的数据(agent采集的)&本地的用户信息2.管理员帐号(授权  奴才看了脑袋不保阿)   充当数据库的用MYSQL  Oracle DB2 sqlite3 
画--zabbix-web  用于图形展示数据  apache | nginx
zabbix-web  

动态-架构-LAMP|LNMP   P=PHP 哪儿呢  zabbix本身就是一堆php脚本程序  他的前端页面就是通过php开发出来的


2.可选组件   

被监控端:终端设备  PC laptop server  可以安装软件---zabbix-agent

如果被监控端是思科|华为的路由 可以安装agent吗?    NO  ---可以:SNMP简单网络管理协议--认证-默认使用SAMPv2"团体名"

ssh 连接server 22端口
网络路由  通过telnet 
但是都是负责连接的 不能帮你采集数据
SNMP简单网络管理协议:但凡能上网(具备网卡)都支持  不管是路由交换,PC,server
只不过功能较少  可以监听CPU,内存的使用率  监听网卡流量(进出)默认使用V2版本 适用于局域网  通过团体名去验证的  不是局域网放一个路由交换就去监控了 而是相互验证 都叫这个名字 监控网络设备

----------------------------------------

还有个地方叫冷宫
一般运行程序-tomcat,resin,weblogic  特点:都是java中间件  都是用来运行java服务的
  
运行java--JRE-jav工具--需要JVM虚拟机--需要内存

运行这种程序一般不能用agent,SNMP监控 而是使用java单独组件叫zabbix-java-gateway

-----------------------------------------
还会有物件--物理参数:CPU温度 风扇转速 电源电压
桌椅-山水--需要监听吗?需要
  钱--IDC的CPU温度 风扇转速 电源电压
     阿里温度 湿度 一定是要监控的 明确范围的  阿里 杭州-水下IDC
通过IPMI--用于监控物理指标
空调--小米机器--都能监控(需要令买设备)

企业级分布式监控zabbix实战——Zabbix监控平台搭建过程

##现有监控方案:zabbix|prometheus

(1)创建三个快照
在这里插入图片描述在这里插入图片描述在这里插入图片描述

三台rhel7.3版本的虚拟机 主机名 IP 服务名称(角色) server1 172.25.26.1
zabbix-server,zabbix-web,mariadb-server监控方 server2 172.25.26.2
zabbix-agent(1)被监控方 server3 172.25.26.3 zabbix-agent(2)被监控方

【1】安装及配置 zabbix

【server1】搭建 server 端

(1): cd zabbix/ --> ls

cd 4.0

yum install -y zabbix-server-mysql-4.0.5-1.el7.x86_64.rpm zabbix-web-4.0.5-1.el7.noarch.rpm zabbix-web-mysql-4.0.5-1.el7.noarch.rpm zabbix-agent-4.0.5-1.el7.x86_64.rpm php-mbstring-5.4.16-42.el7.x86_64.rpm fping-3.10-1.el7.x86_64.rpm iksemel-1.4-2.el7.centos.x86_64.rpm
php-bcmath-5.4.16-42.el7.x86_64.rpm -y

从真机拷贝zabbix包到server1
在这里插入图片描述在这里插入图片描述在这里插入图片描述

(2)#安装数据库

[root@server1~]#yum install -y mariadb-server

在这里插入图片描述

[root@server1~]#systemctlstartmariadb
(3)安全初始化数据库
[root@server1mysql]#mysql_secure_installation

在这里插入图片描述#

##初始化zabbix数据库

##按照官网配置https://www.zabbix.com/cn/download

(4)创建数据库并且授权
MariaDB[(none)]>create database zabbix character setutf8 collateutf8_bin;    ##字符,校验字符
MariaDB[(none)]>grant all privileges on zabbix.* to zabbix@localhost identified by'redhat';

在这里插入图片描述在这里插入图片描述

    zabbix-agent.:zabbix客户端,用来收集客户端各种参数
	zabbix-get:zabbix的一个工具,用来检查是否可以获取服务器信息(一般服务端要安装)
	zabbix-java-gateway:用于监控JMX应用的程序,它把收集到的信息发送给zabbix-server(这个看需求安装,我暂时没装)
	zabbix-proxy:zabbix proxy可以代替zabbix server检索客户端的数据,然后把数据汇报给zabbix server,并且在一定程度上分担了zabbix server的压力。zabbix proxy可以非常简便的实现了集中式、分布式监控。
	zabbix-release:会生成一个zabbix的yum源,可以直接下载相关软件包。
	zabbix-sender:用于发送数据给server或者proxy。
	zabbix-web:zabbix要使用web界面,这个包是用来处理Apache和PHP,mysql等之间的依赖关系。
	zabbix-web-mysql:这个是zabbix前段支持mysql的
	zabbix-web-japanese:支持日语

(5)导入初始架构和数据
    导入zabbix数据库并且查看

cd /usr/share/doc/zabbix-server-mysql-4.0.5/
zcat create.sql.gz | mysql -p zabbix     
zcat=gzip + cat 把这个数据库导入zabbix这个数据库中


[root@server1~]#zcat /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz|mysql-uzabbix-pzabbix

在这里插入图片描述(6)再次查看数据库可以看到zabbix数据库有很多表格以及数据
导入后登陆查看有没有zabbix这个数据库,以及其中的表
在这里插入图片描述在这里插入图片描述
(7)编辑zabbix的配置文件,修改zabbix数据库密码(此密码是在数据库对zabbix用户进行授权时候的密码)以及时区
修改后开启服务,并设置开机自启

##配置zabbix-server
vim/etc/zabbix/zabbix_server.conf
124DBPassword=redhat

在这里插入图片描述在这里插入图片描述

#启动
systemctl start zabbix-server
systemctl start zabbix-agent  ##安装客户端并开启服务,对自己也监控一下

在这里插入图片描述
修改 php 配置

vim /etc/httpd/conf.d/zabbix.conf
20: php_value date.timezone Asia/Shanghai
systemctl start httpd

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

(9):测试: 浏览器访问
http://172.25.78.1/zabbix   开始在zabbix的web页面进行设置

在这里插入图片描述在这里插入图片描述

##Confiure DB connection
Password:redhat
##其他选默认
##Zabbix server details
Name:Zabbix server ##自己起名字,其他默认
#以上的配置信息都在 /etc/zabbix/web/zabbix.conf.php 文件中

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

8:登录 zabbix

Username : Admin
Password : zabbix

在这里插入图片描述

1>设置中文点击人头,选择中文,提交

在这里插入图片描述在这里插入图片描述

 1):配置监控

点击 配置–>主机 当前只有一个 server
ZBX也是绿色,因为安装了zabbix-agent,安装之后才会变绿,才可以对自己进行相关监控。

在这里插入图片描述这个时候基本的zabbix就搭建成功拉

在zabbix的web界面中添加agent被监控端(手动添加+自动发现+自动注册)

首先在server2和server3上面下载并配置zabbix-agent服务

只有server2和server3上都安装了zabbix-agent这个服务之后server1才可以对server2和server3进行监控
因为监控是由zabbix-agent采集数据发送给zabbix-server的
注意做好server1、server2和server3之间的本地解析,在三台主机上面都做
vim /etc/hosts
172.25.2.1 server1
172.25.2.2 server2
172.25.2.3 server3

2>再开一台虚拟机做 agent

【2】【server2】做 agent

1:rpm -ivh zabbix-agent-4.0.5-1.el7.x86_64.rpm

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
添加agent主机有三种方式:

手动添加
自动发现
自动注册

(1)手动添加

手动创建主机
【配置】->【主机】->【创建主机】

(1)自己添加 server2 ,点击右上角[创建主机]主机之间要有解析,给 server2 分配一个群组点击添加

在这里插入图片描述【添加主机群组】

需要注意 zabbix被监控端 必须属于一个“组”
因为授权都是根据组进行授权的 必须统筹规划

【填写server2主机的相关信息】 主机名称server2 群组linux servers agent代理程序的接口 172.25.63.2
在这里插入图片描述在这里插入图片描述在这里插入图片描述 2):添加监控模板

点击选择–> 右上角过滤模板为操作系统 然后点击选择–>再点击添加(这里不点添加是无效的) --> 更新此时看到此主机监控可用性栏里ZBX 选项不生效,因为没有配置 zabbix-agent
【添加监控的模板】哪个操作系统----->  更新

在这里插入图片描述在这里插入图片描述不点添加不会生效
在这里插入图片描述在这里插入图片描述
3):配置 zabbix-agent

vim /etc/zabbix/zabbix_agentd.conf
98: Server=172.25.78.1    #server1的ip地址,对于server2来说被动
139: ServerActive=172.25.78.1     #主动让server1发现,对于server2来说主动
150: Hostname=server2 ## #自己的主机名,一定做好解析
##Server 和 ServerActive 分别为被动模式和主动模式,前者为 server 端自己来拿数据,后者为 agent 端主动发送数据


systemctl start zabbix-agent

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述手动添加成功
在这里插入图片描述手动添加完成后,server2的ZBX还为灰色,得过30s才能变为绿色
我们可以重启zabbix-agent服务,目的是让server2去被动被server1发现。(server2的配置文件里的serveractive项)
默认时被动的

手动添加完毕

【server1】
cat /var/log/zabbix/zabbix_agentd.log
##查看 zabbix 启动日志
#在 server1 上查看 zabbix-server 端日志 看到最后检查成功

在这里插入图片描述在这里插入图片描述

2.zabbix 监控配置自动发现**

之前我们是将server2手动添加在监控平台上

先删除之前手动添加的server2,然后我们再让监控平台去自动发现server2

1>先删除刚才添加的 server2

在这里插入图片描述在这里插入图片描述在这里插入图片描述

2>点击配置 --> 动作 --> 右上角选择自动发现 --> 点击激活

在这里插入图片描述在这里插入图片描述

3>更改动作配置:点击 Auto discovery. Linux servers.

在这里插入图片描述

4>点击自动发现配置发现 IP 范围并启用,设置更新间隔为 60s,不然太慢

在这里插入图片描述在这里插入图片描述在这里插入图片描述

5>回到主机页面,看到 server2 已经加入群组
可以看到已经自动发现server2了

在这里插入图片描述重启服务,可以加快发现的速度systemctl restart zabbix-agent

自动发现完毕
注释:自动发现通常是server端主动去探测某个ip范围内的被监控端,适用于大批量的监控,而且监控模板都一样

小知识:在创建监控项类型是zabbix客户端 表示默认是被动

3:【server3】配置自动注册

  • 自动注册是被监控端主动去找server端,看自己想要被监控什么,去匹配什么样的模板,适合于单台主机
    首先禁用server2刚才的动作和自动发现

     1>再启动一台 server3 来做自动注册
    
     rpm -ivh zabbix-agent-4.0.5-1.el7.x86_64.rpm
    

在这里插入图片描述在这里插入图片描述在这里插入图片描述

	vim /etc/zabbix/zabbix_agentd.conf
	98 Server=172.25.78.1
	139 ServerActive=172.25.78.1
	150 Hostname=server3
	systemctl start zabbix-agent

在这里插入图片描述在这里插入图片描述在这里插入图片描述

2>创建自动注册动作

先禁用之前的自动发现规则并删除自动发现添加的 server3
(如果没有自动将server3加入群组,则不需要做删除)

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
点击配置->动作->自动注册(右上角)->创建动作->写入名称(发现添加的时候,会出错,因为要定义操作)->操作->操作类型->添加主机->新的->添加到主机群组->选择:Linux servers->操作类型:与模版关联->选择:Template OS Linux->更新 刷新-> 点击主机可以看到有三个自动加入群组
在这里插入图片描述在这里插入图片描述
在这里插入图片描述操作->操作类型->添加主机->新的->添加到主机群组->选择:Linux servers->操作类型:与模版关联->选择:Template OS Linux->更新 刷新-> 点击主机可以看到有三个自动加入群组
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4>在 server3 上重启 zabbix-agent
systemctl restart zabbix-agent
##稍后可以看到 server3 又加入了群组

在这里插入图片描述

因为是自动注册,所以server3需要重新启动服务才可以
在这里插入图片描述自动注册完毕

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/asufeiya/article/details/103020675

智能推荐

c# 调用c++ lib静态库_c#调用lib-程序员宅基地

文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib

deepin/ubuntu安装苹方字体-程序员宅基地

文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang

html表单常见操作汇总_html表单的处理程序有那些-程序员宅基地

文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些

PHP设置谷歌验证器(Google Authenticator)实现操作二步验证_php otp 验证器-程序员宅基地

文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器

【Python】matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距-程序员宅基地

文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数

推荐文章

热门文章

相关标签