Linux 用户登陆服务器微信告警

释放双眼,带上耳机,听听看~!
在服务器运维中,很多时候我们不可能24小时盯着屏幕上的各种参数及警告值。于是配置各种告警方式成了我们及时掌握服务器各种状况的有力工具。由于SSH又是最直击系统的服务,为了保证ssh的安全,我们需要对ssh进行监控。对登陆的每一个用户都进行监控,以确保系统的安全。


在某些环境中我们需要对ssh登陆添加一个告警,比如跳板机服务器,或者开放了外网的机器,以判断机器是否有密码被破解的问题。

效果图如下

image_1ehjm4dhp1tddcdbn8g1c7n1t199.png-28.4kB

脚本内容如下

根据提示修改

#!/bin/bash
#

#使用方法 sh ./send_message.sh "发送内容"
#如       sh ./send_message.sh "测试环境,正在更新"


#保存要发送人员的账号,在通讯录可获取,多个人员之间使用空格分隔,以下为展示数据
user="abcdocker"
#企业微信ID:企业微信管理界面-’我的企业‘页面中获取
corpid="wwc1...."
#应用秘钥:在‘自建应用’-‘创建应用’-‘应用管理’中获取
corpsecret="f2MB1IhLrpM3N..."
#企业应用ID:在'自建应用'-'创建应用'-'应用管理'中获取
agentld=1000004

#------------------------以上变量需要自行修改-----------------------------------

#保存信息内容变量
msg='请检查服务器登录用户:\n主机名: '`hostname`'\n主机IP: '`ifconfig eth0|awk -F '[ :]+' 'NR==2 {print $3}'`'\n登录用户: '`whoami`'\n登录IP: '`who am i |awk -F '[()]' '{print $2}'`'\n登录时间: '`date '+%Y-%m-%d-%H:%M:%S'`''


#curl -s 静默模式,就是不显示错误和进度
A=`curl -s https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$corpid\&corpsecret=$corpsecret`
#解析json格式 并获取access_token值
token=`echo $A | jq -c '.access_token'`
#去除变量值两边的双引号
token=${token#*\"}
token=${token%*\"}
#请求地址
URL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$token"


for I in $user;do
	#发送的JSON内容
	JSON="{\"touser\": \"$I\",\"msgtype\": \"text\",\"agentid\": \"$agentld\",\"text\": {\"content\": \"$msg\"},\"safe\":0 }"
	#以POST的方式请求
	curl -d "$JSON" "$URL" >/dev/null 2>&1
done

exit 0

脚本中还涉及jq命令,这里我们安装一下

[root@vps ~]# yum install -y jq

关于企业微信的设置可以参考下面的Zabbix微信告警,个人也可以申请企业微信步骤几乎没发生变化~

Zabbix 新版微信告警

Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警的及时处理。

在完善脚本之后,我们需要将脚本放置在/etc/profile这样用户在登陆的时候就会发送(前提是服务器可以访问外网,就是可以ping通百度)

vim /etc/profile

/bin/bash  /root/wechat.sh

接下来效果演示

内网登陆

image_1ehjnpsoaqug1fn3ut1mdim3vm.png-638.8kB

外网登陆

image_1ehjo22ldm29hqp5k81sgg1bs013.png-52.5kB

告警通知如下

如果监控的网卡没有公网IP,属于映射的话。这里是无法显示的 (当然也可以通过curl ifconfig.me但是可能存在登陆延迟的情况 https://blog.csdn.net/lakeheart879/article/details/78247894)

image_1ehjo3mgp1cdv1jeo1uh3130pjce1g.png-63.1kB

人已赞赏
Linux

DNS BIND主辅同步配置

2020-9-1 17:24:38

Jenkins

持续集成之代码质量管理-Sonar [三]

2016-12-22 11:03:55

2 条回复 A文章作者 M管理员
  1. Show Time

    学习一下

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索