SlideShare a Scribd company logo
1 of 38
Download to read offline
Open Source Consulting
국내 최고의 오픈소스 전문기업
Private/Public Cloud | Data Center to Cloud | Atlassian
H. www.osci.kr T. 02-516-0711 F. 02-516-0722
서울특별시 강남구 테헤란로83길 32 나라키움삼성동A빌딩 5층
Copyright 2019 Open Source Consulting Inc. All rights reserved.
이 영주
Prometheus
2019.04.17
Contents 01. Prometheus?
02. Usage
03. Alertmanager
04. Cluster
05. Performance
01. Prometheus?
01. Prometheus?
• Prometheus?
⚫ 2012년 SoundCloud에서 몇몇의 개발자와 함께 시작.
⚫ 2016년 CNCF(Cloud Native Computing Foundation)의 두번 째 Memb
er.
⚫ PromQL이라는 자체언어를 이용해서 빠르게 검색가능.
⚫ Kubernates의 모니터링에 많이 쓰이게 되면서 각광받게 됨.
⚫ 초당 수백만 쿼리를 수행 할 수 있게 디자인 됨.
⚫ 기존 Monitoring system보다 성능이 월등히 좋음.
⚫ Openstack, AWS, Azure, GCE등 거의 모든 Platform 모니터링 가능.
01. Prometheus?
• Prometheus?
01. Prometheus?
• Monitoring?
• Alerting
⚫ 일이 잘못 되었을 때 사람에게 알리는 것.
⚫ E-mail, Slack, ...
• Debugging
⚫ 문제원인을 파악 하는 것.
• Trending
⚫ 사용량을 예측하여 계획에 반영.
01. Prometheus?
• Categories of Monitoring
• Profiling
⚫ tcpdump ...
• Tracing
⚫ OpenZipkin, Jaeger ...
• Logging
⚫ elasticsearch, Graylog
• Metric
⚫ Prometheus, Zabbix
01. Prometheus?
• Prometheus Architecture
Target을 찾아서
자동으로 등록!!
push 방식 간접구현
(App이 여기에
metric을 push)
Prometheus가
이해할 수 있는
format으로 바꿔줌.
사람에게 알림을
보내주는 역할
Graph를
그리는 역할
다른 Prometheus의
metric도 가져올 수 있음
Prometheus Federation
02. Usage
02. Usage
• Running Prometheus
[root@yj26-ovstest3 prometheus]# wget 
> https://github.com/prometheus/prometheus/releases/download/v2.9.1/prometheus-2.9.1.linux-amd64.tar.gz
--2019-04-18 13:22:50-- https://github.com/prometheus/prometheus/releases/download/v2.9.1/prometheus-2.9.1...
...
[root@yj26-ovstest3 prometheus]# tar xvzf prometheus-2.9.1.linux-amd64.tar.gz
prometheus-2.9.1.linux-amd64/
prometheus-2.9.1.linux-amd64/consoles/
...
[root@yj26-ovstest3 prometheus]# cd prometheus-2.9.1.linux-amd64/
[root@yj26-ovstest3 prometheus-2.9.1.linux-amd64]# grep -iv '^$|^#|^[[:space:]]*#' prometheus.yml
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
[root@yj26-ovstest3 prometheus-2.9.1.linux-amd64]#
Binary download!
Decompression
Self monitoring
02. Usage
• Running Prometheus
Prometheus start!
Listen address!
02. Usage
• Running Node-exporter
[root@yj26-ovstest3 temp]# wget 
> https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
[root@yj26-ovstest3 temp]# tar xvzf node_exporter-0.17.0.linux-amd64.tar.gz
[root@yj26-ovstest3 temp]# cd node_exporter-0.17.0.linux-amd64/
[root@yj26-ovstest3 node_exporter-0.17.0.linux-amd64]# ./node_exporter
...
INFO[0000] - uname source="node_exporter.go:97"
INFO[0000] - vmstat source="node_exporter.go:97"
INFO[0000] - xfs source="node_exporter.go:97"
INFO[0000] - zfs source="node_exporter.go:97"
INFO[0000] Listening on :9100 source="node_exporter.go:111"
기본설정 port 9100
02. Usage
• Running Node-exporter
[root@yj26-ovstest3 prometheus-2.9.1.linux-amd64]# grep -iv '^$|^#|[[:space:]]*#' prometheus.yml
global:
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node3'
static_configs:
- targets: ['localhost:9100']
[root@yj26-ovstest3 prometheus-2.9.1.linux-amd64]# ps aux |grep -i prometheus
root 12286 0.0 2.2 157280 41652 pts/1 Sl+ 13:41 0:04 ./prometheus
root 12520 0.0 0.0 116812 1032 pts/3 S+ 15:25 0:00 grep --color=auto -i prometheus
[root@yj26-ovstest3 prometheus-2.9.1.linux-amd64]# kill -SIGHUP 12286
Log ...
... caller=main.go:724 msg="Loading configuration file" filename=prometheus.yml
... caller=main.go:751 msg="Completed loading of configuration file" filename=prometheus.yml
node exporter target
추가!!
1번 시그널을 보내서
config reload!!
Config reload 성공!!
02. Usage
• Scraping
[root@yj26-ovstest3 ~]# curl localhost:9090/metrics |head -n 20
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 41814 0 41814 0 0 5023k 0 --:--:-- --:--:-- --:--:-- 5833k
# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 1.2143e-05
go_gc_duration_seconds{quantile="0.25"} 2.9441e-05
go_gc_duration_seconds{quantile="0.5"} 9.6832e-05
go_gc_duration_seconds{quantile="0.75"} 0.000199094
go_gc_duration_seconds{quantile="1"} 0.000424251
go_gc_duration_seconds_sum 0.000761761
go_gc_duration_seconds_count 5
# HELP go_goroutines Number of goroutines that currently exist.
# TYPE go_goroutines gauge
go_goroutines 38
# HELP go_info Information about the Go environment.
# TYPE go_info gauge
go_info{version="go1.12.4"} 1
# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use.
# TYPE go_memstats_alloc_bytes gauge
go_memstats_alloc_bytes 1.385236e+07
# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed.
# TYPE go_memstats_alloc_bytes_total counter
[root@yj26-ovstest3 ~]#
Metric name
Label
Time series
go_gc_duration_seconds의
Cardinality는 7
Metric Type
Description of metric
02. Usage
• PromQL
Internal Fuction
Time series name
Selector
Range
Sample
Instant vector
Access URL
Metric name
kvm2 를 제외한 node의 eth0에서
3분동안 수신한 traffic byte 총량의
1초당 평균 변화량 = Network 사용률
02. Usage
• PromQL
02. Usage
• Grafana
03. Alertmanager
03. Alertmanager
• Alertmanager Architecture
03. Alertmanager
• Running Alertmanager
[root@yj26-ovstest3 alertmanager]# wget 
> https://github.com/prometheus/alertmanager/releases/download/v0.16.2/alertmanager-0.16.2.linux-amd64.tar.gz
[root@yj26-ovstest3 alertmanager]# cd alertmanager-0.16.2.linux-amd64/
[root@yj26-ovstest3 alertmanager-0.16.2.linux-amd64]# grep -iv '^$|^#|^[[:space:]]*#' alertmanager.yml
route:
group_by: [Alertname]
receiver: email-me
receivers:
- name: email-me
email_configs:
- to: leeyj7141@gmail.com
from: leeyj7141@gmail.com
smarthost: smtp.gmail.com:587
auth_username: "leeyj7141@gmail.com"
auth_identity: "leeyj7141@gmail.com"
auth_password: "xxxxxxxxxxxxxxxxxx"
[root@yj26-ovstest3 alertmanager-0.16.2.linux-amd64]# ./alertmanager
... caller=main.go:177 msg="Starting Alertmanager" version="(version=0.16.2, branch=HEAD, revision=308b7620642dc147794e6686a3f94d1b6fc8ef4d
... caller=main.go:178 build_context="(go=go1.11.6, user=root@1e9a48272b38, date=20190405-12:27:40)"
... caller=cluster.go:161 component=cluster msg="setting advertise address explicitly" addr=10.26.1.13 port=9094
... caller=cluster.go:632 component=cluster msg="Waiting for gossip to settle..." interval=2s
... caller=main.go:334 msg="Loading configuration file" file=alertmanager.yml
... caller=main.go:428 msg=Listening address=:9093
... caller=cluster.go:657 component=cluster msg="gossip not settled" polls=0 before=0 now=1 elapsed=2.000210783s
... caller=cluster.go:649 component=cluster msg="gossip settled; proceeding" elapsed=10.001438416s
Google App
password
03. Alertmanager
• Running Alertmanager
[root@yj26-ovstest3 ~]# grep -iv '^$|^#|^[[:space:]]*#' 
> prometheus/prometheus-2.9.1.linux-amd64/prometheus.yml
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
rule_files:
- rules.yml
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node3'
static_configs:
- targets: ['localhost:9100']
[root@yj26-ovstest3 ~]# grep -iv '^$|^#|^[[:space:]]*#' ~/prometheus/prometheus-2.9.1.linux-amd64/rules.yml
groups:
- name: example
rules:
- alert: InstanceDown
expr: up{instance="localhost:9100",job="node3"} == 0
for: 1m
[root@yj26-ovstest3 ~]#
[root@yj26-ovstest3 ~]# ps aux |grep -i prometheus
root 12286 0.0 2.3 157424 44836 pts/1 Sl+ 13:41 0:10 ./prometheus
[root@yj26-ovstest3 ~]# kill -1 12286
Alertmanager
위치
아까 추가한
node-exporter
03. Alertmanager
• Running Alertmanager
[root@yj26-ovstest3 ~]# pkill node_exporter
[root@yj26-ovstest3 ~]# ps aux |grep -i node
root 12838 0.0 0.0 116812 1028 pts/2 S+ 17:34 0:00 grep --color=auto -i node
[root@yj26-ovstest3 ~]#
03. Alertmanager
• Running Alertmanager
03. Alertmanager
• Running Alertmanager
03. Alertmanager
• Running Alertmanager
04. Cluster
04. Cluster
• Monitoring Server가 죽으면 어쩌지???
동일한 역할을 하는
Prometheus를 추가!
04. Cluster
• Alertmanager가 죽으면???
Gossip network가 끊어지면 ??
알림을 두개씩 받는다.
하나도 못받는거 보단 나음.
05. Performance
05. Performance
• Hardware
⚫ 1개의 Sample을 압축 하면 약 1.3 bytes 정도의 storage 소모
⚫ 기본설정 15일간의 data를 남기고 초당 10만 sample을 저장한다고 한다면 Storag
e 약 240GB 정도 소모
⚫ 초당 10만 sample정도 처리하는데 CPU 약 0.25개 정도 소모.
⚫ Query, Recording rule, Go gabege collection 까지 생각하면 +1 개
⚫ CPU는 1.25개면 충분!
⚫ 초당 10만 sample정도에 Memory는 약 8GB면 충분.
⚫ Prometheus는 scrap 시 압축을 해서 받기에 1개의 sample당 Network ba
ndwidth 20 bytes 정도 소모
⚫ 초당 10만 sample을 처리하는데 Network bandwidth는 약 16Mbps 소
모.
Node exporter 1개 약 3000 Time series
Node 100대
기본 15초에 1번씩 scrap
= 20000/s
05. Performance
• Reducing Cardinality
Cardinality가 높은 순으로
metric을 나열한 것.
05. Performance
• Recording rule
[root@yj26-ovstest1 prometheus-2.8.1.linux-amd64]# grep -iv '^$|^#|[[:space:]]*#' rules.yml
groups:
- name: node
rules:
- record: job:node_cpu_seconds_total:rate3m
expr: >
100 - (avg by (instance) (rate(node_cpu_seconds_total{job="node",mode="idle"}[3m])) * 100)
[root@yj26-ovstest1 prometheus-2.8.1.linux-amd64]#
CPU 사용률 계산식
05. Performance
• Recording rule
05. Performance
• Recording rule
05. Performance
• Target이 너무 많아졌을때는???
05. Performance
• Target이 너무 많아 졌을때는??? Horizontal Sharding!!
Thank you.

More Related Content

What's hot

Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Henning Jacobs
 
ECS+Locust로 부하 테스트 진행하기
ECS+Locust로 부하 테스트 진행하기ECS+Locust로 부하 테스트 진행하기
ECS+Locust로 부하 테스트 진행하기Yungon Park
 
Best practices for ansible
Best practices for ansibleBest practices for ansible
Best practices for ansibleGeorge Shuklin
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축철구 김
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020Ji-Woong Choi
 
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021Amazon Web Services Korea
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기SeungYong Oh
 
[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)용호 최
 
Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonWindows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonSeungmo Koo
 
[AWSKRUG 컨테이너 소모임] Rancher 기본 입문
[AWSKRUG 컨테이너 소모임] Rancher 기본 입문[AWSKRUG 컨테이너 소모임] Rancher 기본 입문
[AWSKRUG 컨테이너 소모임] Rancher 기본 입문Hyunmin Kim
 
ksqlDB로 시작하는 스트림 프로세싱
ksqlDB로 시작하는 스트림 프로세싱ksqlDB로 시작하는 스트림 프로세싱
ksqlDB로 시작하는 스트림 프로세싱confluent
 
[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용NAVER D2
 
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개OpenStack Korea Community
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentationKumar Y
 
[오픈소스컨설팅]openstack_monitoring_session
[오픈소스컨설팅]openstack_monitoring_session[오픈소스컨설팅]openstack_monitoring_session
[오픈소스컨설팅]openstack_monitoring_sessionChanyeol yoon
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기NAVER D2
 
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법Young D
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우IMQA
 
Understanding of Apache kafka metrics for monitoring
Understanding of Apache kafka metrics for monitoring Understanding of Apache kafka metrics for monitoring
Understanding of Apache kafka metrics for monitoring SANG WON PARK
 

What's hot (20)

Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
 
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
Optimizing Kubernetes Resource Requests/Limits for Cost-Efficiency and Latenc...
 
ECS+Locust로 부하 테스트 진행하기
ECS+Locust로 부하 테스트 진행하기ECS+Locust로 부하 테스트 진행하기
ECS+Locust로 부하 테스트 진행하기
 
Best practices for ansible
Best practices for ansibleBest practices for ansible
Best practices for ansible
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020[오픈소스컨설팅] 스카우터 사용자 가이드 2020
[오픈소스컨설팅] 스카우터 사용자 가이드 2020
 
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
AWS를 활용해서 글로벌 게임 런칭하기 - 박진성 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)
 
Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonWindows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance Comparison
 
