403Webshell
Server IP : 68.178.202.69  /  Your IP : 216.73.216.122
Web Server : Apache
System : Linux 69.202.178.68.host.secureserver.net 3.10.0-1160.139.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Nov 3 13:30:41 UTC 2025 x86_64
User : ikioworld ( 1005)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/fm-agent/plugins/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/fm-agent/plugins/elasticsearch.py
import agent_util


class ElasticSearchPlugin(agent_util.Plugin):
    textkey = "elasticsearch"
    label = "Elastic Search"

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

        if not config:
            self.log.info(
                "The [elasticsearch] config block not found in the config file"
            )
            return {}

        if not "hostname" in config or not "port" in config:
            self.log.info(
                "The [elasticsearch] config block does not contain variables for hostname and/or port"
            )
            return {}

        if not agent_util.which("curl", exc=False):
            self.log.info("curl not found!")
            status = agent_util.UNSUPPORTED
            msg = "Curl is not installed - please install"
            return {}

        options = []

        data = {
            "number_of_nodes": {
                "label": "Total number of nodes in cluster",
                "options": None,
                "status": status,
                "error_message": msg,
            },
            "number_of_data_nodes": {
                "label": "Number of data nodes in cluster",
                "options": None,
                "status": status,
                "error_message": msg,
            },
            "active_primary_shards": {
                "label": "Number of active primary shards",
                "options": None,
                "status": status,
                "error_message": msg,
            },
            "active_shards": {
                "label": "Total number of shards",
                "options": None,
                "status": status,
                "error_message": msg,
            },
            "relocating_shards": {
                "label": "Number of shards getting relocated",
                "options": None,
                "status": status,
                "error_message": msg,
            },
            "initializing_shards": {
                "label": "Number of initializing shards",
                "options": None,
                "status": status,
                "error_message": msg,
            },
            "unassigned_shards": {
                "label": "Number of unassigned shards",
                "options": None,
                "status": status,
                "error_message": msg,
            },
        }
        return data

    def check(self, textkey, data, config):
        user_string = ""
        if config.get("username") and config.get("password"):
            user_string = "--user %s:%s" % (
                config.get("username"),
                config.get("password"),
            )

        cmd = "curl %s %s:%s/_cluster/health" % (
            user_string,
            config["hostname"],
            config["port"],
        )
        ret, output = agent_util.execute_command(cmd)
        reply = agent_util.json_loads(output)
        return int(reply[textkey])

Youez - 2016 - github.com/yon3zu
LinuXploit