IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Shell监控主机连通性或者http服务可访问性,发现异常消息到钉钉群。 -> 正文阅读

[系统运维]Shell监控主机连通性或者http服务可访问性,发现异常消息到钉钉群。

一:需求

使用Shell脚本监控主机连通性(通过ping的方式判断主机是否还在线)或http服务的可访问性,如果发现异常把异常消息发送到钉钉群。

(1)首先在钉钉中添加webhook自定义机器人
(2)编写sh脚本,测试发送内容 。
(3)编写触发日志报警的脚本
(4)最后一步,利用linux系统本身的 定时任务,执行这个触发日志报警的任务 crontab -e,我们暂时用每15分钟执行一次
(5)如果服务宕掉或者有异常发生,将会触发 报警,

二:自定义钉钉机器人

1.建一个钉钉群

2.创建自定义机器人

建群成功后,点击右上角的“群设置”按钮:
在这里插入图片描述
点击“智能群助手” --> 点击“添加机器人”
在这里插入图片描述点击添加自定义机器人
在这里插入图片描述
这里的安全设置选项是必须选的,可以选一个或多个
勾选“自定义关键词”,设置关键词。
在发送的消息里,必须带有设置的关键词,才能发送成功
在这里插入图片描述

其它安全设置参考:https://blog.csdn.net/HeyShHeyou/article/details/104277083
安全设置官网参考: https://open.dingtalk.com/document/robots/customize-robot-security-settings

Webhook地址复制保存好,不要公布在外部网站上,泄露后有安全风险。
在这里插入图片描述

3.shell监控主机连通信脚本:

[root@mail data]# cat ping.sh 
#!/bin/bash

#存放ip文件的位置
pwd=/data
ip_list=`cat $pwd/ip.txt`

for ip in $ip_list;do 
	fail_count=0
	for ((i=1;i<=3;i++)); do
		if ping -c 1 $ip > /dev/null;then
			#echo "successful"
			break
		else
			let fail_count++
		fi
		#echo $fail_count
	done
	if [ $fail_count -eq 3 ];then
		curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxx' -H 'Content-Type: application/json' -d "{'msgtype': 'text','text': {'content':'监控告警!!!\n网络连通性告警\n源IP地址: 192.168.120.22\n目标IP地址: $ip\n'},'at': {'isAtAll': true}}"
	fi
done

4.shell监控http服务可访问性脚本:

[root@mail data]# cat http_health.sh 
#!/bin/bash
#返回状态码不是200,都视为异常
#http_url.txt存放url地址
pwd=/data
http_url=`cat $pwd/http_url.txt`

for url in $http_url;do
	fail_count=0
        status_code=`curl -s -o /dev/null $url -w "%{http_code}\n"`
	#time=$(date "+%Y-%m-%d %H:%M:%S")
	for ((i=0;i<=3;i++));do
		if [ $status_code -ge 200 ];then
			#echo "访问成功!$url"
			break
		else
			let fail_count++
		fi
	done
	time=$(date "+%Y-%m-%d %H:%M:%S")
	if [ $fail_count -ge 3 ];then
		curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxx' -H 'Content-Type: application/json' -d "{'msgtype': 'text','text': {'content':'监控告警!!!\nhttp地址: $url 无法正常访问,请及时查看!\n访问时间: $time \n'},'at': {'isAtAll':true}}"
	fi
done

5.shell监控windows(以监控端口连通性方式实现)

[root@manager-1 dingding]# cat nc.sh 
#!/bin/bash

#28 54是windows机器,通过nc探测端口的方式来判断他是否存活
#nc_ip.txt存放ip地址
pwd=/data/dingding
nc_ip=`cat $pwd/nc_ip.txt`
for ip in $nc_ip;do
        nc=`nc -z -w 3 $ip 3389`
        result_code=`echo $?`
        time=$(date "+%Y-%m-%d %H:%M:%S")
        if [ $result_code -ne 0 ];then
                curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxx' -H 'Content-Type: application/json' -d "{'msgtype': 'text','text': {'content':'监控告警!!!\n网络连通性告警 \n源ip: 10.161.54.32\n目标ip: $ip(windows) 3389\n无法正常访问,请及时查看!\n访问时间: $time \n'},'at': {'isAtAll':true}}"
        fi
done

nc=`nc -z -w 3 10.160.93.16 9200`
result_code2=`echo $?`
#echo $result_code2
        if [ $result_code2 -ne 0 ];then
                curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxx' -H 'Content-Type: application/json' -d "{'msgtype': 'text','text': {'content':'监控告警!!!\n源IP地址: 10.161.54.32\nhttp地址: https://10.160.93.16:9200(es访问url) \n无法正常访问,请及时查看!\n访问时间: $time \n'},'at': {'isAtAll':true}}"
        fi

[root@mail data]# cat nc.sh 
#!/bin/bash

#nc_ip.txt存放ip地址
pwd=/data
nc_ip=`cat $pwd/nc_ip.txt`
for ip in $nc_ip;do
	if [ $ip == '192.168.120.22' ];then
		nc=`nc -z -w 5 $ip 82`
		result_code=`echo $?`
	elif [ $ip == '192.168.120.24' ];then
		nc=`nc -z -w 5 $ip 80`
		result_code=`echo $?`
	fi
	time=$(date "+%Y-%m-%d %H:%M:%S")
	if [ $result_code -ne 0 ];then
		curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxx' -H 'Content-Type: application/json' -d "{'msgtype': 'text','text': {'content':'监控告警!!!\n网络连通性告警 \n源ip: 10.161.54.32\n目标ip: $ip(windows) 3389\n无法正常访问,请及时查看!\n访问时间: $time \n'},'at': {'isAtAll':true}}"
	fi
done

nc=`nc -z -w 5 10.160.93.16 9092`
result_code2=`echo $?`
echo $result_code2
	if [ $result_code2 -ne 0 ];then	
		curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxx' -H 'Content-Type: application/json' -d "{'msgtype': 'text','text': {'content':'监控告警!!!\n源IP地址: 10.161.54.32\nhttp地址: https://10.160.93.16:9200(es访问url) \n无法正常访问,请及时查看!\n访问时间: $time \n'},'at': {'isAtAll':true}}"
	fi
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 17:01:55  更:2022-07-17 17:05:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 19:47:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码