⚝
One Hat Cyber Team
⚝
Your IP:
3.21.126.72
Server IP:
97.74.87.16
Server:
Linux 16.87.74.97.host.secureserver.net 5.14.0-503.38.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 18 08:52:10 EDT 2025 x86_64
Server Software:
Apache
PHP Version:
8.2.28
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
lib
/
fm-agent
/
plugins
/
View File Name :
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])