Prometheus의 추천 - blackbox_exporter로 사활 모니터링을 시도하십시오 -
15079 단어 Ansibleblackbox_exporterprometheus
blackbox exporter란 무엇인가.
지금까지의 expoter는 감시 대상의 서버에 도입해 Prometheus 서버로부터 Pull해 메트릭스를 취득하고 있었습니다.
이 경우 ICMP(ping) 감시나 URL 감시에 대해서는 어떻게 부딪쳐도 할 수 없습니다.
그것을 해결해주는 것이 "blackbox exporter"입니다.
외형 감시를 해 주는 expoter이므로, Prometheus 서버에 도입해 움직입니다. (다른 서버에서도 괜찮습니다)
공식 - Download
GitHub - prometheus/blackbox_exporter
도입(ansible)
node_exporter도 ansible을 사용하여 도입하여 서비스 등록까지 했으므로 그것을 기반으로 yml을 만듭니다.
blackbox-exporter.yml---
- hosts: samplehost
user: sampleuser
sudo: yes
tasks:
- name: check exist file
stat:
path: /usr/bin/blackbox_exporter
register: file
- name: wget blackbox_exporter
get_url:
url: https://github.com/prometheus/blackbox_exporter/releases/download/v0.12.0/blackbox_exporter-0.12.0.linux-amd64.tar.gz
dest: /tmp/blackbox_exporter-0.12.0.linux-amd64.tar.gz
- name: unarchive blackbox-exporter
unarchive:
src: /tmp/blackbox_exporter-0.12.0.linux-amd64.tar.gz
remote_src: yes
dest: /tmp/
- name: copy exporter binary
shell: cp /tmp/blackbox_exporter-0.12.0.linux-amd64/blackbox_exporter /usr/bin/blackbox_exporter
when: not file.stat.exists
- name: add system account prometheus
user:
system: yes
name: prometheus
state: present
home: /var/lib/prometheus
shell: /bin/false
comment: Prometheus daemon
- name: create prometheus home directory
file:
state: directory
path: /var/lib/prometheus
mode: 0755
group: prometheus
owner: prometheus
- name: create blackbox_exporter systemd
blockinfile:
path: /etc/systemd/system/blackbox_exporter.service
create: yes
block: |
[Unit]
Description=black_exporter for Prometheus
[Service]
Restart=always
User=prometheus
ExecStart=/usr/bin/blackbox_exporter \
--web.listen-address=0.0.0.0:9115 \
--config.file=/usr/local/blackbox_exporter/blackbox.yml
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20s
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
- name: add blackbox_exporter systemd
systemd:
name: blackbox_exporter.service
enabled: yes
state: started
- name: setup icmp
shell: setcap cap_net_raw+ep /usr/local/blackbox_exporter/blackbox_exporter
blackbox_exporter 설정
기본적으로 다음과 같습니다. 아직 조사하지 않았으므로 우선 기본값으로 두십시오.
blackbox.ymlmodules:
http_2xx:
prober: http
http:
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
ssh_banner:
prober: tcp
tcp:
query_response:
- expect: "^SSH-2.0-"
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
Prometheus 측 설정
어디에 대해 어떤 프로토콜에 대한 설정은 scrape_configs에 설명하는 것 같습니다.
Prometheus와 Blackbox Exporter에서 서버 사활 모니터링
내용은 상기를 파크리 참고로 했습니다. (고맙습니다!)
글쎄, 커스텀하는 것은 무엇인가 확인하고 나서입니다.
ICMP 사용 시 설정
file_sd로 관리하는 것이 좋을 것 같습니다.
prometheus.yml(발췌)scrape_configs:
- job_name: "Blackbox_ICMP"
metrics_path: /probe
params:
module: [icmp]
file_sd_configs:
- files:
- /usr/local/prometheus-2.3.1/filesd/ICMP.yml
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115 # blackbox_exporterのIP:Port(今回はPrometheusサーバ自身なので127.0.0.1)
/usr/local/prometheus-2.3.1/filesd/ICMP.yml- targets:
- XXXXX01
- XXXXXXX01
labels:
project: XXXXXT
- targets:
- 13.XXX.XXX.234
labels:
instance: XX-XXXXX18
project: XXXXXXXXAI
확인
설정이 끝나면 서비스를 다시 시작하고 우선 Targets에 나와 있는지 확인.
targets가 복수라고 어떻게 되는지 확인.
경고를 설정합니다.
이상!
Prometheus 과거 기사
Prometheus의 추천 - 초기 도입 -
Prometheus 추천 - Service Discovery -
Prometheus의 추천 - exporter 도입 node-exporter(apt-get) -
Prometheus의 추천 - exporter 도입 node-exporter(바이너리) -
Prometheus의 추천 - Service Discovery - EndPoint가 'http://:9100/metrics'가 되어 자신이 되어 버리는 건
Prometheus의 추천 - Grafana에서 모니터링 할 사용자 목록을 원합니다 -
Prometheus의 추천 - Grafana에서 Alert를 Teams에 알리는 것은 간단합니다.
Reference
이 문제에 관하여(Prometheus의 추천 - blackbox_exporter로 사활 모니터링을 시도하십시오 -), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nekoneck/items/626bb663760d4f4a3322
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
---
- hosts: samplehost
user: sampleuser
sudo: yes
tasks:
- name: check exist file
stat:
path: /usr/bin/blackbox_exporter
register: file
- name: wget blackbox_exporter
get_url:
url: https://github.com/prometheus/blackbox_exporter/releases/download/v0.12.0/blackbox_exporter-0.12.0.linux-amd64.tar.gz
dest: /tmp/blackbox_exporter-0.12.0.linux-amd64.tar.gz
- name: unarchive blackbox-exporter
unarchive:
src: /tmp/blackbox_exporter-0.12.0.linux-amd64.tar.gz
remote_src: yes
dest: /tmp/
- name: copy exporter binary
shell: cp /tmp/blackbox_exporter-0.12.0.linux-amd64/blackbox_exporter /usr/bin/blackbox_exporter
when: not file.stat.exists
- name: add system account prometheus
user:
system: yes
name: prometheus
state: present
home: /var/lib/prometheus
shell: /bin/false
comment: Prometheus daemon
- name: create prometheus home directory
file:
state: directory
path: /var/lib/prometheus
mode: 0755
group: prometheus
owner: prometheus
- name: create blackbox_exporter systemd
blockinfile:
path: /etc/systemd/system/blackbox_exporter.service
create: yes
block: |
[Unit]
Description=black_exporter for Prometheus
[Service]
Restart=always
User=prometheus
ExecStart=/usr/bin/blackbox_exporter \
--web.listen-address=0.0.0.0:9115 \
--config.file=/usr/local/blackbox_exporter/blackbox.yml
ExecReload=/bin/kill -HUP $MAINPID
TimeoutStopSec=20s
SendSIGKILL=no
[Install]
WantedBy=multi-user.target
- name: add blackbox_exporter systemd
systemd:
name: blackbox_exporter.service
enabled: yes
state: started
- name: setup icmp
shell: setcap cap_net_raw+ep /usr/local/blackbox_exporter/blackbox_exporter
modules:
http_2xx:
prober: http
http:
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
ssh_banner:
prober: tcp
tcp:
query_response:
- expect: "^SSH-2.0-"
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
scrape_configs:
- job_name: "Blackbox_ICMP"
metrics_path: /probe
params:
module: [icmp]
file_sd_configs:
- files:
- /usr/local/prometheus-2.3.1/filesd/ICMP.yml
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9115 # blackbox_exporterのIP:Port(今回はPrometheusサーバ自身なので127.0.0.1)
- targets:
- XXXXX01
- XXXXXXX01
labels:
project: XXXXXT
- targets:
- 13.XXX.XXX.234
labels:
instance: XX-XXXXX18
project: XXXXXXXXAI
Reference
이 문제에 관하여(Prometheus의 추천 - blackbox_exporter로 사활 모니터링을 시도하십시오 -), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nekoneck/items/626bb663760d4f4a3322텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)