Estoy intentando configurar el agente Check_MK con launchd en un servidor Mac, para devolver los datos a través del puerto 6556 cuando otra máquina se conecta a ella.
(El agente en sí mismo es esencialmente un script de shell que genera información diversa sobre el estado de la máquina en un formato vagamente legible por la máquina).
Puedo conectarme a él desde la propia máquina, por ejemplo. con curl localhost:6556
, pero si intento conectarme externamente, simplemente se apaga.
Tengo un archivo .plist configurado como el de de.mathias-kettner.check_mk.plist , almacenado en / Library / LaunchDaemon:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnvironmentVariables</key>
<dict>
<key>HOME</key>
<string>/var/root</string>
<key>PATH</key>
<string>/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin</string>
</dict>
<key>Label</key>
<string>de.mathias-kettner.check_mk</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/check_mk_agent</string>
</array>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>6556</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
<key>AbandonProcessGroup</key>
<true/>
<key>StandardErrorPath</key>
<string>/var/log/check_mk.err</string>
<key>WorkingDirectory</key>
<string>/var/root</string>
</dict>
</plist>
(La única diferencia es que el check_mk_agent es / usr / local / bin en lugar de / usr / bin, porque no pude crear el archivo allí).
El archivo check_mk_agent se puede encontrar en: check_mk_agent.macosx
Lo extraño es que si apunto el archivo .plist a algo como /bin/date
, entonces también funciona externamente.
Lo único que puedo concluir es que la tarea se ejecuta con diferentes permisos según la IP o la interfaz de la que proviene la conexión, pero no sé cómo cambiar los permisos con los que intenta ejecutarse.