[Grafana] Grafana에서 AWS의 예약 인스턴스(RI)를 모니터링해 보았다.
최근 개발에도 손을 내기 시작한 전 인프라의 jkkitakita.
우선
뭔가 쓰고 싶은 충동에 몰렸기 때문에
조금 전에, 놀이 감각으로 하고 있던 것을 괴로워.
소개
얼마든지 이하의 지식이 있으면 좋을지도.
다양한 서비스 버전
배경
특히 3.가 중대하다.
「매월 1회, EC2의 화면을 보고, 하루에 걸쳐 확인한다」
운영으로 커버는 우선 논외입니다.
그 외, 열심히 하려고 하면
- Cost Visualizer 도입
htps : // v. smt. 아무도. 네. jp/? p=코몬_파게&p_나메=코 st_ゔぃ스아아제r
- 엑셀 등으로 매일 편집
어쨌든 이야기가되어, 그것은 그래서 비용과 노력이 든다.
어쨌든, 이것도 나쁘다. 귀찮아. (웃음)
멘도 쿠사나 - 멘도 쿠사이 -
보소 보소 말하면서, 문득
"이제 서버 동향 모니터링
telegraf + influxdb + Grafana에서 할 수 있기 때문에
RI도 거기에 넣어 대시보드로 버려! ! ! ! "
그래서
급히, telegraf + bash로 갈 수 있었기 때문에
telegraf 설정 시작 (` · ω · ') 키리
telegraf 설정해보기
우선, conf에 input.exec를 추기.
/etc/telegraf/telegraf.conf
# EC2
[[inputs.exec]]
command = "/etc/telegraf/telegraf.d/exec/count-instances"
data_format = "influx"
interval = "3600s"
[[inputs.exec]]
command = "/etc/telegraf/telegraf.d/exec/reserved_instance.sh"
data_format = "influx"
interval = "3600s"
# RDS
[[inputs.exec]]
command = "/etc/telegraf/telegraf.d/exec/rds_reserved_nodes.sh"
data_format = "influx"
interval = "3600s"
# Redshift
[[inputs.exec]]
command = "/etc/telegraf/telegraf.d/exec/redshift_reserved_nodes.sh"
data_format = "influx"
interval = "3600s"
그리고는, bash를 조금 쓸 뿐.
■ EC2
1. 전체(온디맨드 및 예약) 수
/etc/telegraf/telegraf.d/exec/count-instances.sh
#!/bin/bash
### check instance status is running
/usr/bin/aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" |
jq -r '[ .Reservations[] | .Instances[] | { InstanceType } ]| group_by(.InstanceType) | .
[]|.[0] + { "Count": length}| .InstanceType, .Count'|sed 'N;s/\n/ value=/'|sed 's/^/instan
ces,instance_type=/'
2. 예약 수
/etc/telegraf/telegraf.d/exec/reserved_instance.sh
#!/bin/bash
/usr/bin/aws ec2 describe-reserved-instances --filters "Name=state,Values=active" | jq -r
'.ReservedInstances[] | [.InstanceType, .AvailabilityZone, (.InstanceCount|tostring), .End
] | join(",")' | sed 's/T.*//g' | awk -F, '{print "reserved_instances,instance_type=" $1 "
,AvailabilityZone=" $2 ",end_date=" $4 " RI_count=" $3}' | sed 's/=,/=-,/g'
■ RDS
· 전체 (온 디맨드 및 예약) 및 예약 수
/etc/telegraf/telegraf.d/exec/rds_reserved_nodes.sh
#!/bin/bash
# count of rds db instaces group by instance_type
/usr/bin/aws rds describe-db-instances --output json | jq -r '[.DBInstances[] | { DBInstan
ceClass }] | group_by(.DBInstanceClass) | .[] | .[0] + { "Count": length } | [.DBInstanceC
lass, (.Count|tostring)] | join(",")' | sed 's/^/rds_db_instances,db_instance_type=/g'| aw
k -F, '{print $1 "," $2 " values=" $3}'
# count of reserved rds db instances group by instance_type
/usr/bin/aws rds describe-reserved-db-instances --output json | jq -r '.ReservedDBInstance
s[] | select(.State == "active") | [.DBInstanceClass, (.DBInstanceCount|tostring), .StartT
ime] | join(",")' | sed -E 's/^(.*T.*)\..*$/\1/g' | awk -F, '{print "rds_reserved_instance
s,db_instance_type=" $1 ",start_time=" $3 " RI_count=" $2}'
■ Redshift(dc1.large 전용)
· 전체 (온 디맨드 및 예약) 및 예약 수
/etc/telegraf/telegraf.d/exec/redshift_reserved_nodes.sh
#!/bin/bash
# count of redshift nodes
/usr/bin/aws redshift describe-clusters --output json | jq -r '[.Clusters[] | select(.Node
Type == "dc1.large") | .NumberOfNodes] | add' | sed 's/^/redshift_cluster_nodes,node_type=
dc1.large values=/g'
# count of reserved redshift nodes
/usr/bin/aws redshift describe-reserved-nodes --output json | jq -r '.ReservedNodes[] | se
lect(.State == "active") | [.NodeType, (.NodeCount|tostring), .StartTime] | join(",")' | s
ed -E 's/^(.*T.*)\..*$/\1/g' | awk -F, '{print "redshift_reserved_nodes,node_type=" $1 ",s
tart_time=" $3 " RI_count=" $2}'
jq, sed, awk로 원 라이너로 밀어. (웃음)
더 좋은 느낌이 들겠지만
아무튼 일단 현상, 이런 느낌으로 갈 수 있을 것 같다.
telegraf 재시작.
/etc/init.d/telegraf restart
InfluxDB의 내용 확인해 본다.
우선, 잘 가고 그렇게.
Grafana로 대시보드 만들기
1. 각종 서비스의 예약 종료일을 일람으로 파악
2. 각종 서비스의 예약수의 경향 모니터링(EC2는 인스턴스 타입마다) - 온디맨드 - 예약
오, 오. . . 엄청 비용 절감할 수 있을 것 같다. . .
우선, 나의 급료분의 몇배는. . . 웃음
사이고에게
역시, 뭔가 있으면 Grafana가 제일. 웃음
특히 모니터링하려면.
게다가
Kapatitor 라든지 사용하면
AWS 서비스나 다른 SaaS로는 불가능
상세한 비용 감시도 실현 가능할 것 같기 때문에
본격적으로 운용하는 기분이 되면 해 보자고 생각합니다!
Reference
이 문제에 관하여([Grafana] Grafana에서 AWS의 예약 인스턴스(RI)를 모니터링해 보았다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jkkitakita/items/6155ff7899eb9d701611텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)