编写脚本实现服务器登录短信告警

2017-9-27 杰克 运维

        服务器运维中,很多时候我们不可能24小时盯着屏幕上的各种参数及警告值。于是配置各种告警方式成了我们及时掌握服务器各种状况的有力工具。在大批量并集中部署的环境中可能会使用Zabbix、Nagios、Cacti等运维工具。功能强大,开源且免费。但在节点主机并不多且分布广阔的零散环境中安装这些强大的运维工具就显得很费事,性价比不高。在零散环境中我个人比较喜欢使用操作系统自带的脚本来实现对服务器各种状态的告警配置,下面演示通过编写脚本实现服务器登录邮件短信告警。

      目前各大运营商都有邮件短信提醒功能,开通手机邮件短信提醒功能即可实现登录短信告警,联通每月免费100条短信。个人认为是足够用了 

wo-mail.png

 

一、Windows脚本

1.在Windows Server 环境里可以使用vbs、powershell等脚本来实现发送邮件功能,这里使用VBS来实现发送邮件功能,VBS文件内容如下:

 vbs.png

 

2.运行gpedit.msc 打开组策略,定位到 计算机配置---管理模板---系统---登录  双击配置右边的 “在用户登录时运行这些程序”项

 gpedit1.png

 

3.打开后,点选 已启用 并单击 显示 按钮,输入邮件发送VBS脚本文件路径并确定,这里是c:\mail.vbs

 gpedit2.png

 

4. 组策略配置完成后,注销登录。再重新登录服务器,邮箱收到登录邮件同时手机收到邮件短信提醒

 mail-OK1.png

sms1.png

 

5.配置到这里,似乎功能已经实现。实际上这里有个漏洞,根据我们创建的组策略在用户登录的时候会发送邮件,也就是说发送邮件需要“登录”这个条件,这个组策略所说的“登录”是指操作系统在没有此用户登录的情况下的登录。但很多时候我们在操作服务器后不一定是选择注销,而是关闭会话,即直接点击远程桌面右上角的关闭按钮。这个过程不是注销,而是关闭会话。账户依然登录在服务器上。在关闭会话后再重新登录服务器的过程在组策略看来是一个重新连接会话的过程,不是登录过程,从而不会发送邮件。

 sessen.png

 

6.要解决上述连接会话不发送邮件的问题也不复杂,我用的方式是建一个计划任务在每次连接会话时运行发送邮件脚本文件,从而实现连接会话也能发送邮件。具体如下:管理工具---任务计划程序---空白处右键新建一个计划任务

 tak.png

 

7.计划任务的 常规 选项卡配置

tak1.png

 

8.计划任务的 触发器 选项卡配置,新建触发器将连接会话的选项都选上

tak2.png

 

9.计划任务的 操作 选项卡配置,新建操作程序填好脚本路径及脚本名。后面的 条件  设置 等选项卡无需配置保持默认即可

tak3.png

 

       至此,在经过计划任务的补充配置即实现的无缝的Windows服务器通过远程登录后的邮件发送,当然,以上脚本只是简单的实现了发送邮件,还可以编写邮件正文显示登录IP 显示登录系统时间等其他信息。若还有其他配置方法欢迎大家交流

 

二、Linux脚本

1.在linux系统配置邮件相对简单,但需要安装sendmail mailx等软件来实现邮件的发送。以centos为例,首先安装 sendmail  mailx 

linux-yum.png

 

2.安装完成后可以使用命令:echo "this is my test mail" | mail -s 'mail test' xxx@yyy.com  发送邮件,双引号" "里面是邮件正文,单引号' '里面是邮件主题

      但仅以上配置邮箱是不会收到邮件的,因为默认将使用linux当前登录用户信息,通常会被当成垃圾邮件,需要指定发件人邮箱信息才能正常发信。编辑文件: vi /etc/mail.rc   编辑增加以下内容。需要注意的是 smtp-auth-password 项不是邮箱登录密码,是邮箱服务器开启smtp的授权码,每个邮箱开启授权码操作不同,网易163邮箱开启菜单:设置-> 客户端授权密码。

linux-mail-conf.png

 

3.发件箱信息配置完成后再使用上述命令即可发送邮件,下面配置有登录即发送邮件脚本。在 /etc/ssh 目录下创建编辑 sshrc 文件并赋予执行权限,文件脚本代码如下:第一部分是取得登录IP  第二部分是取得登录时间 第三部分是取得登录账户,若还想获得其他信息可自行添加脚本

linux-mail-conf1.png

 

4.配置完成后,无论是通过登录还是克隆会话都会执行/etc/ssh/sshrc 脚本文件发送邮件。如图:

linux-mailOK1.png

linux-sms1.png

 

至此,linux的登录告警亦配置完成,若大家还有更好的方法欢迎交流

 

标签: 登录告警 短信告警 服务器运维

发表评论:

Powered by emlog 京ICP备17037512-1 e-mail:jackhkyin@163.com QQ:393147796