HEX
Server: LiteSpeed
System: Linux atali.colombiahosting.com.co 5.14.0-570.12.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 13 06:11:55 EDT 2025 x86_64
User: coopserp (1713)
PHP: 8.2.29
Disabled: dl,exec,passthru,proc_open,proc_close,shell_exec,memory_limit,system,popen,curl_multi_exec,show_source,symlink,link,leak,listen,diskfreespace,tmpfile,ignore_user_abord,highlight_file,source,show_source,fpaththru,virtual,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setid,posix_times,posix_ttyname,posix_uname,proc_get_status,proc_nice,proc_terminate
Upload Files
File: //usr/local/lib/python3.9/site-packages/agent360/plugins/network.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import psutil
import plugins
import time

class Plugin(plugins.BasePlugin):
    __name__ = 'network'

    def run(self, config):
        '''
        Network monitoring plugin.
        To only enable certain interfaces add below [network]:
        interfaces = eth1,eth3,...
        '''

        absolute = dict()
        absolute['ts'] = time.time()
        prev_cache = self.get_agent_cache()  # Get absolute values from previous check

        try:
            enabled_interfaces = config.get('network', 'interfaces').split(',')
        except:
            enabled_interfaces = False

        returndata = {}
        interfaces = psutil.net_io_counters(pernic=True)
        for interface, stats in interfaces.items():
            if enabled_interfaces is not False:
                if interface not in enabled_interfaces:
                    continue
            try:
                prev_cache[interface]
            except:
                prev_cache[interface] = {}
            absolute[interface] = {}
            absolute[interface]['ts'] = time.time()
            absolute[interface]['bytes_sent'] = stats.bytes_sent
            absolute[interface]['bytes_recv'] = stats.bytes_recv
            absolute[interface]['packets_sent'] = stats.packets_sent
            absolute[interface]['packets_recv'] = stats.packets_recv
            absolute[interface]['errin'] = stats.errin
            absolute[interface]['errout'] = stats.errout
            absolute[interface]['dropin'] = stats.dropin
            absolute[interface]['dropout'] = stats.dropout
            returndata[interface] = {}
            returndata[interface]['bytes_sent'] = self.absolute_to_per_second('bytes_sent', stats.bytes_sent, prev_cache[interface])
            returndata[interface]['bytes_recv'] = self.absolute_to_per_second('bytes_recv', stats.bytes_recv, prev_cache[interface])
            returndata[interface]['packets_sent'] = self.absolute_to_per_second('packets_sent', stats.packets_sent, prev_cache[interface])
            returndata[interface]['packets_recv'] = self.absolute_to_per_second('packets_recv', stats.packets_recv, prev_cache[interface])
            returndata[interface]['errin'] = self.absolute_to_per_second('errin', stats.errin, prev_cache[interface])
            returndata[interface]['errout'] = self.absolute_to_per_second('errout', stats.errout, prev_cache[interface])
            returndata[interface]['dropin'] = self.absolute_to_per_second('dropin', stats.dropin, prev_cache[interface])
            returndata[interface]['dropout'] = self.absolute_to_per_second('dropout', stats.dropout, prev_cache[interface])
        self.set_agent_cache(absolute)
        return returndata


if __name__ == '__main__':
    Plugin().execute()