PATH:
usr
/
local
/
lib
/
python3.9
/
site-packages
/
agent360
/
plugins
import plugins import struct import time import memcache class Plugin(plugins.BasePlugin): __name__ = 'memcached' def run(self, config): ''' pip install python-memcached add to /etc/agent360.ini [memcached] enabled=yes host=127.0.0.1 port=11211 ''' prev_cache = self.get_agent_cache() # Get absolute values from previous check try: socket = config.get('memcached', 'socket') except: socket = False try: # Connect if socket is False: mc = memcache.Client(['%s:%s' % (config.get('memcached', 'host'), config.get('memcached', 'port'))], debug=0) else: mc = memcache.Client(['unix:/%s' % socket], debug=0) except: return "Could not connect to memcached" non_delta = ( 'accepting_conns', 'bytes', 'uptime', 'total_items', 'total_connections', 'time_in_listen_disabled_us', 'threads', 'rusage_user', 'rusage_system', 'reserved_fds', 'pointer_size', 'malloc_fails', 'lrutail_reflocked', 'listen_disabled_num', 'limit_maxbytes', 'hash_power_level', 'hash_bytes', 'curr_items', 'curr_connections', 'connection_structures', 'conn_yields', 'reclaimed' ) delta_keys = ( 'auth_cmds', 'auth_errors', 'bytes_read', 'bytes_written', 'touch_misses', 'touch_hits', 'incr_misses', 'incr_hits', 'cas_misses', 'cas_badval', 'incr_hits', 'get_misses', 'get_hits', 'expired_unfetched', 'evictions', 'evicted_unfetched', 'delete_misses', 'delete_hits', 'decr_misses', 'decr_hits', 'crawler_reclaimed', 'crawler_items_checked', 'cmd_touch', 'cmd_get', 'cmd_set', 'cmd_flush', 'cmd_misses', 'cmd_badval', 'cmd_hits' ) results = {} data = {} try: result = mc.get_stats() for key, key_value in enumerate(result[0][1]): value = result[0][1][key_value] key = key_value.lower().strip() if key in non_delta: results[key] = float(value) elif key in delta_keys: value = float(value) results[key] = self.absolute_to_per_second(key, float(value), prev_cache) data[key] = float(value) else: pass except: return 'Could not fetch memcached stats' data['ts'] = time.time() self.set_agent_cache(data) 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]