我搞zabbix的那两天(2)
摘要:前一篇(我搞zabbix的那两天(1))我介绍了Zabbix的安装部署以及遇到的问题,这一篇将介绍zabbix 使用及短信等告警实现!!!
Zabbix主界面及汉化方法介绍
1.1 初始化主界面
浏览器中输入地址:http://ip地址/zabbix,输入用户名和密码登陆后,进入监控软件主界面,登陆后的界面如下图:

可以看到初始化的界面是英文的,为方便使用,需添加中文支持
1.2 添加中文支持
修改文件 /var/www/html/zabbix/include/locales.inc.php
'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.php
define('ZBX_FONT_NAME', 'DejaVuSans');
修改成
define('ZBX_FONT_NAME', 'STKAITI');
重启zbbix服务端,重启apache
登陆页面设置相应用户的默认语言Administrator---->Users(此处要保证显示的是用户,否则显示的都是用户组)

点击用户名进入用户信息编辑,默认语言选择简体中文,然后点击update更新

1.3 中文主界面

二、Zabbix 的基本配置
2.1 菜单介绍
如上图,zabbix主要有5个一级菜单栏:监控中、资产记录、报表、配置、管理每个主菜单栏下面又多个二级菜单.
监控中:主要是对监控对象的一些相关展示,比如说对web应用的展示。
资产记录:资产管理,类似于公司里的资产管理,比如一个硬件设备,这里可能会标识设备的名称,操作系统,mac地址,资产编号等
报表:这里主要展示了zabbix服务的状态,比如主机数,报警数。还有就是展示了一些设备的可用性报表等相关信息。
配置:这里主要用来对服务器的配置,比如创建主机,创创建模版,创建报警,创建流量图片等相关应用基本的配置主要通过这里来实现。
管理:这里也是用了对服务器进行配置,可配置相比,这里的配置主要实现对zabbix本身的一些相关的配置工作,比如登录zabbix的用户的创建等工作主要通过这里来配置。
2.2 添加监控主机
2.2.1 配置主机
菜单路径:配置->主机,
点击右上角创建主机按钮,在界面中填写必要信息,主机名称和IP地址,组群那里选择预定义的“Linux servers”。
2.2.2 增加监控项和图表

添加后主机要添加监控项,菜单路径:配置->主机,点击主机名称,再点击“监控项”

后点击“创建监控项”,我们这里用尝试监控CPU idle比例,这个配置的关键是键值,具体键值的定义请参考zabbix联机文档,数据更新时间(数据采集频率),历史数据保留时长等信息使用缺省值。

创建完监控项,就可以针对监控项建图表了,比较简单:
然后可以点击“预览”查看效果:

2.2.3 定义触发器
定义触发器:(我们定义一个系统CPU IDLE大于80%就发出警告信息的触发器

2.2.4 定义动作
然后定义动作,规定触发器触发时执行的动作,即报警时要通过什么方式发送给运维人员
菜单路径:配置 >动作,创建动作,我们这里创建一个名为“sendSMS”,即通过短信发送报警信息给运维人员(后面2.3 短信告警配置介绍)

然后再切换到“操作”,定义默认发送信息

2.3 短信告警配置
短信报警的设置和邮件报警的思路是类似的,主要划分为一下几个过程:
1.编写短信报警的脚本;
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就是我们在服务器创建的短信告警脚本)

