摘要:前一篇(我搞zabbix的那两天(1))我介绍了Zabbix的安装部署以及遇到的问题,这一篇将介绍zabbix 使用及短信等告警实现!!!php
我搞zabbix的那两天(1)html
我搞zabbix的那两天(2)java
浏览器中输入地址:http://ip地址/zabbix,输入用户名和密码登录后,进入监控软件主界面,登录后的界面以下图:react
能够看到初始化的界面是英文的,为方便使用,需添加中文支持web
修改文件 /var/www/html/zabbix/include/locales.inc.phpapache
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => false),浏览器
修改为服务器
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => true),运维
修改文件 /var/www/html/zabbix/include/defines.inc.phppost
define('ZBX_FONT_NAME', 'DejaVuSans');
修改为
define('ZBX_FONT_NAME', 'STKAITI');
重启zbbix服务端,重启apache
登录页面设置相应用户的默认语言Administrator---->Users(此处要保证显示的是用户,不然显示的都是用户组)
点击用户名进入用户信息编辑,默认语言选择简体中文,而后点击update更新
如上图,zabbix主要有5个一级菜单栏:监控中、资产记录、报表、配置、管理每一个主菜单栏下面又多个二级菜单.
监控中:主要是对监控对象的一些相关展现,好比说对web应用的展现。
资产记录:资产管理,相似于公司里的资产管理,好比一个硬件设备,这里可能会标识设备的名称,操做系统,mac地址,资产编号等
报表:这里主要展现了zabbix服务的状态,好比主机数,报警数。还有就是展现了一些设备的可用性报表等相关信息。
配置:这里主要用来对服务器的配置,好比建立主机,创建立模版,建立报警,建立流量图片等相关应用基本的配置主要经过这里来实现。
管理:这里也是用了对服务器进行配置,可配置相比,这里的配置主要实现对zabbix自己的一些相关的配置工做,好比登陆zabbix的用户的建立等工做主要经过这里来配置。
菜单路径:配置->主机,
点击右上角建立主机按钮,在界面中填写必要信息,主机名称和IP地址,组群那里选择预约义的“Linux servers”。
添加后主机要添加监控项,菜单路径:配置->主机,点击主机名称,再点击“监控项”
后点击“建立监控项”,咱们这里用尝试监控CPU idle比例,这个配置的关键是键值,具体键值的定义请参考zabbix联机文档,数据更新时间(数据采集频率),历史数据保留时长等信息使用缺省值。
建立完监控项,就能够针对监控项建图表了,比较简单:
而后能够点击“预览”查看效果:
定义触发器:(咱们定义一个系统CPU IDLE大于80%就发出警告信息的触发器
而后定义动做,规定触发器触发时执行的动做,即报警时要经过什么方式发送给运维人员
菜单路径:配置 >动做,建立动做,咱们这里建立一个名为“sendSMS”,即经过短信发送报警信息给运维人员(后面2.3 短信告警配置介绍)
而后再切换到“操做”,定义默认发送信息
短信报警的设置和邮件报警的思路是相似的,主要划分为一下几个过程:
1.编写短信报警的脚本;
2.在zabbix的操做界面添加短信报警媒介;
3.对指定的用户添加短信报警方式;
4.设置动做什么时候进行短信报警;
设置短信脚本
接下来咱们来服务器配置短信脚本sendSMS.sh,进入到/usr/local/zabbix/alertscripts(为何是进入到这个目录,由于咱们zabbix_server.conf配置的AlertScriptsPath目录是这个),建立sendSMS.sh
注意:
一、打包jar方式
/lutong/zabbix-3.2.0/sms/SMS.jar包含的是短信告警的代码,该工程包括了第三方的jar包,我是用Eclipse将引用了第三方jar包的Java项目打包成可执行jar,这里不作多说明,请查看附件
二、执行jar包的环境
这里是直接用到java命令执行jar包的方式,因此确保你的电脑是是安装了java环境,像上图服务器java环境是安装在/usr/lcoal/java/jdk1.7.0_76/bin/java
三、两个变量说明
MOBILE_NUMBER=$1 # 手机号码
MESSAGE_UTF8=$2 # 短信内容
这两个变量即咱们在页面报警媒介中填写的手机号码,最后是经过执行jar包中的方法时传进去了,来看下咱们的jar中的打包前main方法
上面咱们提到了配置动做用到了短信告警,接下来咱们来介绍短信告警实现。
须要先设置“报警媒介类型“,
在菜单”管理”→“报警媒介类型”里面建立报警媒介类型,我这里名称填写“福富短信”,类型选择“脚本”,脚本名称填写“sendSMS.sh”(sendSMS.sh就是咱们在服务器建立的短信告警脚本)
对指定的用户添加短信报警方式
在菜单”管理”→“用户”里面建立用户Admin,名称填写“福富短信”,类型选择“脚本”
切换到“报警媒介”,依次选择报警类型(即咱们上面填写建立的福富短信)、收件人手机号码,以及什么时候触发短信发送
测试,咱们经过使其中一台服务器CPU偏高,当即就收到了短信
附件:
方案:利用Eclipse自带的Export功能打包可执行的jar
步骤1:准备主清单文件 “MANIFEST.MF”,
因为是打包引用了第三方jar包的Java项目,故须要自定义配置文件MANIFEST.MF,在该项目下创建文件MANIFEST.MF,内容以下:
Manifest-Version: 1.0
Class-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”的错误;
三、Main-Class后面是类的全地址,好比你的主文件是KillCheatFans.java,文件里打包为package com.main; 那么这里就写com.main.KillCheatFans,
不要加.java后缀,主文件地址写错将会出现“找不到或没法加载主类”的错误;
四、写完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一个目录中。
学习本就是一个不断模仿、练习、再到最后面本身原创的过程。
虽然可能历来不能写出超越网上通类型同主题博文,但为何仍是要写?
于本身而言,博文主要是本身总结。假设本身有观众,毕竟讲是最好的学(见下图)。于读者而言,笔者能在这个过程get到知识点,那就是共赢了。
固然因为笔者能力有限,或许文中存在描述不正确,欢迎指正、补充!
感谢您的阅读。若是本文对您有用,那么请点赞鼓励。