본문 바로가기
모니터링

[zabbix] zabbix 카카오톡 연동 및 알림설정 - 1

by 오송나라 2024. 5. 7.
728x90
SMALL

1. kakao api 가입

https://developers.kakao.com/

2. 애플리케이션 추가

  • 회원가입 후 애플리케이션 추가하기 클릭

3. 애플리케이션 설정

  • 앱 이름 및 사업자명 입력 후 저장

4. 앱 키 복사해두기

  • 아래의 앱 키들 복사하기(메모장에 복사해 두기)

5. 카카오 로그인 활성화 설정

  • 카카오 로그인 -> 활성화 상태 ON 활성화

728x90

6. Redirect URI 설정

7. URL 접속

  • 문서>카카오 로그인>REST API에서 응답 부분의 예제 복사
https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=${REST_API_KEY}&redirect_uri=${REDIRECT_URI}
  • {REST_API_KEY} 부분에는 4번에서 복사한 REST API 값 추가
  • {REDIRECT_URI} 부분에는 6번에서 생성한 URL 추가

  • 최종 URL
 https://kauth.kakao.com/oauth/authorize?client_id=[복사한 REST API 값]&redirect_uri=https://example.com/oauth&response_type=code
  • URL 접속 시 해당 화면 오픈
  • 확인하고 계속하기 클릭

  • 해당 화면 정상화면

  • 해당 화면 상단에 URL에서 code= 뒤의 문자 전체 복사

8. 파이썬 설치

  • zabbix server에서 파이썬 설치 입력
yum -y install python3

9. 파이썬 코드 작성

vi zabbixkakao.py
import requests
url = 'https://kauth.kakao.com/oauth/token'
rest_api_key = '[REST API KEY 입력]'
redirect_uri = 'https://example.com/oauth'
authorize_code = '[URL 접속 후 복사한 코드 입력]'

data = {
    'grant_type':'authorization_code',
    'client_id':rest_api_key,
    'redirect_uri':redirect_uri,
    'code': authorize_code,
    }
response = requests.post(url, data=data)
tokens = response.json()
print(tokens)

# json 저장
import json

with open(r"/root/kakao_code.json","w") as fp:
    json.dump(tokens, fp)

10. 파이썬 실행

python3 zabbixkakao.py
  • 실행 후 아래와 같이 발생

에러 발생 시 생성한 애플리케이션 삭제 후 다시 생성해서 진행
토큰을 한번 쓰면 재사용을 못하는 것으로 예상됨

11. 카카오톡 메시지 보내기

vi zabbixkakao2.py
import requests
import json

with open(r"/root/kakao_code.json","r") as fp:
    tokens = json.load(fp)


url="https://kapi.kakao.com/v2/api/talk/memo/default/send"

# kapi.kakao.com/v2/api/talk/memo/default/send

headers={
    "Authorization" : "Bearer " + tokens["access_token"]
}

data={
    "template_object": json.dumps({
        "object_type":"text",
        "text":"장애발생 긴급지원 필요",
        "link":{
            "web_url":"www.naver.com"
        }
    })
}

response = requests.post(url, headers=headers, data=data)
response.status_code

12. 파이썬 실행

python3 zabbixkakao2.py
  • 실행 후 카카오톡 확인

728x90
LIST