PATH:
usr
/
local
/
lib
/
python3.9
/
site-packages
/
agent360
/
plugins
#!/usr/bin/env python # -*- coding: utf-8 -*- try: from urllib.parse import urlparse, urlencode from urllib.request import urlopen, Request from urllib.error import HTTPError except ImportError: from urlparse import urlparse from urllib import urlencode from urllib2 import urlopen, Request, HTTPError import time import plugins import re class Plugin(plugins.BasePlugin): __name__ = 'httpd' def run(self, config): ''' Apache/httpd status page metrics ''' prev_cache = {} next_cache = dict() next_cache['ts'] = time.time() prev_cache = self.get_agent_cache() # Get absolute values from previous check try: request = Request(config.get('httpd', 'status_page_url')) data = urlopen(request).read().decode('utf-8') except Exception as e: return False exp = re.compile('^([A-Za-z ]+):\s+(.+)$') results = {} def parse_score_board(sb): ret = [] ret.append(('IdleWorkers', sb.count('_'))) ret.append(('ReadingWorkers', sb.count('R'))) ret.append(('WritingWorkers', sb.count('W'))) ret.append(('KeepaliveWorkers', sb.count('K'))) ret.append(('DnsWorkers', sb.count('D'))) ret.append(('ClosingWorkers', sb.count('C'))) ret.append(('LoggingWorkers', sb.count('L'))) ret.append(('FinishingWorkers', sb.count('G'))) ret.append(('CleanupWorkers', sb.count('I'))) return ret for line in data.split('\n'): if line: m = exp.match(line) if m: k = m.group(1) v = m.group(2) # Ignore the following values if k == 'IdleWorkers' or k == 'Server Built' or k == 'Server Built' \ or k == 'CurrentTime' or k == 'RestartTime' or k == 'ServerUptime' \ or k == 'CPULoad' or k == 'CPUUser' or k == 'CPUSystem' \ or k == 'CPUChildrenUser' or k == 'CPUChildrenSystem' \ or k == 'ReqPerSec': continue if k == 'Total Accesses': results['requests_per_second'] = self.absolute_to_per_second(k, int(v), prev_cache) next_cache['Total Accesses'] = int(v) if k == 'Scoreboard': for sb_kv in parse_score_board(v): results[sb_kv[0]] = sb_kv[1] else: results[k] = v self.set_agent_cache(next_cache) return results if __name__ == '__main__': Plugin().execute()
[-] wp-toolkit.py
[open]
[+]
..
[-] plugins.py
[open]
[-] yum-updates.py
[open]
[-] proftpd.py
[open]
[-] sleeper.py
[open]
[-] network.py
[open]
[+]
__pycache__
[-] bird.py
[open]
[-] diskusage.py
[open]
[-] exim.py
[open]
[-] cpanel.py
[open]
[-] loggedin.py
[open]
[-] memory.py
[open]
[-] megacli.py
[open]
[-] phpfpm.py
[open]
[-] rabbitmq.py
[open]
[-] elasticsearch.py
[open]
[-] mysql.py
[open]
[-] iostat.py
[open]
[-] plesk-cgroups.py
[open]
[-] fail2ban.py
[open]
[-] loadavg.py
[open]
[-] dirsize.py
[open]
[-] openvpn.py
[open]
[-] apt-updates.py
[open]
[-] postfix.py
[open]
[-] diskstatus.py
[open]
[-] tcpports.py
[open]
[-] haproxy.py
[open]
[-] ping.py
[open]
[-] unbound.py
[open]
[-] dovecot.py
[open]
[-] memcached.py
[open]
[-] bitninja.py
[open]
[-] powerdns.py
[open]
[-] mailq.py
[open]
[-] gpu.py
[open]
[-] system.py
[open]
[-] cloudlinux.py
[open]
[-] cpu_freq.py
[open]
[-] janus.py
[open]
[-] nginx.py
[open]
[-] bind.py
[open]
[-] cpu.py
[open]
[-] litespeed.py
[open]
[-] swap.py
[open]
[-] temp.py
[open]
[-] kamailio.py
[open]
[-] httpd.py
[open]
[-] diskstatus-nvme.py
[open]
[-] process.py
[open]
[-] mongodb.py
[open]
[-] __init__.py
[open]
[-] minecraft.py
[open]
[-] docker.py
[open]
[-] vms.py
[open]
[-] asterisk.py
[open]
[-] redis_stat.py
[open]
[-] mdstat.py
[open]
[-] cloudlinux-dbgov.py
[open]
[-] diskinodes.py
[open]