디스크 사용률에 대한 디스크 알림 설정하기

목표

리소스 사용률에 대한 적시 알림을 받는 것은 데이터베이스 관리, 문제 방지, 다운타임 완화의 핵심입니다. 데이터베이스의 디스크가 부족하다는 사실을 미리 알고 있다면 해당 리소스를 확장하는 조치를 취하세요.

이 튜토리얼에서는 IBM Cloud 사용합니다 API와 IBM Cloud CLI를 사용하여 데이터베이스의 디스크 사용률이 90%를 초과할 때마다 이메일을 보내는 알림을 설정합니다. 이 특정 예는 Databases for Elasticsearch 배포에 대한 경고를 생성하지만, IBM Cloud Databases 카탈로그의 모든 데이터베이스에 적용할 수 있습니다.

생산성 향상

모니터링 인스턴스 및 플랫폼 메트릭 설정

시작하려면 데이터베이스 지역에서 IBM Cloud® Monitoring 액세스할 수 있어야 하며 모니터링 인스턴스를 사용할 수 있어야 합니다. 이 모니터링 인스턴스는 데이터베이스 대상과 동일한 지역에 있어야 합니다.

또한 플랫폼 메트릭을 사용하도록 설정해야 합니다.

명령줄 인터페이스 도구 설치

다음으로 IBM Cloud Monitoring CLI Cloud Databases CLI plug-in 필요합니다.

다음 명령을 실행하여 IBM Cloud 모니터링 CLI를 설치하십시오.

ibmcloud plugin install monitoring

다음 명령을 실행하여 CLI Cloud Databases 플러그인을 설치하십시오:

ibmcloud plugin install cloud-databases

이제 서비스 인스턴스를 검색하고 모니터링할 준비가 되었습니다.

모니터링 서비스 인스턴스 검색

이 단계에서는 모니터링 인스턴스에 액세스하는 데 필요한 자격 증명을 검색합니다.

IBM Cloud 로그인하여 시작하세요 CLI에 로그인하고 다음 명령을 입력합니다:

ibmcloud login -sso

화면의 안내에 따라 로그인합니다.

다음으로 인스턴스에 적합한 지역을 타겟팅합니다:

ibmcloud target -r <REGION>

그런 다음 다음 명령을 사용하여 해당 지역의 기존 모니터링 인스턴스를 나열합니다:

ibmcloud monitoring service-instances

"플랫폼 메트릭"이 활성화된 서비스 인스턴스 이름을 확인합니다.

이제 다음과 같은 명령을 사용하여 API에 대한 권한 부여 토큰을 만듭니다:

다음 단계는 Bash에서만 작동합니다.

AUTH_TOKEN=$(ibmcloud iam oauth-tokens | awk '{print $4}')

이제 다음 명령을 사용하여 API에 대한 모니터링 서비스 인스턴스의 ID를 검색할 수 있습니다:

GUID=$(ibmcloud resource service-instance <instance_name_from_step_above> --output json | jq -r '.[].guid')

알림 채널 설정

알림이 트리거될 때 알림을 받을 알림 채널을 구성합니다. 알림 채널을 설정하려면 다음 명령을 사용하세요:

curl -X POST https://<region>.monitoring.cloud.ibm.com/api/notificationChannels -H "Authorization: Bearer $AUTH_TOKEN" -H "IBMInstanceID: $GUID" -H "content-type: application/json"  --data-raw '{"notificationChannel":{"id":null,"version":null,"teamId":"","name":"<notification_channel>","type":"EMAIL","enabled":true,"sendTestNotification":true,"options":{"notifyOnOk":true,"notifyOnResolve":true,"emailRecipients":["email@email.com"]}}}'

다음 출력이 표시됩니다.

{"notificationChannel":{"id":39209,"version":1,"customerId":34292,"enabled":true,"sendTestNotification":true,"createdOn":1678967870764,"modifiedOn":1678967870764,"name":"thursTest","options":{"notifyOnOk":true,"emailRecipients":["email@email.com"],"notifyOnResolve":true},"type":"EMAIL"}}% 

이제 알림을 위한 알림 채널을 만들었습니다.

API 호출에서 반환되는 id 필드를 메모해 두세요.

