zabbix cloudwatch 연계
10603 단어 zabbixCloudWatch
목적
Steal값도 CPU 사용률에 포함하는 CloudWatch를 사용하고 싶다. Cloudwatch에서 얻은 리소스 데이터를 2주 이상 축적하고 드릴다운하고 싶습니다. 등의 요건에 부응한다. (감시만으로 말하면 개인적으로는 zabbix의 CPU idle time으로 좋다고 생각한다)
환경
AWS
zabbix2.2
방법
cloudwatch get-metric-statistics를 사용하여 검색된 값을 Zabbix 외부 검사 기능으로 ZabbixDB로 가져옵니다.
설정
Zabbix 서버는 외부 스크립트의 위치로 정의 된 디렉토리를 검사하고 명령을 실행합니다.
Fluentd로 취득하는 방법도 있지만, td-agent가 스톨했을 때, 로그 수집과 감시의 양기능을 사용할 수 없게 될 가능성이 있으므로, 배송.
$ sudo cat /etc/zabbix/zabbix_server.conf | grep externalscripts
# ExternalScripts=${datadir}/zabbix/externalscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
스크립팅
AWS
zabbix2.2
방법
cloudwatch get-metric-statistics를 사용하여 검색된 값을 Zabbix 외부 검사 기능으로 ZabbixDB로 가져옵니다.
설정
Zabbix 서버는 외부 스크립트의 위치로 정의 된 디렉토리를 검사하고 명령을 실행합니다.
Fluentd로 취득하는 방법도 있지만, td-agent가 스톨했을 때, 로그 수집과 감시의 양기능을 사용할 수 없게 될 가능성이 있으므로, 배송.
$ sudo cat /etc/zabbix/zabbix_server.conf | grep externalscripts
# ExternalScripts=${datadir}/zabbix/externalscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
스크립팅
Zabbix 서버는 외부 스크립트의 위치로 정의 된 디렉토리를 검사하고 명령을 실행합니다.
Fluentd로 취득하는 방법도 있지만, td-agent가 스톨했을 때, 로그 수집과 감시의 양기능을 사용할 수 없게 될 가능성이 있으므로, 배송.
$ sudo cat /etc/zabbix/zabbix_server.conf | grep externalscripts
# ExternalScripts=${datadir}/zabbix/externalscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
스크립팅
/usr/lib/zabbix/externalscripts/cloudwatch.sh
#!/bin/bash
while getopts n:d:m:s: OPT
do
case ${OPT} in
n) NAMESPACE=${OPTARG} ;;
d) DIMENSIONS=${OPTARG} ;;
m) METRIC=${OPTARG} ;;
s) STATISTICS=${OPTARG} ;;
*) exit 1 ;;
esac
done
### example
# ./cloudwatch.sh -n AWS/[EC2,RDS] -d Name=[InstanceId,mydbinstance],Value=[instanceID,mydbinstance] -m CPUUtilization -s Maximum
aws cloudwatch get-metric-statistics --region ap-northeast-1 --period 300 \
--namespace ${NAMESPACE} \
--dimensions ${DIMENSIONS} \
--metric-name ${METRIC} \
--statistics ${STATISTICS} \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` | jq -r ".Datapoints[].Maximum"
Zabbix
사이트 에도 설명이 있는 것처럼 외부 체크 기능을 사용하면 Zabbix 서버의 CPU 사용률이 상승하므로, 버스트 기능을 가진 t2 타입이 아니고, CPU를 완전하게 사용할 수 있는 최적화된 C4 타입의 인스턴스 사용해야합니다.
script[<parameter1>,<parameter2>,...]
예
cloudwatch.sh["-n AWS/EC2","-d Name=InstanceId,Value=i-*****","-m CPUUtilization","-s Maximum"]
보충 1
/var/log/zabbix/zabbix_server.log
became supported
4481:20160208:110734.416
became not supported
4481:20160208:110934.468
became supported
4482:20160208:111234.564
became not supported
4484:20160208:111434.630
became supported
4482:20160208:111734.773
became not supported
4481:20160208:111934.865
became supported
4484:20160208:112234.967
보충 2
/root/.aws/credensial
[default]
aws_access_key_id = **************
aws_secret_access_key = ***********************
[s3]
aws_access_key_id = **************
aws_secret_access_key = ***********************
[clowdwatch]
aws_access_key_id = **************
aws_secret_access_key = ***********************
[rds]
aws_access_key_id = **************
aws_secret_access_key = ***********************
/usr/lib/zabbix/externalscripts/cloudwatch.sh
#!/bin/bash
while getopts n:d:m:s: OPT
do
case ${OPT} in
n) NAMESPACE=${OPTARG} ;;
d) DIMENSIONS=${OPTARG} ;;
m) METRIC=${OPTARG} ;;
s) STATISTICS=${OPTARG} ;;
*) exit 1 ;;
esac
done
### default EC2 metric
# CPUCreditBalance,CPUCreditUsage,CPUUtilization,DiskReadBytes,DiskReadOps,DiskWriteBytes,DiskWriteOps,NetworkIn,NetworkOut,StatusCheckFailed,StatusCheckFailed_Instance,StatusCheckFailed_System
### example
# ./cloudwatch.sh -n AWS/[EC2,RDS] -d Name=[InstanceId,mydbinstance],Value=[instanceID,mydbinstance] -m CPUUtilization -s Maximum
sudo aws cloudwatch get-metric-statistics --profile clowdwatch --region ap-northeast-1 --period 300 \
--namespace ${NAMESPACE} \
--dimensions ${DIMENSIONS} \
--metric-name ${METRIC} \
--statistics ${STATISTICS} \
--start-time `date --iso-8601=seconds --date '6 minutes ago'` \
--end-time `date --iso-8601=seconds --date '1 minutes ago'` | jq -r ".Datapoints[].Maximum"
/etc/sudoers.d/zabbix
zabbix ALL=(ALL) NOPASSWD:/usr/bin/aws cloudwatch
Reference
이 문제에 관하여(zabbix cloudwatch 연계), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ldr/items/83e817022851b5f96ef8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)