本阶段内容:续上篇,docker搭建blackbox
1、创建/home/blackbox 目录,并创建和编辑 config.conf文件,输入以下内容
modules:
http_2xx:
prober: http
http:
preferred_ip_protocol: "ip4"
http_post_2xx:
prober: http
http:
method: POST
tcp_connect:
prober: tcp
pop3s_banner:
prober: tcp
tcp:
query_response:
- expect: "^+OK"
tls: true
tls_config:
insecure_skip_verify: false
grpc:
prober: grpc
grpc:
tls: true
preferred_ip_protocol: "ip4"
grpc_plain:
prober: grpc
grpc:
tls: false
service: "service1"
ssh_banner:
prober: tcp
tcp:
query_response:
- expect: "^SSH-2.0-"
- send: "SSH-2.0-blackbox-ssh-check"
irc_banner:
prober: tcp
tcp:
query_response:
- send: "NICK prober"
- send: "USER prober prober prober :prober"
- expect: "PING :([^ ]+)"
send: "PONG ${1}"
- expect: "^:[^ ]+ 001"
icmp:
prober: icmp
icmp:
preferred_ip_protocol: "ipv4"
icmp6:
prober: icmp
icmp:
preferred_ip_protocol: "ipv6"
icmp_ttl5:
prober: icmp
timeout: 5s
icmp:
ttl: 5
仓库中的blackbox镜像与我的有所不同,因为我需要监控ipv4和ipv6双线程,所以我修改了icmp的模块,分成了icmp和icmp6,只要prometheus.yml文件中模块应用同时存在[icmp,icmp6],就能同时监控ipv4和ipv6地址。
2、添加好balckbox的配置文件之后,就可以创建blackbox的docker实例了
docker run -d -p 9115:9115 --network=host --name blackbox-exporter -v /home/blackbox/config.yml:/etc/blackbox_exporter/config.yml prom/blackbox-exporter
-v //通过该参数,你可以将宿主机上的目录或文件与容器中的目录或文件进行关联,使得容器可以访问这些宿主机上的内容。
--network=host //令容器的网络环境与宿主机一致,目的是监控目的ip是用宿主机本身的ip进行监控,避免用了docker的ip进行监控
docker ps -a 查看blackbox容器是否启动成功
blackbox容器创建成功之后可以用curl来验证blackbox是否已经搭建成功
curl http://ip:9115 //ip是blackbox的宿主机ip,如果是非host模式 ip则是blackbox docker内部地址
如果出现以下信息,则成功了
上篇中 prometheus.yml文件已经添加了需要被监控的ip地址,当blackbox搭建成功之后,已按照prometheus.yml文件中关联的blackbox地址成功建联,也就是已经开始对ip地址进行监控了,我们利用tcpdump工具进行抓包,看看是否按照我们的要求进行监控,应该是每秒对监控ip进行ping测。
从发包时间来看,确实是每秒对监控ip进行ping测,以上已经完成了prometheus+blackbox对监控ip进行ping测监控,后续只需要将prometheus添加进grafana进行可视化数据即可。