zabbix从放弃到入门(10):动作详解

  • A+
所属分类:zabbix  运维技术

这篇文章将会介绍zabbix中的"动作",也就是所谓的"Actions"。

在本博客中,"zabbix"是一个系列文章,如果你还不明白zabbix的相关概念,强烈建议从zabbix系列文章中的第一篇开始阅读,否则你可能无法理解这篇文章中涉及到的部分名词。

zabbix系列文章列表直达链接:zabbix入门系列

zabbix从放弃到入门(10):动作详解

在前文中,我们一直拿"养鸡场"的场景作为学习zabbix的示例,这次还是老套路,仍然拿"养鸡场"作为话题的切入点。

为了防止养鸡场的温度低于30度,我们在养鸡场中放置了一台监控设备,这台监控设备能够每隔1分钟检测一次养鸡场温度,如果最近一次检测到养鸡场的温度低于30度,则会亮起红灯,当养鸡场管理员看到红灯亮起,就会先打开养鸡场的暖气,等待一段时间,如果养鸡场的温度恢复到30度以上,则红灯熄灭,一切恢复正常,如果打开暖气后一段时间以内,养鸡场温度仍然无法恢复到30度以上,那么工作人员则需要采取进一步措施了,比如说报告老板。

 

在前文中我们已经解释过,"养鸡场温度"可以理解为zabbix的监控项,30度可以理解为养鸡场温度的阈值,"养鸡场温度 < 30" 可以理解为zabbix中的触发器,并且,我们已经在前文中定义了对应的监控项、触发器等,但是,我们并没有刻意的触发对应的触发器,因为我们还没有定义对应的"动作(Actions)",也就是说,即使触发器被触发,产生了相应的事件,我们也无法收到"报警信息",而"动作"是什么呢?刚才描述的"养鸡场"场景中的"打开暖气"、"报告老板"等一系列措施,都可以理解为zabbix中的动作,说的再通俗一点,"动作"就是在监控项出现异常时,zabbix应该采取哪些措施,是向管理员发送邮件呢,还是执行对应的脚本呢?这些就是所谓的"动作"。

 

在zabbix中,动作是可以"步进"的,什么意思呢?仍然以养鸡场为例,当温度低于30度,养鸡场工作人员会先打开暖气,等待2分钟,如果两分钟以后,养鸡场温度仍然低于三十度,工作人员则需要将情况报告给老板,那么,养鸡场工作人员采取的动作一共有两步,第一步:打开暖气。第二步:报告老板。这就是所谓的"步进",一个动作可以由多个步骤组成,如果前面的步骤无法解决问题,则按照顺序执行后面的步骤,当然,一个动作也可以只有一步。

 

那么现在,我们一起来看看怎样在zabbix中创建一个动作,此处仍然使用我们之前的测试环境,前文中我们已经创建了用于监控磁盘使用率的监控项"RootPartitionUsed",以及对应的触发器"RootPartitionUsedTrigger",现在,我们需要创建一个动作,与监控项和触发器结合起来一起使用, 打开zabbix控制台,点击 "配置" ----"动作",点击下图中的"创建动作"按钮,即可创建动作,我们也可以选择对应动作的事件源,由于我们并没有详细解释过"事件",所以此处保持默认即可,点击创建动作。

zabbix从放弃到入门(10):动作详解

 

可以看到,动作由三个部分组成:"动作"、"条件"、"操作",我们一个一个聊。

zabbix从放弃到入门(10):动作详解

 

在名称中填写动作的名字,由于当前动作是为了监控项"RootPartitionUsed"而准备的,所以,我们命名当前动作为"RootPartitionUsedActions"。

zabbix从放弃到入门(10):动作详解

上图中的"默认接收人"想要表达的意思并不正确,我们一起看一下"英文原版界面",如下图

zabbix从放弃到入门(10):动作详解

可以看到,英文界面中,此处想要表达的意思为"默认主题",由于翻译的问题,此处显示为"默认接收人",容易引起误解。

