[原创] zabbix学习之旅六:如何解决zabbix server在内网,而邮件发送服务器在外网的问题
通过前面的文章,你已经可以快速地搭建一个报警系统,并能正常的收到报警邮件了。不过在很多企业级环境下,邮件发送服务器往往放在外网,而zabbix server放置在内网,在这种情况下,zabbix的报警信息又如何能传送给邮件发送服务器呢?
其实也很简单,方法也很多,这里给出一个我们在实际生产环境中的例子,大致的流程是:
- 请求网络组的同事将邮件发送服务器的22端口开放给内网的zabbix机器;
- 前面提到的server报警脚本需要做改造,将报警信息封装成一个时间戳文件;
- 利用scp命令将时间戳文件传送给邮件发送服务器,为避免登录密码,需要在server端生成免登录证书信息,并将公钥给邮件发送服务器;
- server发送完后删除时间戳文件;
- 邮件发送服务器专门开辟一个路径存放传送过来的时间戳文件;
- 邮件发送服务器上,用java或python等你熟悉的语言写一个小程序,可以解析时间戳文件,并调用Mutt进行邮件发送;
- 邮件发送服务器上,用crontab设置一个1分钟的定时调用,调用小程序处理时间戳文件。
具体做法如下:
- 改造notification.sh
#!/bin/bash CURRENT_TIME=`date '+%s'`
MAILPATH=/usr/local/zabbix/share/zabbix/alertscripts #step make the mail file
echo to=$ >> $MAILPATH/$CURRENT_TIME.txt
echo subject="$2" >> $MAILPATH/$CURRENT_TIME.txt
echo content="$3" >> $MAILPATH/$CURRENT_TIME.txt #step send the file
scp $MAILPATH/$CURRENT_TIME.txt zabbix@192.9.199.13:/home/zabbix/mails/ #step rm the file
rm -f $MAILPATH/$CURRENT_TIME.txt
- 配置ssh免登录,先在邮件发送服务器上执行如下动作
groupadd zabbix
useradd -g zabbix zabbix
su - zabbix
ssh-keygen
#安装提示一步步敲回车生成证书信息
cd ~/.ssh
touch authorized_keys
cat id_rsa.pub >> authorized_keys
同样的方法在zabbix server上执行一次,再将zabbix server的公钥信息拷贝至邮件发送服务器
scp ~/.ssh/id_rsa.pub zabbix@192.9.199.13:~/
#进入邮件发送服务器
ssh 192.9.199.13
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
至此,报警文件即可免登录发送至邮件发送服务器。
在邮件发送服务器设置定时调用
crontab -e
*/ * * * * nohup java -jar /home/zabbix/notificationParse.jar &
解析报警文件这块内容实现因人而异,就不再详述。
[原创] zabbix学习之旅六:如何解决zabbix server在内网,而邮件发送服务器在外网的问题的更多相关文章
- [原创] zabbix学习之旅二:yum安装
对于允许连接公网的环境下,显然通过yum安装是最为简单方便的,也是官网推荐的安装方式.通过这种方式安装,会将php.apache.zabbix本身都一并安装,解决了烦人的依赖包问题. 本文将介绍如 ...
- [原创] zabbix学习之旅一:源码安装
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存 ...
- [原创] zabbix学习之旅五:如何快速搭建一个报警系统
通过之前的文章,我们已搭建好zabbix server.agent和mail客户端,现在万事俱备,只差在server的界面中进行相应配置,即可快速搭建一个报警系统.总的来说,快速搭建一个报警系统的顺序 ...
- [原创] zabbix学习之旅四:mail客户端安装
相信大家使用zabbix的最主要目的就是当被监控机器发生故障时,能通过zabbix获得第一时间的报警提醒.zabbix常用的报警媒介有email,短信,jabber和脚本,这其中脚本类型最为灵活,尤其 ...
- zabbix学习(一)——LNMP环境搭建及zabbix安装
第一部分:LNMP环境搭建 一.环境说明: OS: centos7.6_x64nginx:nginx-1.16.0php: php-7.1.11mysql:mysql-5.6.44 zabbi ...
- [原创] zabbix学习之旅七:如何远程操作被监控机器
虽然我们已经创建了一个报警系统,但在实际场景中,运维人员从得到报警到实际解决问题有一定的时差,若业务系统没有做高可用,那业务不得不中断,对于某些要求严格的企业级环境,这是不可容忍的,那有没有方法能让z ...
- [原创] zabbix学习之旅三:agent安装
部署完zabbix server后,自然要部署zabbix agent.在官方描述中,agent是部署在被监控的机器上,用于采集CPU.内存.磁盘等统计信息,并上报给server用于进一步处理.age ...
- Spring学习之旅(六)--SpringMVC集成
对大多数 Java 开发来说,基于 web 的应用程序是我们主要的关注点. Spring 也提供了对于 web 的支持,基于 MVC 模式的 Spring MVC 能够帮助我们灵活和松耦合的完成 we ...
- 解决Windows Server 2012 在VMware ESXi中经常自动断网问题
最近一些开发人员反映他们使用的 Windows server2012 R2 虚拟机过段时间就远程连接不上了,ping也不通(已关闭防火墙),我们登录ESXi发现,Windows Server 的网络图 ...
随机推荐
- Linux常用命令英文全称与中文解释Linux系统
Linux常用命令英文全称与中文解释Linux系统(转) Linux常用命令英文全称与中文解释Linux系统 man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Pri ...
- C# 新特性 dynamic的使用及扩展
个人而言感觉C#的dynamic是一个特别实用的东西,为日常开发工作中的封装,数据传递等带来了很高的可扩展性. C#4.0中通过对数据类型后期绑定的支持,演化出了dynamic.任何直接声明为这种类型 ...
- 教你21天学会C++ (有图有真相)
这张图,是在一位有十多年开发经验的资深前辈博客里看到的,觉得很有趣,分享之~ 这位大神的博客是:http://coolshell.cn 理论是可行的,当你刚开始学习C++,到第21天的时候出门千万要小 ...
- list转换成DataTable
list转换成DataTable类如下: public static DataTable ToDataTable<T>(this IList<T> datas) { DataT ...
- .NET使用NPOI读取Word模板并替换关键字并下载
NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...
- [javascript|基本概念|Number]学习笔记
Number类型的值:整数/浮点数值 整数 十进制 e.g.: var intNum = 50; 八进制 (严格模式下无效,解析错误)字面值首位必须是0,之后的数字序列为0-7 e.g.: va ...
- 通过Javascript数组设计一个省市联动菜单
通过Javascript数组设计一个省市联动菜单 使用Option内置类来完成下拉选项的创建 2.使用定时器实现一个时钟程序 3.使用PHP+JSON完成语音验证码 网址:http://yuyin.b ...
- 使用Hint来优化执行计划
最近看主管优化了一个HINT相关的查询 借此机会学习下HINT 参考Notes: Note 129385 - Database hints in Open SQL http://www.stechno ...
- Base64加密
实际开发中可能需要使用到可解密的加密方式,例如客户端记住用户的密码,客户端不能记住明文密码,那就需要对明文密码进行加密,然后在表单提交之后先对密码进行解密,在进行MD5加密和数据库中的密码进行比较实现 ...
- jquery.validate.js
jquery.validate.js使用记录 首先到JQ官网下载搜索validate插件,下载相关源码,附上validate官网网址 https://jqueryvalidation.org/ 找到v ...