Elasticsearch_cluster_health Regeln einrichten

Wir setzen cmk 1.6.0p19 ein und wollen nun den Status unserer Elastic Cluster checken.

Wir überwachen direkt schon alle 3 Hosts mit dem checkmk agenten.

Nun wollen wir aus dieser Doku


auch den Cluster Status im Monitoring sehen.
Ich habe leider nicht gefunden an welchen Host ich diese Regel binden muss und ob dann noch piggyback regeln erstellt werden müssen.

Hat das jemand von euch am laufen und kann mir Tipps geben was ich falsch machen?

Viele Grüße
Reinhard

Das wichtige hier ist der Special Agent welcher die Daten vom Elasticsearch sich besorgt.
“Datasource Programs” -> “Check state of Elasticsearch”
Diesen bindest an einen Host welcher es erlaubt sich zum Elasticsearch zu verbinden.

Die Checks sollten wenn alles funktioniert auch bei diesem Host auftauchen dann. Es werden keine Piggyback Daten produziert wenn ich mich nicht ganz falsch erinnere.

Hallo Andreas,
ja das habe ich so konfiguriert. Jedoch liegt wohl das Problem an nicht verifizierbaren SSL Zertifikaten

OMD[lan]:~$ /omd/sites/lan/share/check_mk/agents/special/agent_elasticsearch elastic1.lan.local -u monitoring_user -s ‘xxx’ -P https --debug
<<<check_mk>>>
Traceback (most recent call last):
File “/omd/sites/lan/share/check_mk/agents/special/agent_elasticsearch”, line 32, in
sys.exit(main())
File “/omd/sites/lan/lib/python/cmk/special_agents/agent_elasticsearch.py”, line 52, in main
handle_request(user, pwd, opt_port, query_objects, opt_proto, opt_debug, elastic_host)
File “/omd/sites/lan/lib/python/cmk/special_agents/agent_elasticsearch.py”, line 76, in handle_request
response = requests.get(url, auth=(user, pwd))
File “/omd/sites/lan/local/lib/python/requests/api.py”, line 72, in get
return request(‘get’, url, params=params, **kwargs)
File “/omd/sites/lan/local/lib/python/requests/api.py”, line 58, in request
return session.request(method=method, url=url, **kwargs)
File “/omd/sites/lan/local/lib/python/requests/sessions.py”, line 508, in request
resp = self.send(prep, **send_kwargs)
File “/omd/sites/lan/local/lib/python/requests/sessions.py”, line 618, in send
r = adapter.send(request, **kwargs)
File “/omd/sites/lan/local/lib/python/requests/adapters.py”, line 506, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host=‘elastic1.lan.local’, port=9200): Max retries exceeded with url: /_cluster/health (Caused by SSLError(SSLError(“bad handshake: Error([(‘SSL routines’, ‘tls_process_server_certificate’, ‘certificate verify failed’)],)”,),))

OMD[lan]:~$ curl -L https://delzk10elstcv01.cds.testo:9200 --user “monitoring_user:xxx”
{
“name” : “elnode-1”,
“cluster_name” : “elastic1”,
“cluster_uuid” : “jVv_gxo7RKSXzgvSjLt1tQ”,
“version” : {
“number” : “7.10.0”,
“build_flavor” : “default”,
“build_type” : “deb”,
“build_hash” : “51e9d6f22758d0374a0f3f5c6e8f3a7997850f96”,
“build_date” : “2020-11-09T21:30:33.964949Z”,
“build_snapshot” : false,
“lucene_version” : “8.7.0”,
“minimum_wire_compatibility_version” : “6.8.0”,
“minimum_index_compatibility_version” : “6.0.0-beta1”
},
“tagline” : “You Know, for Search”
}

da es mir curl auf der shell funktioniert, frage ich mich was cmk in python denn für Zertifikate vergleiche hat und deshalb der special/agent_elasticsearch bei mir nicht zum ziel kommt?

Noch jemand einen Idee?

Gruß
Reinhard

Du könntest mal probieren dein Zertifikat vom Elasticsearch innerhalb der Site in den Trusted Certificates zu hinterlegen im WATO.
Diese werden eigentlich berücksichtigt wenn Python Scripte laufen.

Der Special Agent selbst hat hier nix eingebaut/vorgesehen um Zertifikatsprobleme zu ignorieren.

Ich kenne bei der WATO das nur im Zusammenhang mit der Agent backery. Wo kann ich dort denn
das Zertifikat des elastic Server einbinden, hochladen?

/omd/sites/lan/share/check_mk/agents/special/agent_elasticsearch elastic1.lan.local -u monitoring_user -s ‘xxx’ -P https --debug
<<<check_mk>>>
Traceback (most recent call last):
File “/omd/sites/lan/share/check_mk/agents/special/agent_elasticsearch”, line 32, in
sys.exit(main())
File “/omd/sites/lan/lib/python/cmk/special_agents/agent_elasticsearch.py”, line 52, in main
handle_request(user, pwd, opt_port, query_objects, opt_proto, opt_debug, elastic_host)
File “/omd/sites/lan/lib/python/cmk/special_agents/agent_elasticsearch.py”, line 76, in handle_request
response = requests.get(url, auth=(user, pwd))
File “/omd/sites/lan/local/lib/python/requests/api.py”, line 72, in get
return request(‘get’, url, params=params, **kwargs)
File “/omd/sites/lan/local/lib/python/requests/api.py”, line 58, in request
return session.request(method=method, url=url, **kwargs)
File “/omd/sites/lan/local/lib/python/requests/sessions.py”, line 508, in request
resp = self.send(prep, **send_kwargs)
File “/omd/sites/lan/local/lib/python/requests/sessions.py”, line 618, in send
r = adapter.send(request, **kwargs)
File “/omd/sites/lan/local/lib/python/requests/adapters.py”, line 506, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host=‘delzk10elstcv01.cds.testo’, port=9200): Max retries exceeded with url: /_cluster/health (Caused by SSLError(SSLError(“bad handshake: Error([(‘SSL routines’, ‘tls_process_server_certificate’, ‘certificate verify failed’)],)”,),))

da kommt weiterhin der error wenn ich den special agent im debug Modus aurufe auf der shell

Im WATO unter Global Options → Trusted certificate authorities for SSL
Ist im Endeffekt die einzige Stelle welche ich kenne :slight_smile:

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact @fayepal if you think this should be re-opened.