4. - Internal Use Only -
Openstack monitoring
Horizon dashboard
간단한 사용량 조회만 가능
자세한 성능 조회 불가능
자세한 로그 분석 불가능
Alerting 불가능
5. - Internal Use Only -
Openstack monitoring
The USE Method
utilization: the average time that the resource was busy servicing work
saturation: the degree to which the resource has extra work which it can't service,
often queued
errors: the count of error events
Ref : http://www.brendangregg.com/usemethod.html
6. - Internal Use Only -
Openstack monitoring
The USE Method
utilization: the average time that the resource was busy servicing work
얼마나 사용 했는가?(metric)
saturation: the degree to which the resource has extra work which it can't service,
often queued
부하가 얼마나 있는지 ? (metric)
errors: the count of error events
어떠한 에러가 있는지? (log)
Ref : http://www.brendangregg.com/usemethod.html
7. - Internal Use Only -
Openstack monitoring
metric
수치 정보
리소스 모니터링
어플리케이션 모니터링
Ex) Nagios, cacti, zabbix 등
log
행단위로 구분 되는 데이터
비정형 데이터
시스템 로그
어플리케이션 로그
Ex) Rsyslog, graylog, elastic stack 등
8. - Internal Use Only -
Openstack monitoring
RDBMS
(postgresql,mariadb)
Zabbix serverZabbix agent
Log, metric
User
agent node
Zabbix를 이용한 metric log 모니터링
Log,metric store,trigger
Log에대한 가시화 미지원
9. - Internal Use Only -
Openstack monitoring
RDBMS
(postgresql,mariadb)
Zabbix serverZabbix agent
metric
User
agent node
Elastic stack을 이용한 log 모니터링
Log에대한 가시화 지원
2개의 dashboard 를 이용하는데불편함
Elasticsearch
Filebeat Logstash
log
Kibana
10. - Internal Use Only -
Openstack monitoring
RDBMS
(postgresql,mariadb)
Zabbix serverZabbix agent
metric
User
agent node
Grafana를 이용한 통합 dashboard
Log,metric 정보 및 trigger 정보 통합 관리
Elasticsearch
Filebeat Logstash
log
Kibana
Grafana
11. - Internal Use Only -
Openstack monitoring(optionally)
Kibana
Elasticsearch
Grafana
Zabbix server
Zabbix agent
Filebeat Logstash
log
metric
User
agent node
Zabbix proxy
Redis
(Or kafka)
RDBMS
(postgresql,mariadb)
대용량 수집시 문제점
장애/비장애서 발생 되는 수많은 데이터를
효율적으로 store 하기 위해
redis, zabbix proxy를 통한 buffer 역할
12. - Internal Use Only -
Openstack monitoring
Kibana
Elasticsearch
beat
Logstash
분산형 RESTful 검색 및 분석 엔진
Easticsearch 데이터를 시각화
데이터 집계, 변환 및 Stash(보관)
특정 목적을 위한 데이터 수집기용 플랫폼
(로그파일,메트릭, 네트워크 패킷, 윈도우 로그 , Audit 등)
Alerting, X-Pack Monitoring , Reporting ,Machine LearningX-pack(유료)
Elastic stack
13. - Internal Use Only -
Openstack monitoring
Functionality Elastic Alternatives
Security X-Pack Security Sematext Cloud,SearchGuard, nginx
Alerting X-Pack Alerting Elastalert, Logagent
Reporting Skedler, Sentinl,
Machine Learning X-Pack Machine Learning Knowi
Ref: https://sematext.com/blog/x-pack-alternatives/
X-Pack Alternatives
X-pack 라이센스 문제로 대체 할 수 있는 오픈소스들이 제공 되고 있음
14. - Internal Use Only -
Openstack monitoring
X-Pack Alternatives
X-Pack 기능이 배포본에 기본 번들로 제공
모든 무료(basic) 기능은 기본적으로 포함 (2018년 3월 기준 6.2.2 Release)
https://www.elastic.co/blog/doubling-down-on-open
15. - Internal Use Only -
Openstack monitoring
Filebeat
정형화 되어 있지않는 로그를 logstash 로 전달만 하는 역할
Type을 추가 하여 output target 에서 해당 log를 구분
Filebeat 설정
16. - Internal Use Only -
Openstack monitoring
logstash
반정형 데이터를 받은 logstash가 grok filter로 파싱후
데이터를 각각 필드로 저장
17. - Internal Use Only -
Openstack monitoring
GROK pettern
Unstructured 된 로그 데이터를 structured하여 쿼리 가능한 형태로 변환
ships with 120+ petterns
Grok pettern 을 이용하여 Grok Debugger로 직접 구성 가능
18. - Internal Use Only -
Openstack monitoring
Kibana
각각의 필드를 이용하여 Kibana 데이터를 가시화
19. - Internal Use Only -
Openstack monitoring
Elastalert(X-Pack Alternatives)
ElastAlert 으로 특정 이벤트 noti 가능
Ref : https://github.com/Yelp/elastalert
20. - Internal Use Only -
Openstack monitoring
zabbix
Classic monitoring system
Server,proxy,agent
서버 모니터링에 필요한 Metric 정보 수집 해당
metric 기준으로 trigger 설정 및 Noti Action
설정을 통한 추가적이고 반복적인 작업 제공
Zabbix frontend
21. - Internal Use Only -
Openstack monitoring
Zabbix Item
모니터링할 Metric을 item으로 미리 지정 하여 ,특정 갱신 간격 마다 metric정보 요청
(active, passive 모드 선택가능)
22. - Internal Use Only -
Openstack monitoring
Zabbix trigger
간단한 형식으로 트리거 설정 후 다양한 미디어 타입을 이용 하여 noti
혹은 추가 action 설정을 통하여 자동화 가능
(ex, web page 접속 불가 -> 트리거 감지 -> 서비스 재시작 )
23. - Internal Use Only -
Openstack monitoring
Supported Data Sources
Elasticsearch
CloudWatch
InfluxDB
OpenTSDB
Prometheus
MySQL
Postgres
Zabbix
Grafana
다양한 형태의 데이터(log,metirc,시계열 데이터 등)을 가시화
24. - Internal Use Only -
Openstack monitoring
Grafana
Grafana (ES data)
lucene query 를 이용하여 import 시킨 ES 데이터를 가시화
25. - Internal Use Only -
Openstack monitoring
Grafana (zabbix data)
Zabbix metric 정보를 query 형태로 가시화
26. - Internal Use Only -
Openstack monitoring
Grafana alerting
다양한 형태의 data 를 임계치 설정 가능 (ES.zabbix data 지원 예정)
27. - Internal Use Only -
Openstack monitoring
Zabbix vulnerable point
모니터링 metric을 rdbms 를 통하여 Read/write
dbms 는 read 를 목적으로 만들어진것에 비하여 모니터링은 write가 대부분
https://www.slideshare.net/WhaTapIO/ss-77983778?ref=http://tech.whatap.io/2017/07/19/cloudmonitoring_performance/
Zabbix 공식 지원 database
Oracle
Postgresql
Mysql
db2
28. - Internal Use Only -
Openstack monitoring
Zabbix Elasticsearch as history storage(to be)
zabbix metric을 Elasticsearch 에 store
29. - Internal Use Only -
Openstack monitoring
Kibana
Elasticsearch
Grafana
Zabbix server
Zabbix agent
Filebeat Logstash
log
metric
User
agent node
Zabbix proxy
redis
RDBMS
(postgresql,mariadb)
store metric
Zabbix Elasticsearch as history storage(to be)
30. - Internal Use Only -
Openstack monitoring
Kibana
Elasticsearch
Grafana
Zabbix server
Zabbix agent
Filebeat Logstash
log
metric
User
agent node
Zabbix proxy
redis
RDBMS
(postgresql,mariadb)
Openstack Monitoring Architecture
Dashboard
monitoring
metric
noti
log
noti
31. - Internal Use Only -
DEMO
Ceph osd down 에따른 grafana , trigger작동
32. - Internal Use Only -
DEMO
Error log 발생에 따른 grafana 와 elastalert
지금 클라우드 팀에서 오픈스택을 패키지로 제공 하게되면 오픈스택을 사용 하는 관리자는 기본적로 호라이즌 대쉬보드를 통하여
관리를 하게 됩니다. 이 대쉬보드는 화면에 나와 있는것 처럼 인스턴스 생성이나, 기타 설정은 가능 하나 모니터링 부분이 매우 약합니다.
간단한 사용량 조회만 가능 하지만 자세한 성능헤 조회 로그 분석이 불가능 하여 결국에는 cli 환경에서 직접 찾아서 분석 해야 합니다.
또한 장애가 발생시 추가적인 노티기능이 없어서 서비스장애 시간이 길어 질 수 밖에 없으며 , 공유 자원을 사용 하는 오픈스택환경에서는 반드시
필요 합니다.
그렇기 때문에 모니터링은 오픈스택에서 반드시 있어야 하는 부분이라고 생각 합니다.
그러면 어떠한 데이터를 어떻게 모니터링 할지 생각 해볼 필요가 있습니다.
기본적으로 모니터링 할때 이야기 하는 use method 가 있습니다.
Utilization 활용 하고 있는 량 saturation 얼마나 포화 되어 있는지, 에어는 얼마나 어떻게 되는지
좀더 풀어서 이야기 하면 utilization 을 통하여 얼마나 사용 했는지 보고, saturation 통하여 부하가 엃마나 있는지 보고
에러는 어떻게 되는지
Redis 프록시를 통하여 모니터링 으로 인한 망 이슈도 어느정도 도움이 될 수 있음
패시브:서버 -> 에이전트 -> 서버
액티브: 에이전트 -> 서버
패시브는 zabbix_agentd.conf의 Server로 어느 곳에서 들어오는 서버 통신을 허가할지 설정
액티브 감시는 사실 1프로세스 1스레드로 움직이니 처리시간이 걸리는 유저 실행 파라미터 같은걸 우겨넣으면 데이터 지연이 발생