zabbix详解(三)

zabbix网络发现

网络发现有什么用?比如小军有100台服务器,不想一台台主机去添加,这时就可以使用网络发现功能自动添加了,前提条件是所有服务器都已经安装了agent或snmp,Server端就可以扫描配置好的ip段,自动添加host,自动给host link 模板、自动添加到主机组里等。网络发现功能让我们能更快速的部署zabbix、简化zabbix管理,并且在经常变动的环境里面也不需要花太多的精力。

zabbix网络发现基于如下信息

  • ip范围
  • 可用的外部服务(FTP,SSH,WEB,POP3,IMAP,TCP)
  • 来自zabbixagent的信息
  • 来自snmp agent的信息

网络发现由两个阶段组成:discovery和actions

(1)discovery

zabbix 定期扫描网络发现规则中的ip范围,每个规则中定义了一组需要检测的服务,在这些ip范围内一一扫描,每次检测到service和host,都会生成一个discovery事件,事件如下:

时间 条件
serviceup zabbix检测到可用服务
servicedown zabbix无法检测到service
hostup 某个ip上至少有一个服务是up状态
hostdown 所有服务都无响应
servicediscovered 一个服务首次被发现或者在维护后从新归队
servicelost 服务在up之后又丢失了
hostdiscovered 一个host首次被发现或者在维护后从新归队
hostlost  一个host在up之后又丢失了


(2)Actions

zabbix所有action都是基于发现事件,例如:

  • 发送通知
  • 添加/移除主机
  • 启用/禁用主机
  • 添加主机到组
  • 从组中移除主机
  • 主机link模板/unlink模板
  • 执行远程脚本命令

创建主机主机名的定义

discovery 发现主机事件产生之后,将会执行action添加主机等操作。首先server端通过ip番解析主机名(如果失败了,不会重新尝试),如果解析成功了,那么zabbix将会使用这个主机名,否则直接使用ip地址。如果主机名同名呢?比如都叫ngx-server,那么第一台主机名会定义为ngx-server,第二台为ngx-server_2,第三台为ngx-server_3,以此类推。

创建主机主机接口的添加

主机接口添加规则如下:

服务检测-例如成功检测到一个SNMP服务,那么创建snmp接口

如果主机同时对agent和snmp请求作出响应,那么会同时创建这两种接口

通过哪个接口发现主机,哪个接口就作为默认接口,其余作为附加接口

如果一开始只响应agent的检测,那么它只会创建agent接口。如果后面响应了snmp检测,那么它又会增加snmp接口

(3)配置案例

先配置一个discovery rules , Configuration -> Discovery-> creatediscovery rule

然后再添加对应的action,Configuration -> Actions (右上角的Event source 选择 Discovery)-> create action

除了添加主机,还可以link Template等操作

zabbix自动注册

网络发现是好用,但它要不断的扫描特定网段,所产生的流量,耗费的资源也是很大的。自动注册可以解决这个问题,server不用再扫描特定网段,只需设置好规则,等待特定网段的主机自动向server注册即可。

配置过程:

(1)定义agent端,编辑/etc/zabbix/zabbix-agent.conf

serverActive=192.168.61.154主动模式服务器地址设置

Server=192.168.61.154被动模式服务器地址设置

Hostname=a4.com主机名

ListenIP=192.168.61.140设置为本机某特定IP;

ListenPort=默认即可

HostMetadata=a4.com 唯一标识一个主机

HostMetadataItem=itemkey,

一般使用system.uname。在客户端用一个itemkey 获得一个数据,发送给服务器端注册,一般就用system.uname获得主机名

(2)server端配置

Configuration -> Actions (右上角的Eventsource 选择Auto registration) -> create action

其余设置和网络发现的action设置一样

zabbix LLD: Low Level Discovery

(1)客户端配置

编写获取需要的数据的脚本放/etc/zabbix-agent.d/scripts下(该路径为自定义)

自定义参数文件到/etc/zabbix/zabbix_agentd.conf.d/ ,调用上面的脚本

(2)服务器端配置

