一:技术背景
是某市政府业务集群需要采用开源监控方案,并将触发的告警信息推送至公网,但是在政务云内无法访问外部
二:环境信息
1:一台机器处于互联网边界IP为223.22.X.X,可以访问外网也可以访问内部集群,安装nginx并已开启25端口
2:内部集群信息通过10.0.0.10:3000的grafana发出
三:内部集群设置
grafana打开邮箱推送设置
#我是用k8s启动的grafana,需要传入环境变量
- env:
- name: GF_SMTP_ENABLED
value: 'true'
- name: GF_SMTP_SKIP_VERIFY
value: 'true'
- name: GF_SMTP_HOST
value: 223.22.X.X:25 #地址是互联网能访问外网服务器地址465端口换成25默认协议端口即可
- name: GF_SMTP_USER
value: devops@163.com #接收人是自己
- name: GF_SMTP_PASSWORD
value: FCGSTEFUNNSHXS #这个是邮箱的授权码
- name: GF_SMTP_FROM_ADDRESS
value: devops@163.com #发送人也是自己
grafana设置alert告警通道

image.png
多个邮箱接收告警用;分号分隔开
四:互联网区机器设置正向代理
nginx编译mail和stream模块
#编译nginx安装依赖
yum -y install perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmakepcre-develnanowget gcc gcc-c++ ncurses-devel per
./configure --prefix=/data/webapp/nginx --with-openssl=/root/soft/lnmp/temp/openssl-1.1.1m --with-stream --with-stream_ssl_module --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --error-log-path=/data/logs/nginx/error.log
make -j2 && make install
设置正向代理
stream {
server{
listen 25;
proxy_pass smtp.163.com:25
}
}