경보 작성

이제 알림 채널이 생겼으니 알림 규칙을 만드세요. 경고 규칙은 모니터링할 메트릭 쿼리, 임계값, 그리고 임계값을 초과할 때 수행할 작업을 정의합니다. 이 경우 ibm_service_instance_name 사용률이 90%를 초과하지 않도록 max 모니터링하고 있습니다. 이런 일이 발생하면 알림이 트리거되고 사용자에게 알림이 전송됩니다.

이 알림은 디스크 사용률이 90%일 때 트리거됩니다. 그러나 디스크 사용률은 50~70%를 권장합니다.

알림을 설정하려는 데이터베이스 인스턴스의 이름을 검색하려면 다음과 같은 명령으로 모든 데이터베이스 인스턴스를 나열합니다:

ibmcloud cdb ls

모니터링 인스턴스와 동일한 지역에 있는 데이터베이스를 선택해야 합니다.

다음과 같은 출력이 표시됩니다:

Retrieving instances for all database types in all resource groups in all locations under IBM as …
OK
Name                          Location   State
Databases for PostgreSQL-76   us-south   inactive
testelastic                   eu-gb      active
Databases for MySQL-9j        us-south   active

이제 데이터베이스의 이름을 사용하여 다음과 같은 명령을 사용하여 경고를 만듭니다:

curl --request POST \
  --url https://<region>.monitoring.cloud.ibm.com/api/alerts \
  --header "Authorization: Bearer  $AUTH_TOKEN" \
  --header 'Content-Type: application/json' \
  --header "IBMInstanceID: $GUID" \
  --data-raw  '{
	"alert":
		{
			"type": "MANUAL",
			"name": "Disk Alert",
			"description": "",
			"enabled": true,
			"severity": 1,
			"timespan": 60000000,
			"notificationChannelIds": [
				<id_from_previous_step>
			],
			"filter": "ibm_service_instance_name in (\"<db_instance_name_from_previous_step>\")",
		  "condition": "max(max(ibm_databases_for_elasticsearch_disk_used_percent)) > 0.9"
		}
}'

이 명령은 멤버 수에 관계없이 사용 가능한 모든 멤버의 최대 디스크 사용률을 가져옵니다.

알림이 생성되었는지 확인

디스크 크기의 90%에 도달할 때마다 알림이 생성됩니다. 알림 채널에서 생성한 것과 동일한 이메일로 알림을 받게 됩니다. 다음 명령을 사용하여 현재 활성 상태인 알림을 확인할 수도 있습니다:

ibmcloud monitoring alert list --name <monitoring instance name>

이제 Databases for Elasticsearch 인스턴스 디스크 사용률이 90%를 초과할 때마다 알림을 받으므로 디스크가 너무 꽉 차기 전에 조치를 취할 수 있습니다.

다음 단계

알림을 수정하거나 모니터링에 대해 자세히 알아보려면{{site{{site.data.keyword.mon_full_notm}} 시작하기를 참조하세요.

리소스 스케일링

디스크 사용률이 90%를 초과했다는 알림을 받으면 디스크 사용량이 50~70%를 초과하지 않도록 디스크 크기를 조정하세요. 서비스의 리소스를 수동으로 관리하거나 자동 확장합니다.

리소스 스케일링
Service 리소스 관리 자동 스케일링
IBM Cloud® Databases for MongoDB 스케일링 디스크, RAM 및 CPU 자동 스케일링
IBM Cloud® Databases for PostgreSQL 스케일링 디스크, RAM 및 CPU 자동 스케일링
IBM Cloud® Databases for Redis 스케일링 디스크, RAM 및 CPU 자동 스케일링
IBM Cloud® Databases for MySQL 스케일링 디스크, RAM 및 CPU 자동 스케일링
IBM Cloud® Messages for RabbitMQ 스케일링 디스크, RAM 및 CPU 자동 스케일링

{{{site.data.keyword.databases-for}} 서비스 메트릭

이 튜토리얼에서는 IBM Cloud® Databases for Elasticsearch 사용합니다. 그러나 다른 Cloud Databases 서비스에도 동일한 프로세스가 적용됩니다: