端口监听

收集指定端口是否被监听

插件文件地址
net.port.listen
插件类型
接受参数,重复执行

插件参数

参数 功能
port 希望监听的端口
name 可选 ,这个监控的名字,用来区分其他的端口监听监控 [1]
[1]port 也会放到 tags 里,所以 name 做成了可选的。 出于语义上的考虑,还是建议给一个名字,用名字来区分。

上报的监控值

net.port.listen
意义:指定的端口是否正在监听
取值:0 和 1,分别表示没有监听和在监听
Tags:{"port": " 指定的端口 ", "name": " 指定的监控名字 "}

监控规则样例

(def infra-redis-rules
  (sdo
    (where (host #"^redis-.+$")
      (plugin "net.port.listen" 30 {:port 6379 :name "redis-port"})

      (where (and (service "net.port.listen")
                  (= (:name event) "redis-port"))
        (by [:host :port]
          (judge (< 1)
            (runs 3 :state
              (alarm-every 2 :min
                (! {:note "Redis 端口不监听了"
                    :level 1
                    :expected 3
                    :groups [:operation :api]})))))))))