当前位置:首页 > 技术文章 > 正文内容

Python脚本监控管理nginx

arlanguage5个月前 (12-20)技术文章36

Python脚本监控管理nginx

在Linux环境中,Python脚本可以用来监控和管理Nginx服务器的进程状态、端口监听情况以及日志分析等。以下是一个基础的Python脚本示例,用于检查Nginx主进程是否运行,并在进程未运行时发送警报:

用python代码实现过程如下:

import subprocess

import psutil

import smtplib

import time

from email.mime.text import MIMEText

# 检查Nginx主进程是否存在函数

def is_nginx_running():

try:

# 使用`pgrep`命令查找Nginx主进程,检查 Nginx 进程是否在运行

result = subprocess.run(['pgrep', '-f', 'nginx: master process'], capture_output=True, text=True)

return bool(result.stdout.strip())

except Exception as e:

print(f"Error checking Nginx process: {e}")

return False

如果发现Nginx服务没有运行,重启 Nginx

try:

subprocess.run(['nginx', '-s', 'reload'], check=True)

print("Nginx restarted successfully.")

except subprocess.CalledProcessError as e:

print(f"Error restarting Nginx: {e}")

# 检查nginx的状态

########### 这部分代码也可以使用,根据自己的爱好

def check_nginx_status():

# 发送HTTP请求到Nginx服务器,检查其状态

try:

response = requests.get('http://192.168.10.1/nginx_status')

if response.status_code == 200:

return True

else:

return False

except requests.exceptions.RequestException as e:

print(e)

return False

###########


# 发送邮件通知函数

def send_email(subject, message):

sender = 'your_email@example.com'

receiver = 'admin_email@example.com'

password = 'your_smtp_password' # 或者使用环境变量存储密码

smtp_server = 'smtp.example.com'

msg = MIMEText(message)

msg['Subject'] = subject

msg['From'] = sender

msg['To'] = receiver

try:

with smtplib.SMTP(smtp_server, 587) as server:

server.starttls()

server.login(sender, password)

server.sendmail(sender, receiver, msg.as_string())

except Exception as e:

print(f"Failed to send email: {e}")

# 主程序逻辑

if __name__ == "__main__":

if not is_nginx_running():

message = "Nginx主进程未运行,请尽快检查!"

send_email("Nginx服务警告", message)

else:

print("Nginx主进程正在运行。")

# 获取CPU使用率

cpu_usage = psutil.cpu_percent()

print('CPU Usage:', cpu_usage)

time.sleep(60) # 每分钟检查一次 Nginx 进程

# 如果需要更复杂的监控,比如定期检查或检查工作进程数,可以扩展此脚本功能

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/371.html

标签: nginx 语法 if
分享给朋友:

“Python脚本监控管理nginx” 的相关文章

Nginx动静分离简单实现示例讲解

简述本文主要介绍如何实现Nginx动静分离。动静分离动静分离是根据一定规则把静态文件(html、css、js、jpg等)和动态文件(jsp,.do等)区分开来,采用静态文件和动态文件分开部署,以提高用户访问静态文件的速度,降低对后台应用的访问,提高服务器响应速度和性能。静态文件由Nginx服务器处理...

Linux中内网或者没网时安装软件的两种方式

写在前面对于可以连接外网的服务器装软件,只要配置yum源就可以随便使用了但是对于内网来说,不能连接外网,一般情况下,管控平台只有上传的权限。尤其是一些涉密的岗位,比如电力,电信,军工之类的。今天和小伙伴聊聊内网服务器如何安装软件的问题。可事实是,唯恐暴露才华不足的卑怯的畏惧,和厌恶钻研刻苦的惰怠,就...

nginx启动、重启、关闭

一、启动cd usr/local/nginx/sbin./nginx二、重启更改配置重启nginxkill -HUP 主进程号或进程号文件路径或者使用cd /usr/local/nginx/sbin./nginx -s reload 判断配置文件是否正确nginx -t -c /usr/local/...

http请求域名强制跳转https

网站添加了https证书后,当http方式访问网站时就会报404错误,所以需要做http到https的强制跳转设置. ---------------一、采用nginx的rewrite方法--------------------- 下面是将所有的http请求通过rewrite重写到https上。 例如...

了解PHP-FPM

在服务器上,当我们查看php进程时,全都是php-fpm进程,大家都知道这个就是php的运行环境,那么,它到底是个什么东西呢?PHP-FPM简介PHP-FPM,就是PHP的FastCGI管理器,用于替换PHP FastCGI的大部分附加功能,在PHP5.3.3后已经成为了PHP的标配。有小伙伴要问了...

解决Apache 2.4+PHP5.6不支持CURL

跑一个demo,突然发现,服务器上最普通的Apache 2.4+PHP5.6组合,不支持curl,报告没有curl_init函数;而php.ini里面已经打开了php_curl.dll,而且php -i的输出是正常的,说明curl是可以执行的。折腾了半天百思不得其解,最后索性把php5.6、apac...