HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.52.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 15 06:39:08 EDT 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //lib/fm-agent/plugins/sysctl.py
import agent_util
import csv
import sys


def get_sysctl_dict():
    sysctl = agent_util.which("sysctl")
    status, output = agent_util.execute_command("%s -a" % sysctl)
    if status != 0:
        raise Exception(output)
    metadata = {}
    for item in output.splitlines():
        m = item.split(" = ")
        try:
            metadata[m[0]] = int(m[-1].strip())
        except:
            pass
    return metadata


class SysctlPlugin(agent_util.Plugin):
    textkey = "sysctl_v2"
    label = "Sysctl"

    @classmethod
    def get_metadata(self, config):
        status = agent_util.SUPPORTED
        msg = None

        # check if sysctl is even installed
        installed = agent_util.which("sysctl")
        if not installed:
            self.log.info("sysctl binary not found")
            status = agent_util.UNSUPPORTED
            msg = "sysctl binary not found"

        metadata = {}
        if status is agent_util.SUPPORTED:
            metadata = get_sysctl_dict()

        data = {
            "sysctl": {
                "label": "Sysctl metric",
                "options": None,
                "status": status,
                "error_message": msg,
                "option_string": True,
            }
        }

        return data

    def check(self, textkey, data, config):
        metadata = get_sysctl_dict()
        res = None
        try:
            res = metadata[data]
        except:
            pass
        return res