You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// ES: Du hast durchgehend "Datenquellenprogramm" geschrieben, sollten wir den Begriff im Dictionary noch mal diskutieren? Habe jetzt erstmal alle Verwendungen an den aktuell bevorzugten Begriff "Datenquellprogramm" angeglichen.
17
16
18
17
[#intro]
19
18
== Einleitung
@@ -66,6 +65,7 @@ Falls Sie eine reguläre Agentenausgabe einfach auf anderen Wegen übertragen wo
66
65
Und schließlich können Sie jedes Datenquellprogramm -- wenn denn einmal eine bessere Konfigurierbarkeit erforderlich sein sollte -- in einen xref:devel_special_agents#[Spezialagenten umwandeln].
{CMK} usually accesses monitored hosts in the xref:glossar#pull_mode[pull mode] via a TCP connection to port 6556.
21
22
Starting with version {v21}, in most cases the Agent Controller listens on this port, which forwards the agent output over a TLS encrypted connection.
22
23
{CMK}{v22} introduced the alternative option for selecting the transmission direction with the xref:glossar#push_mode[push mode].
23
24
24
-
There are environments however--for example, stripped-down containers, legacy or embedded systems--in which the Agent Controller cannot be used.
25
+
There are environments however--for example, stripped-down containers, legacy or embedded systems--in which the Agent Controller cannot be used.
25
26
In such cases the _legacy mode_ is applied in which `(x)inetd` executes the agent script after establishing a connection, the agent output is transferred as plain text and the connection is closed immediately after.
26
27
27
28
In many situations security policies could require that actions such as the transmission of data as plain text must be avoided.
@@ -32,11 +33,11 @@ The universal methods for connecting such transfer procedures to {CMK} are the _
32
33
The idea is very simple:
33
34
you pass a command to {CMK}.
34
35
Instead of connecting to port 6556, {CMK} executes this command.
35
-
This produces the agent data on the _standard output_, which is then processed by {CMK} in exactly the same way as if it had come from a ‘normal’ agent.
36
+
This produces the agent data on the _standard output_, which is then processed by {CMK} in exactly the same way as if it had come from a 'normal' agent.
36
37
Since changes to data sources usually only affect transports, it is important that you leave the host to [.guihint]#API integrations if configured, else {CMK} agent# in the xref:hosts_setup#monitoring_agents[Setup GUI].
37
38
38
39
The modularity of {CMK} helps you to fulfill these requirements by transmitting the plain text agent output over arbitrary means of transport.
39
-
Ultimately, the plain text output of the agent script can be transported by any means--direct or indirect, pull or push.
40
+
Ultimately, the plain text output of the agent script can be transported by any means--direct or indirect, pull or push.
40
41
Here are a few examples on how to get agent data to the {CMK} server:
41
42
42
43
* via email
@@ -47,11 +48,60 @@ Here are a few examples on how to get agent data to the {CMK} server:
47
48
48
49
Another area of application for data source programs are systems that do not allow agent installation but issue status data via REST API or a Telnet interface.
49
50
In such cases, you can write a data source program that queries the existing interface and generates agent output from the data obtained.
51
+
// delete to here
52
+
53
+
// start translation
54
+
////
55
+
Der {CMK}-Server erreicht Hosts im xref:glossar#pull_mode[Pull-Modus] üblicherweise über eine TCP-Verbindung auf Port 6556.
56
+
Unter Linux und Windows lauscht auf diesem Port in den meisten Fällen der Agent Controller, welcher die Agentenausgabe über eine TLS-verschlüsselte Verbindung weiterleitet.
57
+
In {CE} ist mit dem xref:glossar#push_mode[Push-Modus] die zusätzliche Möglichkeit vorhanden, die Übertragungsrichtung zu wählen.
58
+
59
+
Es gibt jedoch Umgebungen, in denen der Agent Controller nicht verwendet werden kann.
60
+
Im _Legacy-Modus_ kommt hier ein `inetd` zum Einsatz, der bei jeder Anfrage das Agentenskript ausführt, die Ausgabe im Klartext überträgt und dann die Verbindung wieder schließt.
61
+
In vielen Fällen verlangen Sicherheitsrichtlinien den Verzicht auf eine Übertragung von Daten im Klartext oder die Verwendung vorhandener Kommunikationskanäle.
62
+
So kann ein Angreifer zwar mit den Füllständen von Dateisystemen meist wenig anfangen, aber Prozesstabellen oder Listen von anstehenden Sicherheitsupdates können helfen, Angriffe zielgerichtet vorzubereiten.
63
+
64
+
Die universelle Methode, um beliebige Transportwege an {CMK} anzudocken, sind die Datenquellprogramme (_data source programs_).
65
+
Die Idee ist sehr einfach:
66
+
Sie übergeben dem {CMK}-Server einen Befehl, mit dem Agentendaten eingeholt werden sollen.
67
+
Statt den zu überwachenden Host auf Port 6556 zu kontaktieren, führt {CMK} diesen Befehl aus.
68
+
{CMK} erwartet bei der Ausführung des Befehls Agentendaten auf der _Standardausgabe_.
69
+
Die weitere Verarbeitung erfolgt, als stammten die Agentendaten von einem „normalen“ Agenten.
70
+
Da Datenquellen wie Agentenaufrufe behandelt werden, ist es wichtig, dass Sie per Datenquellprogramm überwachte Hosts in der xref:hosts_setup#monitoring_agents[Setup-GUI] mit der Einstellung [.guihint]#API integrations if configured, else {CMK} agent# oder [.guihint]#Configured API integrations and {CMK} agent# versehen.
71
+
72
+
Letztlich kann die Klartextausgabe des Agentenskripts über beliebige Wege transportiert werden -- direkt oder indirekt, per Pull oder Push.
73
+
Hier sind einige Beispiele, mit denen {CMK}-Anwender Daten vom Agenten zum {CMK}-Server bekommen:
74
+
75
+
* per E-Mail
76
+
* per HTTP-Zugriff vom Server aus
77
+
* per HTTP-Upload vom Host aus
78
+
* per Zugriff auf eine Datei, die per `rsync` oder `scp` vom Host zum Server kopiert wurde
79
+
* per Skript, welches die Daten per HTTP von einem Webdienst abholt
80
+
* per xref:agent_linux_legacy#ssh[Agentenaufruf via SSH-Tunnel]
81
+
82
+
.Wann sollte ich Datenquellprogramme einsetzen, wann Spezialagenten?
83
+
[%collapsible]
84
+
====
85
+
Datenquellprogramme und xref:special_agents#[Spezialagenten] sind eng miteinander verwandt.
86
+
Letztlich sind Spezialagenten als Evolution von Datenquellprogrammen zu betrachten.
87
+
Spezialagenten wurden zunächst genutzt, um Datenquellprogramme besser konfigurierbar zu machen.
88
+
89
+
Heute liefern Spezialagenten in der Regel eigene Agentensektionen und werden mit eigenen Check-Plugins kombiniert.
90
+
In der Praxis relevant ist, dass einem Host nur ein Datenquellprogramm zugeordnet sein kann, aber seit {CMK}{v24} beliebig viele Spezialagenten.
91
+
Auch können Spezialagenten die reguläre Agentenausgabe ergänzen, ein Datenquellprogramm ersetzt sie hingegen.
92
+
93
+
Wenn Sie also beispielsweise über eine REST-API Daten einholen können, die zusätzlich zur regulären Agentenausgabe einen Nutzen im Monitoring haben, müssen Sie einen Spezialagenten verwenden.
94
+
Falls Sie eine reguläre Agentenausgabe einfach auf anderen Wegen übertragen wollen, sind Datenquellprogramme der richtige Weg.
95
+
Und schließlich können Sie jedes Datenquellprogramm -- wenn denn einmal eine bessere Konfigurierbarkeit erforderlich sein sollte -- in einen xref:devel_special_agents#[Spezialagenten umwandeln].
96
+
====
97
+
////
98
+
// end translation
50
99
51
100
52
101
[#writing]
53
102
== Writing data source programs
54
103
104
+
[#minimalexample]
55
105
=== The simplest possible program
56
106
57
107
The writing and installation of a data source program is not difficult.
@@ -81,7 +131,7 @@ Don't forget to make the program executable:
81
131
82
132
Now create a test host in the Setup – e.g., `myserver125`.
83
133
This does not require an IP address.
84
-
In order to avoid {CMK} attempting to resolve `myserver125` via DNS, enter this name as an explicit ‘IP address’.
134
+
In order to avoid {CMK} attempting to resolve `myserver125` via DNS, set [.guihint]#IP address family# to [.guihint]#No IP#.
85
135
86
136
Next add a rule in the [.guihint]#Setup > Agents > Other integrations > Individual program call instead of agent access# rule set which applies to this host, and enter `myds` as an executable program:
87
137
@@ -95,6 +145,7 @@ Add this service into the monitoring, activate the changes, and your first data
95
145
For a test, as soon as you alter the data being generated by the program the `My_Disk` file system's next check will immediately show this.
96
146
97
147
148
+
[#diagnosis]
98
149
=== Error diagnosis
99
150
100
151
If something is not functioning correctly, the host's configuration can be checked by entering `cmk -D` in the command line and see if your rule takes effect:
0 commit comments