--- apiVersion: monitoring.coreos.com/v1 kind: Probe metadata: name: mikrotik spec: bearerTokenSecret: name: mikrotik-exporter key: PROMETHEUS_BEARER_TOKEN prober: path: /metrics url: mikrotik-exporter targets: staticConfig: static: - router.mgmt.k-space.ee - sw_chaos.mgmt.k-space.ee - sw_poe.mgmt.k-space.ee - sw_mgmt.mgmt.k-space.ee - sw_core02.mgmt.k-space.ee - sw_cyber.mgmt.k-space.ee - sw_ha.mgmt.k-space.ee - sw_asocial.mgmt.k-space.ee - sw_kitchen.mgmt.k-space.ee - sw_core01.mgmt.k-space.ee --- apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: mikrotik spec: groups: - name: mikrotik rules: - alert: MikrotikUplinkRedundancyLost expr: mikrotik_interface_running{port=~"sfp-sfpplus[12]", instance!~"sw_core.*", instance!~"sw_mgmt.*"} == 0 for: 0m labels: severity: error annotations: summary: Switch uplink high availability lost description: One of the two 10Gb optical links is malfunctioning - alert: MikrotikLinkRateDegraded expr: mikrotik_interface_rate{port=~"sfp-sfpplus.*"} < 10000000000 for: 0m labels: severity: error annotations: summary: 10Gb link degraded description: One of the 10Gb links is running at lower speed --- apiVersion: apps/v1 kind: Deployment metadata: name: mikrotik-exporter spec: revisionHistoryLimit: 0 replicas: 2 selector: matchLabels: app: mikrotik-exporter template: metadata: labels: app: mikrotik-exporter annotations: co.elastic.logs/multiline.pattern: '^ ' co.elastic.logs/multiline.negate: "false" co.elastic.logs/multiline.match: after spec: containers: - name: mikrotik-exporter image: harbor.k-space.ee/k-space/mikrotik-exporter:latest env: - name: MIKROTIK_USER value: netpoller envFrom: - secretRef: name: mikrotik-exporter nodeSelector: dedicated: monitoring tolerations: - key: dedicated operator: Equal value: monitoring effect: NoSchedule affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - mikrotik-exporter topologyKey: "kubernetes.io/hostname" --- kind: Service apiVersion: v1 metadata: name: mikrotik-exporter spec: type: ClusterIP ports: - name: http port: 80 protocol: TCP targetPort: 3001 selector: app: mikrotik-exporter