对指定的用户添加短信报警方式
在菜单”管理”→“用户”里面创建用户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”的错误;
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一个目录中。
学习本就是一个不断模仿、练习、再到最后面自己原创的过程。
虽然可能从来不能写出超越网上通类型同主题博文,但为什么还是要写?
于自己而言,博文主要是自己总结。假设自己有观众,毕竟讲是最好的学(见下图)。于读者而言,笔者能在这个过程get到知识点,那就是双赢了。
当然由于笔者能力有限,或许文中存在描述不正确,欢迎指正、补充!
感谢您的阅读。如果本文对您有用,那么请点赞鼓励。
我搞zabbix的那两天(2)的更多相关文章
- 我搞zabbix的那两天
摘要:在生产环境上对服务器进行网络参数(比如CPU.内存等)的监控是很必要的,比如当服务器网络参数如内存不够用.磁盘空间快要占满时及时通知运维人员进行处理,保证服务器系统的安全.而zabbix就是这么 ...
- 我搞zabbix的那两天(1)
摘要:在生产环境上对服务器进行网络参数(比如CPU.内存等)的监控是很必要的,比如当服务器网络参数如内存不够用.磁盘空间快要占满时及时通知运维人员进行处理,保证服务器系统的安全.而zabbix就是这么 ...
- zabbix 使用问题两个--中文乱码,以及监控ESXi下的虚拟机
1. 中文乱码 最开始中文显现 长方形不显示文字.解决办法: c:\windows\fonts 下面复制 楷体的字体(字体随意看自己喜欢) 文件名一般为: simkai.ttf 2.将simkai.t ...
- 转 zabbix 优化方法 以及 后台数据库查询方法 两则
############sample 1 https://blog.51cto.com/sfzhang88/1558254 如何从Zabbix数据库中获取监控数据 sfzhang关注6人评论40627 ...
- ss命令结合zabbix对socket做监控
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 最近天冷了,socket也出问题了,一直没有做监控,现在就把监控加起来,目前我们使用的有z ...
- python调用zabbix接口实现Action配置
要写这篇博客其实我的内心是纠结的,老实说,我对zabbix的了解实在不多.但新公司的需求不容置疑,当我顶着有两个头大的脑袋懵懵转入运维领域时,面前摆着两百多组.上千台机器等着写入zabbix监控的需求 ...
- Zabbix简介及安装
前言 未经监控就上线的系统,就是裸奔,耍流氓. 监控对我们来说太重要了,监控工具也有很多,像,Cacti,Nagios,Ganglia,Zabbix等等,今天我们要介绍的是Zabbix,它的功能很强大 ...
- zabbix 3.2 高可用实现方式二-pacemaker+corosync实现zabbix高可用集群
一.pacemaker 是什么 1.pacemaker 简单说明 2.pacemaker 由来 二.pacemaker 特点 三.pacemaker 内部结构 1.群集组件说明: 2.功能概述 四.c ...
- 分布式系统监视zabbix讲解三之用户和用户组--技术流ken
概述 Zabbix 中的所有用户都通过 Web 前端去访问 Zabbix 应用程序.并为每个用户分配唯一的登陆名和密码. 所有用户的密码都被加密并储存于 Zabbix 数据库中.用户不能使用其用户名和 ...
随机推荐
- javascript设计模式——单例模式
前面的话 单例模式是指保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式是一种常用的模式,有一些对象往往只需要一个,比如线程池.全局缓存.浏览器中的window对象等.在javaScri ...
- UWP 五星好评
var pfn = Package.Current.Id.FamilyName; await Launcher.LaunchUriAsync(new Uri("ms-windows-stor ...
- NGUI_PopupList
八.PopuList下拉菜单 1.使用Populist的规律: (1).有一系列选项需要玩家做出选择,这些选项是有限多个的. (2).这些选项玩家必须选择一个,也只能选择一个. (3).这些选项如果全 ...
- replace深入
var b = 0; var arr = []; str = str.replace(/J/g,function(){ var args = arguments; b++; arr.push(args ...
- Java---String总结
JAVA中的String类,不管是日常开发,或者是面试,都是常用的类之一,所以写在这里也为为了总结,方便以后的查阅与复习. 特点: 1.Java中所有的类中,String是使用最多的一个类 2.是 ...
- 转自知乎-wifi破解
上点python有意思的代码. 环境准备 python2.7 pywifi模块 字典 清除系统中的任何wifi连接记录 导入模块 这里用的模块就这三个 pywifi的_wifiutil_linux.p ...
- chrome解决http自动跳转https问题
1.地址栏输入: chrome://net-internals/#hsts 2.找到底部Delete domain security policies一栏,输入想处理的域名,点击delete. 3.搞 ...
- ABP入门系列(6)——定义导航菜单
ABP入门系列目录--学习Abp框架之实操演练 完成了增删改查以及页面展示,这一节我们来为任务清单添加[导航菜单]. 在以往的项目中,大家可能会手动在layout页面中添加一个a标签来新增导航菜单,这 ...
- spring mvc获取绝对路径的几种方法
1.首先如果是在一个controller方法中,则很简单,直接用下面语句. @RequestMapping("categoryHome") public ModelAndView ...
- 「mysql优化专题」这大概是一篇最好的mysql优化入门文章(1)
优化,一直是面试最常问的一个问题.因为从优化的角度,优化的思路,完全可以看出一个人的技术积累.那么,关于系统优化,假设这么个场景,用户反映系统太卡(其实就是高并发),那么我们怎么优化? 如果请求过多, ...
