摘要:前一篇( 我搞 zabbix 的那两天(1) )我介绍了 Zabbix 的安装部署以及遇到的问题,这一篇将介绍 zabbix 使用及短信等告警实现!!!
菜单路径:配置 ->
主机,点击右上角创建主机按钮,在界面中填写必要信息,主机名称和 IP
地址,组群那里选择预定义的 "Linux servers"
。添加后主机要添加监控项,菜单路径:配置 ->
主机,点击主机名称,再点击 "监控项"后点击 "创建监控项",我们这里用尝试监控 CPU idle
比例,这个配置的关键是键值,具体键值的定义请参考 zabbix
联机文档,数据更新时间(数据采集频率),历史数据保留时长等信息使用缺省值。
创建完监控项,就可以针对监控项建图表了,比较简单:
然后可以点击 "预览" 查看效果:
定义触发器:(我们定义一个系统 CPU IDLE
大于 80% 就发出警告信息的触发器然后定义动作,规定触发器触发时执行的动作,即报警时要通过什么方式发送给运维人员
菜单路径:配置 > 动作,创建动作,我们这里创建一个名为 "sendSMS",即通过短信发送报警信息给运维人员(后面 2.3 短信告警配置介绍)
然后再切换到 "操作",定义默认发送信息
编写短信报警的脚本;
2.在
zabbix的操作界面添加短信报警媒介;
3.对指定的用户添加短信报警方式;
4.设置动作何时进行短信报警;
接下来我们来服务器配置短信脚本 sendSMS.sh,进入到 / usr/local/zabbix/alertscripts(为什么是进入到这个目录,因为我们 zabbix_server.conf 配置的 AlertScriptsPath 目录是这个), 创建 sendSMS.sh
注意:1、打包 jar 方式
/lutong/zabbix-3.2.0/sms/SMS.jar 包含的是短信告警的代码,该工程包括了第三方的 jar 包,我是用 Eclipse 将引用了第三方 jar 包的 Java 项目打包成可执行 jar,这里不做多说明,请查看附件
2、执行 jar 包的环境
这里是直接用到 java 命令执行 jar 包的方式,所以确保你的电脑是是安装了 java 环境,像上图服务器 java 环境是安装在 / usr/lcoal/java/jdk1.7.0_76/bin/java
3、两个变量说明
MOBILE_NUMBER=$1 # 手机号码
MESSAGE_UTF8=$2 #短信内容
这两个变量即我们在页面报警媒介中填写的手机号码,最后是通过执行 jar 包中的方法时传进去了,来看下我们的 jar 中的打包前 main 方法
上面我们提到了配置动作用到了短信告警,接下来我们来介绍短信告警实现。
需要先设置 "报警媒介类型",
在菜单 "管理"→"报警媒介类型" 里面创建报警媒介类型,我这里名称填写 "福富短信",类型选择 "脚本",脚本名称填写 "sendSMS.sh"(sendSMS.sh 就是我们在服务器创建的短信告警脚本)
切换到 "报警媒介",依次选择报警类型(即我们上面填写创建的福富短信)、收件人手机号码,以及何时触发短信发送
测试,我们通过使其中一台服务器 CPU
偏高,立即就收到了短信附件:方案:利用 Eclipse 自带的 Export 功能打包可执行的 jar
步骤 1
:准备主清单文件 "MANIFEST.MF"
,由于是打包引用了第三方 jar
包的 Java
项目,故需要自定义配置文件 MANIFEST.MF
,在该项目下建立文件 MANIFEST.MF
,内容如下:Manifest-Version: 1.0Class-Path: SMS.justTest第一行是 MAINIFEST
的版本,第二行 Class-Path
就指定了外来 jar
包的位置,第三行指定我们要执行的 MAIN java
文件。这里要注意几点:1、Class-Path: 和 Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid header field;
2、假设我们的项目打包后为 SMS.jar,那么按照上面的定义,SMS.jar 和其用到的 jar 包 open189-sign-1.0.jar 应该在在同一个目录下。
否则将会出现 "Exception in thread"main"java.lang.NoClassDefFoundError" 的错误;
3、Main-Class 后面是类的全地址,比如你的主文件是 KillCheatFans.java,文件里打包为 package com.main; 那么这里就写 com.main.KillCheatFans,
不要加. java 后缀,主文件地址写错将会出现 "找不到或无法加载主类" 的错误;
4、写完 Main-Class 后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的 jar 包才能找到你的主 class 去运行,
否则将会出现 "jar 中没有主清单属性" 的错误。
步骤 2:右击 Java 工程选择 Export—> 选择 JAR file—>Next
步骤 3
:选择要打包的文件,不需要的文件不必打包,减小打包后的 jar
文件大小,并进行选项配置如下这里有几个选项:* Export generated class files and resources 表示只导出生成的. class 文件和其他资源文件
* Export all output folders for checked projects 表示导出选中项目的所有文件夹
* Export java source file and resouces 表示导出的 jar 包中将包含你的源代码 *.java,如果你不想泄漏源代码,那么就不要选这项了
* Export refactorings for checked projects 把一些重构的信息文件也包含进去
步骤 4
:选择我们在第一步中自定义的配置文件路径,这一步很重要,不能采用默认选项这里解释一下配置项:* Generate the manifest file:是系统帮我们自动生成 MANIFEST.MF 文件,如果你的项目没有引用其他 18class-path,那可以选择这一项。
* Use existing mainfest from workspace:这是可以选择我们自定义的. MF 文件,格式如上所写,引用了第三方包时选用。
* Seal content:要封装整个 jar 或者指定的包 packet。
* Main class:这里可以选择你的程序入口,将来打包出来的 jar 就是你这个入口类的执行结果。
最后 Finish
,即生成了我们要的 jar
文件。在命令行下运行命令 java -jar
你的 jar
文件名称,比如上面的短信脚本执行如下:如果在 jar
中有一些 System.out.prinln
语句(如上执行结果),运行后不想在控制台输出而是保存在文件中方便以后查看,可以用一下命令: /usr/local/java/jdk1.7.0_76/bin/java -jar /lutong/zabbix-3.2.0/sms/SMS.jar "$MOBILE_NUMBER" "$MESSAGE_UTF8" > log.txt(这时命令行窗口不会有任何输出)
输出信息会被打印到 log.txt
中,当然 log.txt
自动生成,并位于和 SMS .jar
一个目录中。来源: https://www.cnblogs.com/zishengY/p/8204364.html