新建模板template-> (该模板下)新建应用application(这个可以不建,主要用于把下面的item分类) -> (该应用下)添加 item prototype (用于为发现的项目自动添加需要的监控项目,key里使用定义好的变量名,方便对应多种不同的名字)-> 创建trigger(关联刚才定义的trigger),还可以继续添加graph图形

zabbix proxynode

当server与agent在不同的机房,并且有大量主机的时候,在各机房配置一个proxy是最好的选择。因为不用proxy直接配置各主机直接访问异地机房server的话,需要开发多条防火墙规则,也带来了安全隐患,配置了proxy的话,只需要开放一台proxy主机即可。

node与proxy的区别:

node是一个完整的节点,可以完全独立配置各item、action等和运行,自身有数据库保留收到到的agent数据。proxy只是负责收集agent的数据发送给server端,并且不保留数据

一般千台以下的机器,配置proxy即可,使用方便。

下面简单介绍proxy的安装与配置

(1)zabbix proxy的安装(需要先配置epel源)

yum -y zabbix-proxy

zabbix-proxy-mysql

zabbix-agent (一般proxy也是要被服务器端监控的,所以也会安装agent)

zabbix-sender

zabbix

(2)创建mysql数据库(mysql的安装请参考站内文章)

createdatabase zabbix_proxy character set utf8;

grantall on zabbix_proxy.* to [email protected]‘172.16.%.%‘ identified by ‘zbxpass‘;

flushprivileges;

(3)导入数据

mysqlzabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-2.4.5/create/schema.sql

(rpm -qlzabbix-proxy-mysql可找到这个sql位置)

(4)配置zabbix-proxy

vim/etc/zabbix/zabbix_proxy.conf

server=172.16.100.6指明服务器地址

Hostname=proxy1

DBHost=172.16.100.7本机

DBName=zabbix_proxy

DBUser=zbxuser

DBPassword=zbxpass

HeartbeatFrequency=60  每隔60秒探测一下服务器的活动状态

ConfigFrequency=3600  每隔3600秒到服务器端拉取相关配置

DataSenderFrequency=1 每隔1秒就发送一次数据到服务器端,发送数据后会自动删除的,所以本地保存数据量很少

(5)启动服务

servicezabbix-proxy start

ss-tnl 查看服务是否正常运行

(6)服务器端的配置

administrator-> proxies -> create proxy

proxymode 的选择,Active 为主动拉取配置,Passive 为服务器端把配置推送过去

创建好之后,以后新创建Host页面Monitoredby proxy 里就可以选择刚才的proxy了

时间: 2024-08-24 06:10:23

zabbix详解(三)的相关文章

zabbix详解:(三)添加邮件告警配置

大家应该心理有底,做监控不是只为了看服务器状态,虽然那也是监控的目的之一,但绝对不是全部,大家做监控的目的肯定是想预警,甚至是出问题就告警,毫无疑问zabbix也是支持告警规则的,现在来介绍传统的添加邮件告警,后面还会介绍微信告警. 添加邮件告警配置: 关于zabbix邮件告警的原理,其实是调用脚本,然后脚本通过邮件功能来向外发邮件,后面介绍的微信告警也是通过脚本调用微信接口来做的. 所以,告警的关键,就是脚本了,其实zabbix邮件告警这个功能很多文章有写,也有很多脚本可以参考,只是大部分版本

spark2.x由浅入深深到底系列六之RDD java api详解三

