设为首页 收藏本站
查看: 1283|回复: 0

shell 脚本监控公网出口IP

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-10-17 10:30:03 | 显示全部楼层 |阅读模式
1、情景
公司有2条二级运营商的链路,链路非常不稳定。更为严重的是我们申请固定IP,出口IP竟然总是变动。公司所有业务都需要通过外网,影响面非常大。有人提示可以对出口做监测,发现IP变动赶紧处理。我百度发现curl可以通过网站拿到出口地址后就直接写了,测试成功,就记录下来share一下。新办公区选址,运营商线路选择也是非常重要,不然是更多的坑在等着你。

链路监测首先保证你做监测的服务器在你的那条出口链路上,这不用多说,如下简单示意图:
QQ截图20161017102853.png

先用ip138,就可以查看你本地址。
QQ截图20161017102858.png



2、
开始监控邮件想用sendmail,但问题百出。于是用linux自带的postfix,把命令行放到脚本里即可。
1>关闭selinux
[iyunv@bogon ~]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
2>关闭防火墙
service iptables off
chkconfig iptables off
3>关闭sendmail
service sendmail stop
chkconfig sendmail off

4>开启postfix
service postfix restart
chkconfig postfix on
5>保证sendmail关闭,postfix开启
[iyunv@bogon ~]# service postfix status
master (pid  53164) 正在运行...
[iyunv@bogon ~]# service sendmail status
sendmail 已停
sm-client 已停

现在用postfix相当于foxmail一样,都属于客户端,用客户端主动去连接服务器端,然后发送邮件。
以QQ企业邮箱为例,首先在邮箱客户端设置如下,开启SMTP,有什么授权验证码的自行解决处理:
QQ截图20161017102909.png
postfix端配置如下:

FROM 填自己的邮箱,SMTP,SMTP-AUTH-USER填自己邮箱,PASSWORD填密码,方式LOGIN。
wKioL1gAchvwvZhMAABgA--KVoA727.png
测试邮箱发送报警邮件,test后面加自己的邮箱测试,成功后写入下面脚本:
wKiom1gAc2ni3lwyAAAHYnyDBv8661.png

做监控脚本:
创建ip_changed用来存放IP改变的时间,创建iptest用来存放监控脚本是否按计划任务来执行。由于目前出口IP固定,可以用错误的IP来实现if的mail测试(我已经实验成功)。
wKiom1gAdO3TUCcFAACNnTeiT9A274.png

3、计划任务
1分钟做一次IP的探测,保证能及时收到通知。
crontab -e 编缉一下计划任务
wKiom1gA7baSaj7pAAByfCwPKMI180.png

查看历史记录,如下数据说明脚本执行成功,如果有IP变动就可以及时收到通知。大家还可以加入出口连通性测试,但阀值设高点,不然敏感了容易误判。
[iyunv@bogon home]# tail iptest.txt
wKiom1gA7jqC1QWGAABJMpEzZoE935.png

QQ截图20161017102853.png
QQ截图20161017102858.png
QQ截图20161017102909.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-287402-1-1.html 上篇帖子: shell脚本连接、读写、操作mysql数据库实例 下篇帖子: shell 脚本 “bc: command not found ” 解决 监控
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表