python監控nginx埠和程序狀態

2021-08-21 19:36:57 字數 1655 閱讀 5852

#!/usr/local/bin/python

# coding:utf-8

import psutil

import sys

import os

# 獲取主機名稱

def hostname():

sys = os.name

if sys == 'nt':

hostname = os.getenv('computername')

return hostname

elif sys == 'posix':

host = os.popen('echo $hostname')

try:

hostname = host.read()

return hostname

finally:

host.close()

else:

return 'unkwon hostname'

# 獲取程序狀態

def processstatus(processname):

pids = psutil.pids() #獲取主機所有的pid

a = 1

for pid in pids: #對所有pid進行迴圈

p = psutil.process(pid) #例項化程序物件

if p.name() == processname: #判斷例項程序名與輸入的程序名是否一致(判斷程序是否存活)

print (a) #返回1,程序存活

a += 1

if a == 1:

print (0) #返回0,程序逝去

# 獲取程序pid

def processpid(processname):

pids = psutil.pids()

for pid in pids:

p = psutil.process(pid)

if p.name() == processname:

return pid

return true # 如果找到該程序則列印它的pid,返回true

else:

print('找不到程序'+processname)

return false # 沒有找到該程序,返回false

# 獲取程序的埠號

def processport(pid):

p = psutil.process(pid)

data=p.connections()

data_listen=[x for x in data if 'listen' in x ]

# pid_port=

# for port in data_listen:

# return list(set(pid_port))

return list(data_listen[0][3])[1]

hostname=hostname().strip()

pid=processpid('nginx')

port=processport(pid)

json_data = [

]autodiscoveryjson(json_data, object_id='host')

python監控nginx埠和程序狀態

usr local bin python coding utf 8 import psutil import sys import os 獲取主機名稱 def hostname sys os.name if sys nt hostname os.getenv computername return ...

服務監控 Nginx狀態監控

root linux node1 vim etc zabbix zabbix agentd.conf 編輯配置檔案引用key include etc zabbix zabbix agentd.d conf root linux node1 mkdir etc zabbix scripts 存放she...

nginx狀態監控

通過檢視nginx的併發連線,我們可以更清除的知道 的負載情況。nginx併發檢視有兩種方法 之所以這麼說,是因為筆者只知道兩種 一種是通過web介面,一種是通過命令,web檢視要比命令檢視顯示的結果精確一些。下面介紹這兩種檢視方法 no1 通過瀏覽器檢視 通過web介面檢視時nginx需要開啟st...