[AWSKRUG 컨테이너 소모임] Rancher 기본 입문
[AWSKRUG 컨테이너 소모임] Rancher 기본 입문[AWSKRUG 컨테이너 소모임] Rancher 기본 입문
[AWSKRUG 컨테이너 소모임] Rancher 기본 입문
 
ksqlDB로 시작하는 스트림 프로세싱
ksqlDB로 시작하는 스트림 프로세싱ksqlDB로 시작하는 스트림 프로세싱
ksqlDB로 시작하는 스트림 프로세싱
 
[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용[1A7]Ansible의이해와활용
[1A7]Ansible의이해와활용
 
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
[OpenInfra Days Korea 2018] (Track 2) Neutron LBaaS 어디까지 왔니? - Octavia 소개
 
Ansible presentation
Ansible presentationAnsible presentation
Ansible presentation
 
[오픈소스컨설팅]openstack_monitoring_session
[오픈소스컨설팅]openstack_monitoring_session[오픈소스컨설팅]openstack_monitoring_session
[오픈소스컨설팅]openstack_monitoring_session
 
[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기[234]멀티테넌트 하둡 클러스터 운영 경험기
[234]멀티테넌트 하둡 클러스터 운영 경험기
 
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
HAProxy TCP 모드에서 내부 서버로 Source IP 전달 방법
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우
 
Understanding of Apache kafka metrics for monitoring
Understanding of Apache kafka metrics for monitoring Understanding of Apache kafka metrics for monitoring
Understanding of Apache kafka metrics for monitoring
 

Similar to [오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기

Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Brian Brazil
 
From nothing to Prometheus : one year after
From nothing to Prometheus : one year afterFrom nothing to Prometheus : one year after
From nothing to Prometheus : one year afterAntoine Leroyer
 
Containers with systemd-nspawn
Containers with systemd-nspawnContainers with systemd-nspawn
Containers with systemd-nspawnGábor Nyers
 
Prometheus - Intro, CNCF, TSDB,PromQL,Grafana
Prometheus - Intro, CNCF, TSDB,PromQL,GrafanaPrometheus - Intro, CNCF, TSDB,PromQL,Grafana
Prometheus - Intro, CNCF, TSDB,PromQL,GrafanaSridhar Kumar N
 
Monitoring using Prometheus and Grafana
Monitoring using Prometheus and GrafanaMonitoring using Prometheus and Grafana
Monitoring using Prometheus and GrafanaArvind Kumar G.S
 
Trying and evaluating the new features of GlusterFS 3.5
Trying and evaluating the new features of GlusterFS 3.5Trying and evaluating the new features of GlusterFS 3.5
Trying and evaluating the new features of GlusterFS 3.5Keisuke Takahashi
 
Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)Brian Brazil
 
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataMonitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataGetInData
 
Monitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapMonitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapPadraig O'Sullivan
 
26.1.7 lab snort and firewall rules
26.1.7 lab   snort and firewall rules26.1.7 lab   snort and firewall rules
26.1.7 lab snort and firewall rulesFreddy Buenaño
 
Honeypots: Visão Geral
Honeypots: Visão GeralHoneypots: Visão Geral
Honeypots: Visão Geralbernardo_mr
 
Dockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and NovaDockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and Novaclayton_oneill
 
Prometheus: A Next Generation Monitoring System (FOSDEM 2016)
Prometheus: A Next Generation Monitoring System (FOSDEM 2016)Prometheus: A Next Generation Monitoring System (FOSDEM 2016)
Prometheus: A Next Generation Monitoring System (FOSDEM 2016)Brian Brazil
 
Interview questions
Interview questionsInterview questions
Interview questionsxavier john
 

Similar to [오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기 (20)

Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)
 
From nothing to Prometheus : one year after
From nothing to Prometheus : one year afterFrom nothing to Prometheus : one year after
From nothing to Prometheus : one year after
 
Docker Monitoring Webinar
Docker Monitoring  WebinarDocker Monitoring  Webinar
Docker Monitoring Webinar
 
AEO Training - 2023.pdf
AEO Training - 2023.pdfAEO Training - 2023.pdf
AEO Training - 2023.pdf
 
Containers with systemd-nspawn
Containers with systemd-nspawnContainers with systemd-nspawn
Containers with systemd-nspawn
 
Lxbrand
LxbrandLxbrand
Lxbrand
 
Prometheus - Intro, CNCF, TSDB,PromQL,Grafana
Prometheus - Intro, CNCF, TSDB,PromQL,GrafanaPrometheus - Intro, CNCF, TSDB,PromQL,Grafana
Prometheus - Intro, CNCF, TSDB,PromQL,Grafana
 
System monitoring
System monitoringSystem monitoring
System monitoring
 
Monitoring using Prometheus and Grafana
Monitoring using Prometheus and GrafanaMonitoring using Prometheus and Grafana
Monitoring using Prometheus and Grafana
 
Wissbi osdc pdf
Wissbi osdc pdfWissbi osdc pdf
Wissbi osdc pdf
 
Trying and evaluating the new features of GlusterFS 3.5
Trying and evaluating the new features of GlusterFS 3.5Trying and evaluating the new features of GlusterFS 3.5
Trying and evaluating the new features of GlusterFS 3.5
 
Backtrack Manual Part8
Backtrack Manual Part8Backtrack Manual Part8
Backtrack Manual Part8
 
Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)
 
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInDataMonitoring in Big Data Platform - Albert Lewandowski, GetInData
Monitoring in Big Data Platform - Albert Lewandowski, GetInData
 
Monitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTapMonitoring MySQL with DTrace/SystemTap
Monitoring MySQL with DTrace/SystemTap
 
26.1.7 lab snort and firewall rules
26.1.7 lab   snort and firewall rules26.1.7 lab   snort and firewall rules
26.1.7 lab snort and firewall rules
 
Honeypots: Visão Geral
Honeypots: Visão GeralHoneypots: Visão Geral
Honeypots: Visão Geral
 
Dockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and NovaDockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and Nova
 
Prometheus: A Next Generation Monitoring System (FOSDEM 2016)
Prometheus: A Next Generation Monitoring System (FOSDEM 2016)Prometheus: A Next Generation Monitoring System (FOSDEM 2016)
Prometheus: A Next Generation Monitoring System (FOSDEM 2016)
 
Interview questions
Interview questionsInterview questions
Interview questions
 

More from Ji-Woong Choi

[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기Ji-Woong Choi
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략Ji-Woong Choi
 
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기Ji-Woong Choi
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3Ji-Woong Choi
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3Ji-Woong Choi
 
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12Ji-Woong Choi
 
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트Ji-Woong Choi
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong Choi
 
OpenStack Summit 2017 참석후기
OpenStack Summit 2017 참석후기OpenStack Summit 2017 참석후기
OpenStack Summit 2017 참석후기Ji-Woong Choi
 
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick GuideJi-Woong Choi
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1Ji-Woong Choi
 
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-RegionJi-Woong Choi
 
Docker Setting for Static IP allocation
Docker Setting for Static IP allocationDocker Setting for Static IP allocation
Docker Setting for Static IP allocationJi-Woong Choi
 
Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Ji-Woong Choi
 
[오픈소스컨설팅]Atlassian JIRA Quick Guide
[오픈소스컨설팅]Atlassian JIRA Quick Guide[오픈소스컨설팅]Atlassian JIRA Quick Guide
[오픈소스컨설팅]Atlassian JIRA Quick GuideJi-Woong Choi
 
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편Ji-Woong Choi
 
[오픈소스컨설팅]systemd on RHEL7
[오픈소스컨설팅]systemd on RHEL7[오픈소스컨설팅]systemd on RHEL7
[오픈소스컨설팅]systemd on RHEL7Ji-Woong Choi
 
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning 클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning Ji-Woong Choi
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)Ji-Woong Choi
 

More from Ji-Woong Choi (20)

[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
[오픈소스컨설팅] 오픈소스 기반 솔루션 방향성 잡기
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략[오픈소스컨설팅] 2019년 클라우드 생존전략
[오픈소스컨설팅] 2019년 클라우드 생존전략
 
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
[오픈소스컨설팅] AWS re:Invent 2018 기계학습(ML)부분 후기
 
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
[오픈소스컨설팅]Docker기초 실습 교육 20181113_v3
 
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
[오픈소스컨설팅] 아파치톰캣 운영가이드 v1.3
 
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
[오픈소스컨설팅]ELK기반 장애예방시스템_구성_2016.12
 
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
[오픈소스컨설팅] Docker를 활용한 Gitlab CI/CD 구성 테스트
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
 
OpenStack Summit 2017 참석후기
OpenStack Summit 2017 참석후기OpenStack Summit 2017 참석후기
OpenStack Summit 2017 참석후기
 
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
 
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
[오픈소스컨설팅] Open Stack Ceph, Neutron, HA, Multi-Region
 
Docker Setting for Static IP allocation
Docker Setting for Static IP allocationDocker Setting for Static IP allocation
Docker Setting for Static IP allocation
 
Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드Scouter와 influx db – grafana 연동 가이드
Scouter와 influx db – grafana 연동 가이드
 
[오픈소스컨설팅]Atlassian JIRA Quick Guide
[오픈소스컨설팅]Atlassian JIRA Quick Guide[오픈소스컨설팅]Atlassian JIRA Quick Guide
[오픈소스컨설팅]Atlassian JIRA Quick Guide
 
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
[오픈소스컨설팅]레드햇계열리눅스7 운영자가이드 - 기초편
 
[오픈소스컨설팅]systemd on RHEL7
[오픈소스컨설팅]systemd on RHEL7[오픈소스컨설팅]systemd on RHEL7
[오픈소스컨설팅]systemd on RHEL7
 
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning 클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
클라우드 컴퓨팅 기반 기술과 오픈스택(Kvm) 기반 Provisioning
 
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
[오픈소스컨설팅]Scouter 설치 및 사용가이드(JBoss)
 

Recently uploaded

Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 

Recently uploaded (20)

Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 

[오픈소스컨설팅] 프로메테우스 모니터링 살펴보고 구성하기

  • 1. Open Source Consulting 국내 최고의 오픈소스 전문기업 Private/Public Cloud | Data Center to Cloud | Atlassian H. www.osci.kr T. 02-516-0711 F. 02-516-0722 서울특별시 강남구 테헤란로83길 32 나라키움삼성동A빌딩 5층 Copyright 2019 Open Source Consulting Inc. All rights reserved.
  • 3. Contents 01. Prometheus? 02. Usage 03. Alertmanager 04. Cluster 05. Performance
  • 5. 01. Prometheus? • Prometheus? ⚫ 2012년 SoundCloud에서 몇몇의 개발자와 함께 시작. ⚫ 2016년 CNCF(Cloud Native Computing Foundation)의 두번 째 Memb er. ⚫ PromQL이라는 자체언어를 이용해서 빠르게 검색가능. ⚫ Kubernates의 모니터링에 많이 쓰이게 되면서 각광받게 됨. ⚫ 초당 수백만 쿼리를 수행 할 수 있게 디자인 됨. ⚫ 기존 Monitoring system보다 성능이 월등히 좋음. ⚫ Openstack, AWS, Azure, GCE등 거의 모든 Platform 모니터링 가능.
  • 7. 01. Prometheus? • Monitoring? • Alerting ⚫ 일이 잘못 되었을 때 사람에게 알리는 것. ⚫ E-mail, Slack, ... • Debugging ⚫ 문제원인을 파악 하는 것. • Trending ⚫ 사용량을 예측하여 계획에 반영.
  • 8. 01. Prometheus? • Categories of Monitoring • Profiling ⚫ tcpdump ... • Tracing ⚫ OpenZipkin, Jaeger ... • Logging ⚫ elasticsearch, Graylog • Metric ⚫ Prometheus, Zabbix
  • 9. 01. Prometheus? • Prometheus Architecture Target을 찾아서 자동으로 등록!! push 방식 간접구현 (App이 여기에 metric을 push) Prometheus가 이해할 수 있는 format으로 바꿔줌. 사람에게 알림을 보내주는 역할 Graph를 그리는 역할 다른 Prometheus의 metric도 가져올 수 있음 Prometheus Federation
  • 11. 02. Usage • Running Prometheus [root@yj26-ovstest3 prometheus]# wget > https://github.com/prometheus/prometheus/releases/download/v2.9.1/prometheus-2.9.1.linux-amd64.tar.gz --2019-04-18 13:22:50-- https://github.com/prometheus/prometheus/releases/download/v2.9.1/prometheus-2.9.1... ... [root@yj26-ovstest3 prometheus]# tar xvzf prometheus-2.9.1.linux-amd64.tar.gz prometheus-2.9.1.linux-amd64/ prometheus-2.9.1.linux-amd64/consoles/ ... [root@yj26-ovstest3 prometheus]# cd prometheus-2.9.1.linux-amd64/ [root@yj26-ovstest3 prometheus-2.9.1.linux-amd64]# grep -iv '^$|^#|^[[:space:]]*#' prometheus.yml global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. alerting: alertmanagers: - static_configs: - targets: rule_files: scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] [root@yj26-ovstest3 prometheus-2.9.1.linux-amd64]# Binary download! Decompression Self monitoring
  • 12. 02. Usage • Running Prometheus Prometheus start! Listen address!
  • 13. 02. Usage • Running Node-exporter [root@yj26-ovstest3 temp]# wget > https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz [root@yj26-ovstest3 temp]# tar xvzf node_exporter-0.17.0.linux-amd64.tar.gz [root@yj26-ovstest3 temp]# cd node_exporter-0.17.0.linux-amd64/ [root@yj26-ovstest3 node_exporter-0.17.0.linux-amd64]# ./node_exporter ... INFO[0000] - uname source="node_exporter.go:97" INFO[0000] - vmstat source="node_exporter.go:97" INFO[0000] - xfs source="node_exporter.go:97" INFO[0000] - zfs source="node_exporter.go:97" INFO[0000] Listening on :9100 source="node_exporter.go:111" 기본설정 port 9100
  • 14. 02. Usage • Running Node-exporter [root@yj26-ovstest3 prometheus-2.9.1.linux-amd64]# grep -iv '^$|^#|[[:space:]]*#' prometheus.yml global: alerting: alertmanagers: - static_configs: - targets: rule_files: scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node3' static_configs: - targets: ['localhost:9100'] [root@yj26-ovstest3 prometheus-2.9.1.linux-amd64]# ps aux |grep -i prometheus root 12286 0.0 2.2 157280 41652 pts/1 Sl+ 13:41 0:04 ./prometheus root 12520 0.0 0.0 116812 1032 pts/3 S+ 15:25 0:00 grep --color=auto -i prometheus [root@yj26-ovstest3 prometheus-2.9.1.linux-amd64]# kill -SIGHUP 12286 Log ... ... caller=main.go:724 msg="Loading configuration file" filename=prometheus.yml ... caller=main.go:751 msg="Completed loading of configuration file" filename=prometheus.yml node exporter target 추가!! 1번 시그널을 보내서 config reload!! Config reload 성공!!
  • 15. 02. Usage • Scraping [root@yj26-ovstest3 ~]# curl localhost:9090/metrics |head -n 20 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 41814 0 41814 0 0 5023k 0 --:--:-- --:--:-- --:--:-- 5833k # HELP go_gc_duration_seconds A summary of the GC invocation durations. # TYPE go_gc_duration_seconds summary go_gc_duration_seconds{quantile="0"} 1.2143e-05 go_gc_duration_seconds{quantile="0.25"} 2.9441e-05 go_gc_duration_seconds{quantile="0.5"} 9.6832e-05 go_gc_duration_seconds{quantile="0.75"} 0.000199094 go_gc_duration_seconds{quantile="1"} 0.000424251 go_gc_duration_seconds_sum 0.000761761 go_gc_duration_seconds_count 5 # HELP go_goroutines Number of goroutines that currently exist. # TYPE go_goroutines gauge go_goroutines 38 # HELP go_info Information about the Go environment. # TYPE go_info gauge go_info{version="go1.12.4"} 1 # HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. # TYPE go_memstats_alloc_bytes gauge go_memstats_alloc_bytes 1.385236e+07 # HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. # TYPE go_memstats_alloc_bytes_total counter [root@yj26-ovstest3 ~]# Metric name Label Time series go_gc_duration_seconds의 Cardinality는 7 Metric Type Description of metric
  • 16. 02. Usage • PromQL Internal Fuction Time series name Selector Range Sample Instant vector Access URL Metric name kvm2 를 제외한 node의 eth0에서 3분동안 수신한 traffic byte 총량의 1초당 평균 변화량 = Network 사용률
  • 21. 03. Alertmanager • Running Alertmanager [root@yj26-ovstest3 alertmanager]# wget > https://github.com/prometheus/alertmanager/releases/download/v0.16.2/alertmanager-0.16.2.linux-amd64.tar.gz [root@yj26-ovstest3 alertmanager]# cd alertmanager-0.16.2.linux-amd64/ [root@yj26-ovstest3 alertmanager-0.16.2.linux-amd64]# grep -iv '^$|^#|^[[:space:]]*#' alertmanager.yml route: group_by: [Alertname] receiver: email-me receivers: - name: email-me email_configs: - to: leeyj7141@gmail.com from: leeyj7141@gmail.com smarthost: smtp.gmail.com:587 auth_username: "leeyj7141@gmail.com" auth_identity: "leeyj7141@gmail.com" auth_password: "xxxxxxxxxxxxxxxxxx" [root@yj26-ovstest3 alertmanager-0.16.2.linux-amd64]# ./alertmanager ... caller=main.go:177 msg="Starting Alertmanager" version="(version=0.16.2, branch=HEAD, revision=308b7620642dc147794e6686a3f94d1b6fc8ef4d ... caller=main.go:178 build_context="(go=go1.11.6, user=root@1e9a48272b38, date=20190405-12:27:40)" ... caller=cluster.go:161 component=cluster msg="setting advertise address explicitly" addr=10.26.1.13 port=9094 ... caller=cluster.go:632 component=cluster msg="Waiting for gossip to settle..." interval=2s ... caller=main.go:334 msg="Loading configuration file" file=alertmanager.yml ... caller=main.go:428 msg=Listening address=:9093 ... caller=cluster.go:657 component=cluster msg="gossip not settled" polls=0 before=0 now=1 elapsed=2.000210783s ... caller=cluster.go:649 component=cluster msg="gossip settled; proceeding" elapsed=10.001438416s Google App password
  • 22. 03. Alertmanager • Running Alertmanager [root@yj26-ovstest3 ~]# grep -iv '^$|^#|^[[:space:]]*#' > prometheus/prometheus-2.9.1.linux-amd64/prometheus.yml global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. alerting: alertmanagers: - static_configs: - targets: - localhost:9093 rule_files: - rules.yml scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'node3' static_configs: - targets: ['localhost:9100'] [root@yj26-ovstest3 ~]# grep -iv '^$|^#|^[[:space:]]*#' ~/prometheus/prometheus-2.9.1.linux-amd64/rules.yml groups: - name: example rules: - alert: InstanceDown expr: up{instance="localhost:9100",job="node3"} == 0 for: 1m [root@yj26-ovstest3 ~]# [root@yj26-ovstest3 ~]# ps aux |grep -i prometheus root 12286 0.0 2.3 157424 44836 pts/1 Sl+ 13:41 0:10 ./prometheus [root@yj26-ovstest3 ~]# kill -1 12286 Alertmanager 위치 아까 추가한 node-exporter
  • 23. 03. Alertmanager • Running Alertmanager [root@yj26-ovstest3 ~]# pkill node_exporter [root@yj26-ovstest3 ~]# ps aux |grep -i node root 12838 0.0 0.0 116812 1028 pts/2 S+ 17:34 0:00 grep --color=auto -i node [root@yj26-ovstest3 ~]#
  • 28. 04. Cluster • Monitoring Server가 죽으면 어쩌지??? 동일한 역할을 하는 Prometheus를 추가!
  • 29. 04. Cluster • Alertmanager가 죽으면??? Gossip network가 끊어지면 ?? 알림을 두개씩 받는다. 하나도 못받는거 보단 나음.
  • 31. 05. Performance • Hardware ⚫ 1개의 Sample을 압축 하면 약 1.3 bytes 정도의 storage 소모 ⚫ 기본설정 15일간의 data를 남기고 초당 10만 sample을 저장한다고 한다면 Storag e 약 240GB 정도 소모 ⚫ 초당 10만 sample정도 처리하는데 CPU 약 0.25개 정도 소모. ⚫ Query, Recording rule, Go gabege collection 까지 생각하면 +1 개 ⚫ CPU는 1.25개면 충분! ⚫ 초당 10만 sample정도에 Memory는 약 8GB면 충분. ⚫ Prometheus는 scrap 시 압축을 해서 받기에 1개의 sample당 Network ba ndwidth 20 bytes 정도 소모 ⚫ 초당 10만 sample을 처리하는데 Network bandwidth는 약 16Mbps 소 모. Node exporter 1개 약 3000 Time series Node 100대 기본 15초에 1번씩 scrap = 20000/s
  • 32. 05. Performance • Reducing Cardinality Cardinality가 높은 순으로 metric을 나열한 것.
  • 33. 05. Performance • Recording rule [root@yj26-ovstest1 prometheus-2.8.1.linux-amd64]# grep -iv '^$|^#|[[:space:]]*#' rules.yml groups: - name: node rules: - record: job:node_cpu_seconds_total:rate3m expr: > 100 - (avg by (instance) (rate(node_cpu_seconds_total{job="node",mode="idle"}[3m])) * 100) [root@yj26-ovstest1 prometheus-2.8.1.linux-amd64]# CPU 사용률 계산식
  • 36. 05. Performance • Target이 너무 많아졌을때는???
  • 37. 05. Performance • Target이 너무 많아 졌을때는??? Horizontal Sharding!!