使用Python监控服务器在线状态

这篇具有很好参考价值的文章主要介绍了使用Python监控服务器在线状态。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在公司内网有一台服务器,有动态的公网IP,使用DDNS对外提供服务,但是会因为停电、服务器卡死等原因导致服务器离线。服务器离线后无法及时获知,因此需要实现在服务器离线的时候能够发送消息到手机上。

思路梳理

公司办理的是联通的商务宽带,有赠送一台沃云的ECS,但是一直处于闲置状态,于是就想利用这个ECS去监听服务器的端口,一旦端口无法访问,就发送消息到手机上,端口恢复访问也可以发送消息到手机上。

具体实施

内网服务器配置

开放监听的端口

在内网服务器上开放一个端口,用于给公网上的ECS监听。

[root@rsecc ~]# yum -y install  nc
[root@rsecc ~]# nc -lk 32768 &
chkconfig管理

因为nc命令会在服务器重启后退出,因此可以使用chkconfig将nc服务设置为开机自启。

[root@rsecc ~]# vim /etc/init.d/ncserver

写入如下内容:

#!/bin/bash
# chkconfig: 3 88 88
/usr/bin/nc -lk 32768 &

配置权限,并添加到开机自启。

[root@rsecc ~]# chmod +x /etc/init.d/ncserver
[root@rsecc ~]# chkconfig --add ncserver
[root@rsecc ~]# chkconfig --list ncserver
ncserver          0:off	1:off	2:off	3:on	4:off	5:off	6:off

这样的话,当服务器重启后,nc命令也会随着服务器启动。

防火墙配置

还需要在防火墙上放行对应的端口。

[root@rsecc ~]# firewall-cmd --add-port=32768/tcp
[root@rsecc ~]# firewall-cmd --reload

公网ECS配置

编写python脚本

编写python脚本来实现功能,并将python脚本设置为开机自启。

导入需要使用的模块,这里使用了 socket、time、json、requests 四个模块。

import socket
import time
import requests
import json

编写发送消息的函数模块,我这里使用的是企业微信的webhook机器人,也可以使用钉钉、邮箱、短信等方式发送消息。

webhook = "webhook地址链接"

#webhook发送消息
def send_text(webhook, content):
    header = {
                "Content-Type": "application/json",
                "Charset": "UTF-8"
                }
    data ={
        "msgtype": "text",
        "text": {
            "content": content
        }
    }
    data = json.dumps(data)
    info = requests.post(url=webhook, data=data, headers=header)

编写判断服务器状态的函数模块。这里使用的Python中的Socket标准库,通过构建一个TCP连接的Socket对象,使用connect_ex()方法连接服务器,如果连接无异常返回的状态码为0。通过判读返回的状态码是否为0来判断服务器是否在线。

def check_server_connection(server, port):
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    result = sock.connect_ex((server, port))
    if result == 0:
        service_status = "on"
        return service_status
    else:
        service_status = "off"
        return service_status

编写一个while死循环,通过判断状态码是否发生改变,来实现发送消息的效果。

service_status = "off"
prev_service_status = "off"

while True:
    service_status = check_server_connection("服务器地址", 32768)
    if prev_service_status != service_status:
        if service_status == "off":
            content = "服务器已离线!"
            send_text(webhook, content)
        else:
            content = "服务器已上线!"
            send_text(webhook, content)
        prev_service_status = service_status
    time.sleep(60)
设置为开机自启。

实现方式和内网服务器一样,使用ckhconfig命令。

[root@rsecc ~]# vim /etc/init.d/ncserver

写入如下内容:

#!/bin/bash
# chkconfig: 3 88 88
/usr/bin/python3 /opt/serveron.py &

配置权限,并添加到开机自启。

[root@rsecc ~]# chmod +x /etc/init.d/ncserver
[root@rsecc ~]# chkconfig --add ncserver
[root@rsecc ~]# chkconfig --list ncserver
ncserver          0:off	1:off	2:off	3:on	4:off	5:off	6:off

这样的话,当服务器重启后,python脚本也会随着服务器启动。

效果

使用Python监控服务器在线状态,广然笔记,python,服务器,chrome

总结

至此,通过一个简易的脚本即可实现服务器的状态监控。

© 版权声明
文章:使用Python监控服务器在线状态
作者:Guangran
链接:https://www.rsecc.cn/955.html
声明:如无特别说明本文即为原创文章仅代表个人观点,版权归《广然笔记》所有,未经授权、请勿转载。文章来源地址https://www.toymoban.com/news/detail-758906.html

