PATH: //proc/thread-self/root/usr/local/lib/python3.9/site-packages/agent360/plugins
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 __init__.py
↓
X
📁 __pycache__/
X
📄 apt-updates.py
↓
X
📄 asterisk.py
↓
X
📄 bind.py
↓
X
📄 bird.py
↓
X
📄 bitninja.py
↓
X
📄 cloudlinux-dbgov.py
↓
X
📄 cloudlinux.py
↓
X
📄 cpanel.py
↓
X
📄 cpu.py
↓
X
📄 cpu_freq.py
↓
X
📄 dirsize.py
↓
X
📄 diskinodes.py
↓
X
📄 diskstatus-nvme.py
↓
X
📄 diskstatus.py
↓
X
📄 diskusage.py
↓
X
📄 docker.py
↓
X
📄 dovecot.py
↓
X
📄 elasticsearch.py
↓
X
📄 exim.py
↓
X
📄 fail2ban.py
↓
X
📄 gpu.py
↓
X
📄 haproxy.py
↓
X
📄 httpd.py
↓
X
📄 iostat.py
↓
X
📄 janus.py
↓
X
📄 kamailio.py
↓
X
📄 litespeed.py
↓
X
📄 loadavg.py
↓
X
📄 loggedin.py
↓
X
📄 mailq.py
↓
X
📄 mdstat.py
↓
X
📄 megacli.py
↓
X
📄 memcached.py
↓
X
📄 memory.py
↓
X
📄 minecraft.py
↓
X
📄 mongodb.py
↓
X
📄 mysql.py
↓
X
📄 network.py
↓
X
📄 nginx.py
↓
X
📄 openvpn.py
↓
X
📄 phpfpm.py
↓
X
📄 ping.py
↓
X
📄 plesk-cgroups.py
↓
X
📄 plugins.py
↓
X
📄 postfix.py
↓
X
📄 powerdns.py
↓
X
📄 process.py
↓
X
📄 proftpd.py
↓
X
📄 rabbitmq.py
↓
X
📄 redis_stat.py
↓
X
📄 sleeper.py
↓
X
📄 swap.py
↓
X
📄 system.py
↓
X
📄 tcpports.py
↓
X
📄 temp.py
↓
X
📄 unbound.py
↓
X
📄 vms.py
↓
X
📄 wp-toolkit.py
↓
X
📄 yum-updates.py
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: diskusage.py
#!/usr/bin/env python # -*- coding: utf-8 -*- import os import psutil import plugins import json class Plugin(plugins.BasePlugin): __name__ = 'diskusage' def run(self, config): disk = {} disk['df-psutil'] = [] for part in psutil.disk_partitions(False): valid_part = True ignored_partitions = ['/loop', '/snap', 'squashfs', 'cagefs-skeleton'] for ignore in ignored_partitions: if ignore in part.device or ignore in part.mountpoint or ignore in part.fstype: valid_part = False if valid_part == False: continue if os.name == 'nt': if 'cdrom' in part.opts or part.fstype == '': # skip cd-rom drives with no disk in it; they may raise # ENOENT, pop-up a Windows GUI error for a non-ready # partition or just hang. continue try: usage = psutil.disk_usage(part.mountpoint) diskdata = {} diskdata['info'] = part for key in usage._fields: diskdata[key] = getattr(usage, key) disk['df-psutil'].append(diskdata) except: pass try: force_df = config.get('diskusage', 'force_df') except: force_df = 'no' if len(disk['df-psutil']) == 0 or force_df == 'yes': try: disk['df-psutil'] = [] df_output_lines = [s.split() for s in os.popen("df -Pl").read().splitlines()] del df_output_lines[0] for row in df_output_lines: if row[0] == 'tmpfs': continue disk['df-psutil'].append({'info': [row[0], row[5],'',''], 'total': int(row[1])*1024, 'used': int(row[2])*1024, 'free': int(row[3])*1024, 'percent': row[4][:-1]}) except: pass try: zfs_stats = config.get('diskusage', 'zfs') except: zfs_stats = 'no' if zfs_stats == 'yes': try: lines = [s.split(', ') for s in os.popen("zfs list -Hp -t volume").read().splitlines()] for row in lines: v = {} v['vg_name'] = row[0] v['vg_size'] = int(row[5][:-1]) v['vg_free'] = int(row[6][:-1]) v['vg_used'] = int(v['vg_size']-v['vg_free']) v['vg_percentage'] = (v['vg_used']/float(v['vg_size']))*100 disk['df-psutil'].append({'info': [v['vg_name'], v['vg_name'], 'zfs', False], 'total': v['vg_size'], 'used': v['vg_used'], 'free': v['vg_free'], 'percent': v['vg_percentage']}) except Exception as e: return e.message try: lvm_stats = config.get('diskusage', 'lvm') except: lvm_stats = 'no' # For LVM volume group monitoring, requires sudo access to vgs # add vgs to /etc/sudoers # agent360 ALL=(ALL) NOPASSWD: /usr/sbin/vgs # set lvm = yes right under enabled = yes in /etc/agent360.ini if lvm_stats == 'yes': try: lines = [s.split(', ') for s in os.popen("sudo vgs --all --units b --noheadings --separator ', '").read().splitlines()] for row in lines: v = {} v['vg_name'] = row[0] v['vg_size'] = int(row[5][:-1]) v['vg_free'] = int(row[6][:-1]) v['vg_used'] = int(v['vg_size']-v['vg_free']) v['vg_percentage'] = (v['vg_used']/float(v['vg_size']))*100 disk['df-psutil'].append({'info': [v['vg_name'], v['vg_name'], 'lvm', False], 'total': v['vg_size'], 'used': v['vg_used'], 'free': v['vg_free'], 'percent': v['vg_percentage']}) except Exception as e: return e.message return disk if __name__ == '__main__': Plugin().execute()
SIMPAN PERUBAHAN