Este check utiliza el comando ping del sistema para comprobar la accesibilidad de un host.
También mide opcionalmente el tiempo de ida y vuelta de los mensajes enviados desde el check al host de destino.
El ping funciona enviando paquetes de solicitud de eco del Protocolo de mensajes de control de Internet (ICMP) al host de destino y esperando una respuesta de eco ICMP.
Este check utiliza el comando ping del sistema, en lugar de generar la solicitud de eco del ICMP, ya que la creación de un paquete ICMP requiere un socket sin procesar. La creación de sockets sin procesar requiere privilegios raíz que el Agent no tiene. El comando ping utiliza el marcador de acceso setuid
para ejecutarse con privilegios elevados y evitar este inconveniente.
**Nota para los usuarios de Windows **: Es posible que este check no funcione correctamente si el idioma del Windows instalado no está configurado en inglés.
Configuración
El check ping no está incluido en el paquete del Datadog Agent, por lo que es necesario instalarlo.
Instalación
Para versiones 7.21/6.21 o posteriores del Agent, sigue las siguientes instrucciones para instalar el check ping en tu host. Para instalarlo con el Agent Docker o versiones anteriores del Agent, consulta Uso de integraciones de la comunidad.
Ejecuta el siguiente comando para instalar la integración del Agent:
# Linux
sudo -u dd-agent -- datadog-agent integration install -t datadog-ping==<INTEGRATION_VERSION>
# Windows
agent.exe integration install -t datadog-ping==<INTEGRATION_VERSION>
Instala el binario ping
en función de tu sistema operativo. Por ejemplo, ejecuta el siguiente comando para Ubuntu:
apt-get install iputils-ping
Configura tu integración como si fuese una integración de base.
Configuración
Edita el archivo ping.d/conf.yaml
, que se encuentra en la carpeta conf.d/
en la raíz del directorio de configuración del Agent, para empezar a recopilar los datos de rendimiento de tu ping. Para conocer todas las opciones de configuración disponibles, consulta el ignite.d/conf.yaml de ejemplo.
Reinicia el Agent.
Validación
Ejecuta el subcomando de estado del Agent y busca ping
en la sección Checks.
Datos recopilados
Métricas
network.ping.response_time (gauge) | The response time of a given host and ping port, tagged with url, e.g. 'host:192.168.1.100'. Shown as millisecond |
network.ping.can_connect (gauge) | Value of 1 if the agent can successfully communicate with the target host, 0 otherwise |
Eventos
El check ping no incluye eventos.
Checks de servicio
network.ping.can_connect
Returns CRITICAL if the Agent cannot communicate with the target host. Returns OK if the ping is successful.
Statuses: ok, critical
Solucionar problemas
Error SubprocessOutputEmptyError: get_subprocess_output expected output but had none
Mientras ejecutas la integración del ping, puedes ver un error como el siguiente:
Traceback (most recent call last):
File "/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/base/checks/base.py", line 1006, in run
self.check(instance)
File "/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/ping/ping.py", line 65, in check
lines = self._exec_ping(timeout, host)
File "/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/ping/ping.py", line 48, in _exec_ping
lines, err, retcode = get_subprocess_output(
File "/opt/datadog-agent/embedded/lib/python3.8/site-packages/datadog_checks/base/utils/subprocess_output.py", line 56, in get_subprocess_output
out, err, returncode = subprocess_output(cmd_args, raise_on_empty_output, env=env)
_util.SubprocessOutputEmptyError: get_subprocess_output expected output but had none.
Debido a que la integración del ping no está incluida por defecto en el Agent, el binario ping
tampoco está incluido en el Agent. Para poder ejecutar la integración con éxito, debes instalar el binario ping
.
¿Necesitas ayuda? Ponte en contacto con el equipo de asistencia de Datadog.