到了这里,关于使用Python监控服务器在线状态的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 可以与宝塔共存的一个 “魔法” 服务器状态监控应用 ——xui

    之前有一期我们搭建了一个服务器监控,颜值非常不错,这期我们再来搭建一个 “特殊” 的服务器监控 ——XUI。 不仅可以监控服务器的数据,还可以干一些高级的,大家感兴趣的事情。 重要的是,它可以和宝塔面板共存! 一个非常直观,简洁大气的监控面板。 系统状态监

    2024年02月02日
    浏览(38)
  • Linux C/C++ 多线程TCP/UDP服务器 (监控系统状态)

    Linux环境中实现并发TCP/IP服务器。多线程在解决方案中提供了并发性。由于并发性,它允许多个客户端同时连接到服务器并与服务器交互。 Linux多线程编程概述 许多应用程序同时处理多项杂务。服务器应用程序处理并发客户端;交互式应用程序通常在处理后台计算时处理用户

    2024年02月07日
    浏览(30)
  • ubuntu在线服务器python Package安装到离线服务器

    1、在线服务器导出requirement.txt  该文件生成完毕后,需要做些修改,去掉不需要的库,否则下载的时候会出错。 2、下载whl文件 - packages 下载完成后packages文件夹包含所有的whl文件。 3、离线服务器ubuntu20.04  查看是否包含python pip 这个版本的服务器已经安装python3.8.5,但是没

    2023年04月18日
    浏览(28)
  • ubutn在线服务器python Package安装到离线服务器

    1、在线服务器导出requirement.txt  该文件生成完毕后,需要做些修改,去掉不需要的库,否则下载的时候会出错。 2、下载whl文件 - packages 下载完成后packages文件夹包含所有的whl文件。 3、离线服务器ubuntu20.04  查看是否包含python pip 这个版本的服务器已经安装python3.8.5,但是没

    2023年04月18日
    浏览(32)
  • jmeter监控服务器资源使用情况

    GitHub - undera/perfmon-agent: Server metrics fetching agent, based on SIGAR 下载安装包:ServerAgent-2.2.3.zip 解压先 启动,如果是windows运行startAgent.bat,如果是linux运行startAgent.sh 注意:linux上注意权限的问题 建议直接 777

    2024年01月25日
    浏览(40)
  • python socket监测服务器和客户端连接状态

    服务器端和客户端的连接状态,应该是没有单独的函数返回或是接口监测的,看网上很多资料说需要监测心跳,这确实是一个普遍解决监测状态的办法,但是对我的项目却显得有些被动,其实对一般的项目包括我的,用try…except就可以满足,里面设置标志位,if判断一下就可

    2024年02月13日
    浏览(33)
  • 白嫖在线云服务器,免费在 linux 服务器使用 docker 。 附视频+附文档

    白嫖在线云服务器,免费在 linux 服务器使用 docker 。 附视频+附文档 视频: https://www.bilibili.com/video/BV1WN411W79V/ 国内互联网经过多年发展,单体应用已经无法支持我们的互联网业务,分布式、微服务架构已经是大势所趋。 就算是一些小公司,也已经开始使用分布式、微服务架

    2024年02月08日
    浏览(46)
  • MobaXterm开启监控服务器资源使用情况

    MobaXterm可以在会话窗口底部查看服务器资源使用情况,比如内存,CPU,磁盘使用等。 可以通过Settings→SSH→勾选 Remote-monitoring来开启。 链接:https://www.jianshu.com/p/41340a918611

    2024年02月15日
    浏览(40)
  • 使用 Docker 部署 ServerStatus 服务器监控系统

    GitHub: https://github.com/cppla/ServerStatus ServerStatus 是一个酷炫高逼格的云探针、云监控、服务器云监控、多服务器探针~。 特性 使用 Rust 完全重写 Server、Client,单个执行文件部署 支持上下线和简单自定义规则告警 (Telegram、 Wechat、 Email、 Webhook) 支持 http 协议上报,可以方便部署

    2024年01月24日
    浏览(42)
  • 使用 Zabbix + Grafana 搭建服务器监控系统

    搭建 Linux 服务器监控的目的是自己有一台阿里云服务器内存是 2g 的 , 多开一些软件就会把内存和 CPU 使用率弄的很高,最终导致服务器卡死。 所以基于这个痛点,想知道当前的 CPU 和内存是多少。阿里云 ECS 控制台中也提供对服务器的监控 , 但是为了学习 Linux 服务器监控系统

    2024年01月21日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包