Ejecutando una Mac mini con aplicación de servidor. (El Capitán 10.11.4 y Server.app 5.1)
Instalé Xcode, brew y nrpe a través de brew. Funciona bien como tal. No es sensato tener un escritorio remoto e iniciar sesión solo para que el monitoreo esté en funcionamiento. Dado que FileVault está activo, iniciar sesión automáticamente no es una opción.
¿Cómo hago que nrpe se inicie si la máquina se reinicia sin interacción?
EDIT1: OK, no pude encontrar una manera fácil de hacer que esto funcione; así que deshabilité Filevault después de una breve discusión con el equipo. Pero en el arranque (y con un inicio de sesión automático) nrpe todavía no se inicia automáticamente...
Citando http://launchd.info :
UserName
clave) cuando la máquina arranca.Sin embargo, la clave (sin juego de palabras) es que los plists colocados en /Library/LaunchDaemons/
deben ser propiedad de root:wheel
y deben ser chmod 644
.
Entonces, solo porque nrpe
crea un plist no significa que se ejecutará en el arranque sin iniciar sesión.
Lo instalé brew
yo mismo, y al final dice:
To have launchd start nrpe at login:
ln -sfv /usr/local/opt/nrpe/*.plist ~/Library/LaunchAgents
Then to load nrpe now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.nrpe.plist
Te recomendaría que hicieras esto, en su lugar:
chmod 644 /usr/local/opt/nrpe/homebrew.mxcl.nrpe.plist
sudo chown root:wheel /usr/local/opt/nrpe/homebrew.mxcl.nrpe.plist
sudo ln /usr/local/opt/nrpe/homebrew.mxcl.nrpe.plist /Library/LaunchDaemons/homebrew.mxcl.nrpe.plist
La primera línea se asegura de que los permisos sean correctos.
La segunda línea se asegura de que la propiedad sea correcta.
La tercera/última línea vincula el archivo desde /usr/local/opt/nrpe/ a /Library/LaunchDaemons (tenga en cuenta la ausencia de un ~
que es intencional).
Luego, debe asegurarse de que el archivo no exista en ~/LaunchAgents, lo que sería confuso:
rm -f "$HOME/Library/LaunchAgents/homebrew.mxcl.nrpe.plist"
Eso eliminará el archivo (si existe).
Al colocar el archivo, /Library/LaunchDaemons
se le indicará nrpe
que se ejecute como root
. Eso puede estar bien, o puede ser una muy mala idea. No sé la respuesta a esa pregunta. Sin embargo, para estar seguro, haría que se ejecutara explícitamente como un usuario que no fuera root, a menos que estuviera absolutamente seguro. Además, usaría launchd
la capacidad de registrar errores para ver si funciona bien.
Para hacer esto, deberá editar el plist mencionado anteriormente. Aquí está el archivo tal como se creó originalmente, a partir del 20/04/2016:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.nrpe.agent</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/nrpe</string>
<string>-c</string>
<string>/usr/local/etc/nrpe.cfg</string>
<string>-d</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceDescription</key>
<string>Homebrew NRPE Agent</string>
<key>Debug</key>
<true/>
</dict>
</plist>
y aquí está la versión que recomendaría:
<?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>Debug</key>
<true/>
<key>GroupName</key>
<string>staff</string>
<key>InitGroups</key>
<true/>
<key>Label</key>
<string>org.nrpe.agent</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/nrpe</string>
<string>-c</string>
<string>/usr/local/etc/nrpe.cfg</string>
<string>-d</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceDescription</key>
<string>Homebrew NRPE Agent</string>
<key>StandardErrorPath</key>
<string>/tmp/org.nrpe.agent.stderr.log</string>
<key>StandardOutPath</key>
<string>/tmp/org.nrpe.agent.stdout.log</string>
<key>UserName</key>
<string>INSERTUSERNAMEHERE</string>
</dict>
</plist>
Reemplace INSERTUSERNAMEHERE
con el nombre de usuario real del usuario nrpe
con el que desea ejecutar.
Tenga en cuenta que, de acuerdo con LaunchControl (que es la mejor aplicación que existe para administrar plists de lanzamiento), la Debug
clave está obsoleta para OS X 10.10 y se ignorará.
Una vez que tenga el archivo en su lugar, la mejor manera de probarlo será reiniciar el sistema y NO iniciar sesión en la consola. En su lugar, una vez que se complete el proceso de arranque, inicie sesión a través de ssh
y asegúrese de que el proceso se está ejecutando, y verifique los dos archivos de registro para ver qué ve allí, si es que ve algo.
Espero que esto ayude.
pd: gaste $ 10 en LaunchControl . Es una gran aplicación. No hay un código de registro, por lo que no tiene que pagarlo, pero debería hacerlo porque el desarrollador confía en usted si usa la aplicación.
bmike
tintineo
bmike
security
binario y almacenar cosas allí o automatizar las cosas conexpect
?tintineo