通过前面的文章,你已经可以快速地搭建一个报警系统,并能正常的收到报警邮件了。不过在很多企业级环境下,邮件发送服务器往往放在外网,而zabbix server放置在内网,在这种情况下,zabbix的报警信息又如何能传送给邮件发送服务器呢?
其实也很简单,方法也很多,这里给出一个我们在实际生产环境中的例子,大致的流程是:
具体做法如下:
#!/bin/bash CURRENT_TIME=`date ‘+%s‘` MAILPATH=/usr/local/zabbix/share/zabbix/alertscripts #step 1 make the mail file echo to=$1 >> $MAILPATH/$CURRENT_TIME.txt echo subject="$2" >> $MAILPATH/$CURRENT_TIME.txt echo content="$3" >> $MAILPATH/$CURRENT_TIME.txt #step 2 send the file scp $MAILPATH/$CURRENT_TIME.txt zabbix@192.9.199.13:/home/zabbix/mails/ #step 3 rm the file rm -f $MAILPATH/$CURRENT_TIME.txt
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 */1 * * * * nohup java -jar /home/zabbix/notificationParse.jar &
解析报警文件这块内容实现因人而异,就不再详述。
[原创] zabbix学习之旅六:如何解决zabbix server在内网,而邮件发送服务器在外网的问题
原文:http://www.cnblogs.com/hutao722/p/5177646.html