Integraciones
Configuración en YAML
La configuración de equipos, comprobaciones y reglas de métricas se puede exportar a un fichero YAML y volver a cargar. Sirve para guardarla en git, montar otra instalación o cambiar muchas cosas a la vez con un editor.
curl -k -b cookies.txt https://atalaya.lan/api/v1/config/export > atalaya.yaml
curl -k -b cookies.txt --data-binary @atalaya.yaml https://atalaya.lan/api/v1/config/import/check
curl -k -b cookies.txt --data-binary @atalaya.yaml https://atalaya.lan/api/v1/config/import
(La sesión se abre como en la API. Hace falta ser administrador.) El primer comando guarda el fichero; el segundo solo dice qué haría; el tercero lo aplica.
version: 1
hosts:
- name: router
address: 192.168.1.1
tags: [red]
checks:
- name: ping
type: icmp
params: {count: 3}
presence: true
- name: nas
address: 192.168.1.10
parent: router
addresses:
- address: 192.168.1.11
checks:
- name: web
type: http
params: {url: "https://{address}:5001/", verify_tls: false}
interval_s: 60
- name: disco
type: ssh
params: {credential: clave-atalaya, user: atalaya, command: "df --output=pcent / | tail -1 | tr -d ' %'", warn: 85, crit: 95}
rules:
- name: Disco casi lleno
metric: disk.used_pct
op: ">"
threshold: 90
for_minutes: 10
severity: warning
- Todo se identifica por nombre: un equipo, una comprobación dentro de un equipo o una regla que ya existe se actualiza; la que no existe se crea. Nunca se borra nada que no esté en el fichero.
satellitesolo sale si el equipo se asignó a mano: el nombre del equipo del satélite que lo vigila ocentral. Sin él, lo decide la subred.parentes el nombre del equipo del que depende. Las comprobaciones que usan una credencial la nombran (credential); la credencial debe existir ya, porque las credenciales no se exportan.- No se exportan canales de aviso, credenciales ni usuarios, porque llevan secretos: se configuran desde la web.
- Un error en un equipo o una comprobación no impide aplicar el resto; la respuesta lista lo hecho y los errores.
Métricas para Prometheus
GET /metrics devuelve el estado en el formato de texto de Prometheus: atalaya_host_up, atalaya_host_status, atalaya_check_status y atalaya_check_value (0 bien, 1 aviso, 2 crítico, 3 sin datos), atalaya_alerts_firing, atalaya_satellite_up y atalaya_satellite_hosts (satélites) y atalaya_metric (las últimas muestras del agente y de SNMP: CPU, memoria, discos, tráfico…, con el nombre de la métrica en la etiqueta metric). Se autentica con un token de cualquier alcance; para Prometheus:
scrape_configs:
- job_name: atalaya
scheme: https
tls_config: {insecure_skip_verify: true}
authorization: {credentials: "TOKEN"}
static_configs: [{targets: ["atalaya.lan"]}]