Prometheus를 Docker로 만져보세요.



Prometheus (프로메테우스)

배경



그런 감시 그래프를 마우스 조작 메인으로 보고 싶은 사람을 위한 기사
감시 설계 등에 대해서는 언급하지 않았다.

Prometheus란?



오픈 소스 서비스 모니터링 시스템과 시계열 데이터베이스. 소위 감시 도구입니다.
개발 언어는 Go.

Prometheus는 일반적인 모니터링 도구처럼 데이터 수집, 숫자 표시, 그래프 표시 및 경고를 제공합니다. 뿐만 아니라 Prometheus는 독자적인 데이터 모델을 가지며 쿼리 언어를 사용하여 시계열 데이터를 평가하고 그래프화할 수 있습니다.

prometheus/prometheus

아키텍처





공식적으로 자세한 그림이 있습니다.
데이터는 왼쪽에서 가져오고 중간에서 처리하고 오른쪽에서 쿼리에 응답하여 시계열 데이터를 반환합니다. 같은 흐름입니다.
유저 통지는 세세하게 설정 가능하고 데이터량등으로 통지를 하고 있습니다.

환경



우선 동작 확인



프로메테우스의 Docker 이미지는 공개되어 있으므로 그쪽을 사용하겠습니다.
prom/prometheus

실행하기 전에 프로메테우스에 대한 yaml을 작성합니다.
다음은 자신을 감시 대상으로 한 yaml의 예입니다.
내용은 공식적으로 있는 것을 그대로 이용하고 있습니다.
htps : // p 뻗어 s. 이오/도 cs/p 어려워 s/아 st/게짱 g_s

prometheus.yml
global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'codelab-monitor'

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:9090']

위의 ymal을 컨테이너에 배치하도록 컨테이너를 시작합니다.
이것으로 Prometheus 시작이 완료됩니다.
$ docker run -d -p 9090:9090 -v prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

http://hostIP:9090 에 액세스하는 것만으로 동작을 확인할 수 있다.



grafana와 협력



docker-compose.yml
version: '2'
services:
  prometheus:
    image: prom/prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - '9090:9090'
  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"

상기를 작성해 docker-compose up -d 하면 기동한다.
그리고는``http://hostIP:3000 에 액세스하면 Grafna에 연결된다.
기본 ID/PW는 admin/admin입니다.
처음 로그인하면 비밀번호를 재설정하라는 메시지가 표시됩니다.



로그인 성공 화면



이번에는 아무것도 데이터를 볼 수 없습니다.
데이터 리소스 추가 옵션 필요한 정보를 입력합니다.
포트 번호는 docker-compose.yml에서 설정한 포트 번호를 선택합니다.



그리고는 쿼리를 작성하는 것만으로 데이터의 시각화를 즐길 수 있습니다.
시각화에서는 아래의 기사를 알기 쉽게 추천합니다.

Grafana로 굉장히 대시보드 만들게! (구축 · 설정편)

여기서 여러가지 사용하면 다음과 같이 됩니다.
설정에 관해서도 거의 마우스로 포치포치하는 것만으로 그것 같은 가시화를 할 수 있다.
쿼리에 대해서도 간단하고 약간의 아래 조사를 하면 곧바로 쓸 수 있다고 생각한다. (이번에는 인터넷에있는 것을 복사 한 것만)



요약



Promtheus 자체를 움직이는 것은 매우 간단합니다. 하지만 거기서 데이터의 활용이거나 수집/정형 등은 또 별도로 학습이 필요할 것 같다고 느꼈다. top 이나 dstat 를 사용하는 방법으로 메트릭스를 수집하는 것이 대부분이지만 그 이외의 훌륭한 방법을 일절 몰랐기 때문에 이것을 기회에 실무에 제안해 받아 가고 싶다.

감시 툴로서의 Zabbix나 Sensu, Nagios, Munin 등과는 감시의 대상이나 목적이 별 노선이기 때문에 벌써 운용으로 사용하고 있는 것과는 다른 생각이 필요해 각각과는 병용이 필요할 것 같다. (완전 이행의 방법도 있거나 술로서도 익숙해졌다는 의미라면 이행은 망설인다...)

감시 설계에 대해서는 별도로 살펴볼 필요가 있다.

참고 링크



htps // k의 w㎇d게. 사쿠라. 아 d. jp/12058/
htp : // bg. 세 rゔぇr을 rks. 이. jp / 테 ch / 2016/03/11 / p y yu thg 라후나 1 /
htps : // m / 너무 k / ms / f8f5 d845283c5915d2
htps //w w. s에서 멋지다. 네 t / すすせ r88 ~ f5b / p 뻗어 s-79183671

좋은 웹페이지 즐겨찾기