"默认主题"中的内容看着有没有很熟悉,没错,{TRIGGER.STATUS}和{TRIGGER.NAME}都是zabbix中的"宏",我们在设置脚本类型的"报警媒介"时已经使用过它们,此处我们再次解释一遍,我们可以把zabbix的"宏"理解成zabbix中的变量,不同的宏代表的含义也不一样,不过通过宏的名字,一般都能猜出宏的含义,比如{TRIGGER.STATUS}就表示对应触发器的状态,{TRIGGER.NAME}就表示对应触发器的名称,所以此处,"默认主题"的内容由对应的触发器状态和触发器名称组成。宏需要用大括号括起,并且宏的名字必须由大写字母组成,如果想要了解更多的宏都代表什么含义,可以参考官方zabbix3.0在线手册,地址如下。

https://www.zabbix.com/documentation/3.0/manual/appendix/macros/supported_by_location

 

默认信息也是由一些宏拼凑而成的,每个宏的含义可以参看上述连接。

zabbix从放弃到入门(10):动作详解

 

点击动作的"条件"选项卡,可以看到如下界面,我们可以通过这个配置界面,设定当前动作在什么情况下被执行。

zabbix从放弃到入门(10):动作详解

 

比如,我们设置当前动作的目的就是在磁盘使用率超出阈值时,给管理员发送邮件,那么,我们就需要将当前动作与"磁盘使用率监控项对应的触发器"联系在一起,并且需要指明"磁盘使用率监控项对应的触发器"符合哪种条件时,当前动作会被执行,如下图,系统默认为我们设置了一些条件,这些条件可能不符合我们的实际需求,我们可以移除它们,如下图,点击"移除"

zabbix从放弃到入门(10):动作详解

 

我们可以根据实际情况,定义自己需要的触发条件。

zabbix从放弃到入门(10):动作详解

 

那么现在,我们就来定义当前动作需要与哪个触发器进行关联,首先,选择触发器。

zabbix从放弃到入门(10):动作详解

 

点击下图中的选择按钮。

zabbix从放弃到入门(10):动作详解

 

由于创建当前动作的目的就是为了在磁盘使用率超出阈值时报警,所以,此处选择前文中创建的触发器"RootPartitionUsedTrigger",将它们关联在一起。

zabbix从放弃到入门(10):动作详解

 

点击上图中的触发器后,界面如下图,点击下图中的"添加",即可将"RootPartitionUsedTrigger"这个触发器与当前动作关联在一起。

zabbix从放弃到入门(10):动作详解

 

虽然我们将"RootPartitionUsedTrigger"这个触发器与当前动作关联在了一起,但是这还不够,我们还需要指明,当前触发器处于哪种状态时,执行当前动作,所以,我们需要继续添加条件。

zabbix从放弃到入门(10):动作详解

 

点击下图中的"触发器值"。

zabbix从放弃到入门(10):动作详解

 

选择"触发器值"后,选择对应的值,此处选择"问题",选择问题后,点击"添加",以添加新条件。

zabbix从放弃到入门(10):动作详解

 

可以看到,经过配置后,条件如下,如下配置表示,当触发器"RootPartitionUsedTrigger"的值为"问题"时,当前动作将会被执行,换句话说,当触发器"RootPartitionUsedTrigger"的状态变为"Problem"时,当前动作则会被执行,在下图中的计算方式中,显示为"A and B",表示A条件与B条件同时满足时,整体条件才被满足,动作才会被执行,我们也可以根据自己的实际情况,调整多个条件之间的逻辑关系。

zabbix从放弃到入门(10):动作详解

 

配置如上后,点击"操作"选项卡,还记得我们之前说的"步进"吗,动作可以只有一步,也可以由多个步骤组成一个动作,此处就是配置动作的这些步骤的。

zabbix从放弃到入门(10):动作详解

 

我们可以定义动作的"步进"时长,比如我们定义每一步的时长为60秒,那么如果动作包含3个步骤,执行完整个动作则需要180秒,点击下图中的"新的",为动作创建一个新的步骤。

zabbix从放弃到入门(10):动作详解

 
 

步骤"1 -1"表示当前步骤为第一步,第一步的持续时长为1步的默认时长。

zabbix从放弃到入门(10):动作详解

如果有多个步骤,每个步骤此处的设置可以类似如下示例:

第一步:"1-1"  ,表示第一步持续时长为1步的时长。

第二步:"2-2"  ,表示第二步持续时长为1步的时长。

第三步:"3-4"  ,表示第三步持续时长为2步的时长,换句话说,第三大步需要由3、4两个小步组成。