学习任何spark知识点之前请先正确理解spark,可以参考:正确理解spark 本文详细介绍了spark key-value类型的rdd java api 一.key-value类型的RDD的创建方式 1.sparkContext.parallelizePairs JavaPairRDD<String, Integer> javaPairRDD =         sc.parallelizePairs(Arrays.asList(new Tuple2("test", 3

php学习之道:WSDL详解(三)

通过声明方式定义绑定(binding)属性 如果你在服务中采用SOAP binding,你可以使用JAX-WS来指定一定数量的属性binding.这些属性指定对应你在WSDL中指定的属性.某些设置,比如参数类型,可以约束你实现的方法,这些设置也影响声明的效用. @SOAPBinding声明,定义在javax.jws.soap.SOAPBinding接口中.它提供发布时的SOAP Binding细节.如果@SOAPBinding没有被指定,则用缺省的doc/literal SOAPBinding.

UINavigationController详解三(转)ToolBar

原文出自:http://blog.csdn.net/totogo2010/article/details/7682641,特别感谢. 1.显示Toolbar  在RootViewController.m的- (void)viewDidLoad方法中添加代码,这样Toobar就显示出来了. [cpp] view plaincopy [self.navigationController  setToolbarHidden:NO animated:YES]; 2.在ToolBar上添加UIBarBut

logback -- 配置详解 -- 三 -- &lt;encoder&gt;

附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appender> logback -- 配置详解 -- 三 -- <encoder> logback -- 配置详解 -- 四 -- <filter> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Android基础入门教程——8.3.6 Paint API之—— Xfermode与PorterDuff详解(三)

Android基础入门教程--8.3.6 Paint API之-- Xfermode与PorterDuff详解(三) 标签(空格分隔): Android基础入门教程 本节引言: 上一节,我们学习了Xfermode中的三儿子:PorterDuffXfermode构造方法中的为一个参数: PorterDuff.Mode,我们在观看了16种图片混排模式后,又自己写代码来验证了一下文档中 18种不同的混排模式,18种是新增了ADD和OVERLAY两种模式!当然,仅仅验证知道是不够的, 本节我们来写个例子

LinearLayout详解三:LayoutInflater创建View过程分析

项目人力资源管理主要有以下几个过程: 编制人力资源管理计划 组建项目团队 建设项目团队 项目团队管理 编制人力资源管理计划 根据什么来编? 直观点就是你要干什么事?干这些事有哪些制约? 这个说起来好像和没说一样,但就我自己做的一些项目来说,有以下困难: 1> 项目前期需求是不具体不明确的 这样直接导致你做项目计划时WBS也是不明确的,进而你细化不了活动,自然你也没法 明确活动需要什么样的人. 这个时候怎么办? 就我个人而言,有2种员工很喜欢: 1> 数学思维强的, 注意不是会做高数题,是指给你

WebSocket安卓客户端实现详解(三)–服务端主动通知

WebSocket安卓客户端实现详解(三)–服务端主动通知 本篇依旧是接着上一篇继续扩展,还没看过之前博客的小伙伴,这里附上前几篇地址 WebSocket安卓客户端实现详解(一)–连接建立与重连 WebSocket安卓客户端实现详解(二)–客户端发送请求 终于是最后一篇啦,有点激动\ ( ≧▽≦ ) /啦啦啦, 服务端主动通知 热身完毕,我们先回顾下第一篇中讲到的服务端主动通知的流程 根据notify中事件类型找到对应的处理类,处理对应逻辑. 然后用eventbus通知对应的ui界面更新. 如果

Spring4.0MVC学习资料,ApplicationContext中的方法详解(三)

做为java开源的一部分,spring框架一直排在老大的位置.Spring4.0 是 Spring 推出的一个重大版本升级,进一步加强了 Spring 作为 Java 领域第一开源平台的地位.Spring4.0 引入了众多 Java 开发者期盼的新特性,如泛型依赖注入.SpEL.校验及格式化框架.Rest风格的 WEB 编程模型等.这些新功能实用性强.易用性高,可大幅降低 JavaEE 开发的难度,同时有效提升应用开发的优雅性.为了方便开发,Spring的ApplicationContext类,

View绘制详解(三),扒一扒View的测量过程

所有东西都是难者不会,会者不难,Android开发中有很多小伙伴觉得自定义View和事件分发或者Binder机制等是难点,其实不然,如果静下心来花点时间把这几个技术点都研究一遍,你会发现其实这些东西都很简单.OK,废话不多说,今天我们就来看看View的测量.View的测量纷繁复杂,不过如果能够做到提纲挈领,其实也不难.那么今天,我们就来扒一扒View的测量.本文主要涉及如下知识点: 1.View的测量 2.在父容器中对View进行测量 3.LinearLayout测量举例 4.最根上容器测量 如