第四步:"5-7"  ,表示第四步持续时长为3步的时长,换句话说,第四大步需要有5、6、7三个小步组成。

也可以不使用默认的步骤时长,我们也可以在"步骤持续时间"中定义当前这一步的持续时长。

 

当前步骤是为了发送消息还是为了执行对应的命令呢?如果当前动作由多个步骤组成,我们可以在前面的步骤中执行命令,如果执行对应命令后还是无法使监控项回归正常,则在后面的步骤中发送消息,就好像养鸡场的工作人员一样,如果打开暖气无法解决问题,则需要报告老板,此处,我们选择"发送消息"进行演示。

zabbix从放弃到入门(10):动作详解

 

我们需要设置将消息发送给谁,可以发送给选定的用户,也可以发送给用户组中的用户,此处点击下图中的"添加"。

zabbix从放弃到入门(10):动作详解

 

假设我们要将信息发送给Admin用户,点击对应用户。

zabbix从放弃到入门(10):动作详解

 

还记得前一篇文章中我们创建的"报警媒介"吗,此处选择通过哪些报警信道发送报警信息,此处,我们选择上次创建的"MailScript媒介"。

zabbix从放弃到入门(10):动作详解

 

配置如下后,点击下图中的"添加"

zabbix从放弃到入门(10):动作详解

 

点击上图中的"添加"以后,则可以为当前动作添加一个步骤。

zabbix从放弃到入门(10):动作详解

 

我们再来回顾一下当前这个动作的所有配置。

zabbix从放弃到入门(10):动作详解

zabbix从放弃到入门(10):动作详解

zabbix从放弃到入门(10):动作详解

如果三个标签页中的内容都已经正确设置,那么点击任意一个标签页中的"添加"按钮即可创建当前动作。

点击"添加"按钮后,动作已经被成功添加。

zabbix从放弃到入门(10):动作详解

 
 

好了,动作应该怎样创建,我们已经解释完了,在下一篇文章中,我们会将之前的知识点串联起来,看看监控项异常时,能不能像我们想象的那样收到报警信息。

weinxin
我的微信公众号
关注"实用运维笔记"微信公众号,当博客中有新文章时,可第一时间得知哦~
朱双印

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:11   其中:访客  7   博主  4

    • avatar 奥巴马赛克 0

      大神。3.4版本也没有触发器值这个项,而且整个动作选项中的”动作“”条件“”操作“变成了”动作“”操作“”恢复操作“”确认操作“
      关于3.4版本的”动作“能不能来个新的教程

        • avatar 朱双印 Admin

          @奥巴马赛克 客官,3.4版本没有用过,我也不了解,加油~~

          • avatar 三鲜卷 0

            @奥巴马赛克 3.4不需要设置触发器值这一项了,哪怕动作页面不写触发条件,只要后面操作页面和恢复操作页面设置好,邮件就会发送了

              • avatar 放任自由 1

                @三鲜卷 如果不设置触发值就是针对所有的触发器都会报警了。
                比如有一个需求是:指定某一个触发器发生问题时,就给某指定邮箱账号发邮件。其他触发器发生问题,就给管理员邮箱发邮件。
                请问该如何操作呢?

            • avatar 不会功夫的熊猫 1

              大神,我想问一下,我在第10篇中创建action,找不到“触发器值”这一项,这怎么破?

                • avatar 朱双印 Admin

                  @不会功夫的熊猫 zabbix版本?是不是比较新的,界面有所变化

                  • avatar jackor 2

                    @不会功夫的熊猫 我也是zabbix3.2没有发现触发器值,不知如何来触发动作执行,邮箱配置好了,test通过了,就是在邮箱没有报警邮件 :sad:

                  • avatar yong 3

                    步长,这个东西平时用的多吗?看了文章还是不太理解,

                      • avatar 朱双印 Admin

                        @yong 如果你用的云服务器,一般自带监控,可以用自带的,如果是内网的虚拟服务器,或者很多需要维护的机器,zabbix用到应该挺多的,看具体需求吧。

                      • avatar 小菜鸡 0

                        大神想问下.可不可以让zabbix的服务端监控客户端的自定义的端口(如3306-3309).如果发现开启该端口,则自动关联mysql的模板.百度了都是自动关联主机……..感谢