반응형
말랑Cow
IT
말랑Cow
전체 방문자
오늘
어제
  • 분류 전체보기 (165)
    • Linux (33)
    • Windows (6)
    • Network (7)
    • Hardware (10)
    • Zabbix (13)
    • python (9)
    • script (0)
    • docker (16)
    • NAS (1)
    • DB (3)
    • php (33)
    • jQuery (1)
    • 정보보안기사 (0)
    • Ajax (1)
    • Javascript (21)
    • DELL (0)
    • HPE (0)
    • Secui (0)
    • AWS (2)
    • Elastic (0)
    • 보안 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 네트워크
  • php 클래스
  • CentOS
  • 파이썬
  • php
  • docker
  • JavaScript
  • jQuery
  • Linux
  • 리눅스
  • ZABBIX
  • 서버
  • Python
  • 자바스크립트
  • 모니터링
  • Shell
  • 도커
  • 자빅스
  • php 객체
  • bash
hELLO · Designed By 정상우.
말랑Cow
Zabbix

Zabbix + Telegram 연동 [1]

Zabbix + Telegram 연동 [1]
Zabbix

Zabbix + Telegram 연동 [1]

2021. 2. 19. 16:43
반응형

테스트 환경 : CentOS 7.9 + Zabbix 4.4.10

 

■ 자빅스 + 텔레그램 연동

 

1) 초기 세팅

 

yum -y install epel-release
yum -y install python-pip git
pip3 install requests
pip3 install telegram
pip3 install python-telegram-bot

 

위와 같이 AlertScriptsPath 경로를 확인합니다.

변경을 원한다면 원하는 경로로 변경 후 zabbix-server restart 하시면 됩니다.

 

2) 텔레그램 채팅 봇 생성

 

텔레그램 사이트로 들어가 윈도우 PC버전을 다운로드하여 설치합니다.

 

설치 후 botfather를 검색하여 메시지 start를 클릭합니다.

 

/newbot을 입력한 후 봇 이름과 사용자명을 입력합니다.

봇 이름 : SO_Test_bot

사용자명 : infracube_so_test_bot

SO_Test_bot 과 SJH_test_bot은 이미 사용중이라는 문구입니다.

사용자명의 경우 마지막에 bot단어가 들어가야 합니다.

 

Use this token to access the HTTP API 라는 문구 다음에 오는 코드를 복사하여 메모장 등에 보관합니다.

 

생성했던 채팅 봇 이름을 검색하면 나오게 되는데 시작을 누릅니다.

(여기서 시작을 누르지 않으면 이후 404 에러 발생)

 

위에서 fatherbot에게 받은 HTTP API 코드를 사용하여 웹 브라우저 URL에 접속해봅니다.

https://api.telegram.org/bot$HTTP_API_CODE/getUpdates 

 

HTTP_API_CODE는 위에서 메모장 등에 복사해놓은것을 붙혀넣으면 됩니다.

 

지금까지의 과정을 정상적으로 수행했다면 위처럼 "ok":true 메시지가 나올 것 입니다.

 

3) 템플릿 설치 및 설정

 

자빅스 서버로 돌아와 아래 코드와 같이 템플릿을 설치합니다.

cd ~
git clone https://github.com/ableev/Zabbix-in-Telegram
mv Zabbix-in-Telegram/* /usr/lib/zabbix/alertscripts

텔레그램 채팅 id를 확인할 Python 파일을 만듭니다.

cd ~
vi chat.py

#!/usr/bin/env python
import telegram
import requests
my_token = 'father봇에게 받았던 코드'
bot = telegram.Bot(token = my_token)
updates = bot.getUpdates()
for u in updates :print(u.message)

파이썬 3버전을 실행시켜 chat.py 파일을 실행합니다.

python3 chat.py

여기서 아무것도 출력되지 않는다면 채팅봇에게 아무렇게나 채팅을 시도한 후 다시 파이썬파일을 실행합니다.

실행 결과에서 다음과 같은 id값을 추출합니다.

샘플파일을 복사한 후 권한을 설정합니다.

cp /usr/lib/zabbix/alertscripts/zbxtg_settings.example.py /usr/lib/zabbix/alertscripts/zbxtg_settings.py
chown -R root.zabbix /usr/lib/zabbix/alertscripts
usermod -a -G zabbix zabbix

 

복사된 파일을 열고 다음 부분들을 수정합니다.

vi /usr/lib/zabbix/alertscripts/zbxtg_settings.py


tg_key = "[father봇에게 받은 코드]"  # telegram bot api key

zbx_server = "http://자빅스서버 IP/zabbix/"  # zabbix server full url
zbx_api_user = "zabbix"
zbx_api_pass = "zabbix"

zbx_basic_auth_user = "SO_Test_bot"   # 아까 생성했던 봇 이름
zbx_basic_auth_pass = "[사용할 패스워드]"

zbx_tg_daemon_enabled_ids = ["아까 확인한 chat id", ]
zbx_tg_daemon_enabled_users = ["infracube_so_test", ] # 아까 생성했던 봇 사용자명

zbx_db_host = "localhost"
zbx_db_database = "zabbix"
zbx_db_user = "zabbix"
zbx_db_password = "[자빅스 설치 시 생성한 자빅스 계정 패스워드]"

 

/var/tmp/zbxtg/uids.txt 파일에 아래의 내용을 넣어주고 간혹 디렉토리가 생성되지 않아 쓰기가 불가능할 수 있기 때문에 추가작업 합니다.

 

mkdir /var/tmp/zbxtg
chown -R zabbix.zabbix /var/tmp/zbxtg
vi /var/tmp/zbxtg/uids.txt
# [봇 사용자명];private;[chat id]
infracube_so_test_bot;private;위에서 추출한 chat id

 

가끔 chat id가 날아갈수도 있어서 다음 설정까지 같이 해줍니다.

vi /home/zabbix/uids.txt

## /var/tmp/zbxtg/uids.txt와 동일하게 작성
# [봇 사용자명];private;[chat id]
infracube_so_test_bot;private;위에서 추출한 chat id

아래 내용을 추가하여 스크립트 파일을 생성합니다.

vim /home/zabbix/uids.sh

yes | cp -arpf /home/zabbix/uids.txt /usr/tmp/zbxtg/uids.txt

 

마지막으로 crontab 을 설정합니다.

 

crontab -e

0 0 * * * sh /home/zabbix/uids.sh >> /home/zabbix/uids_cron.log 2>&1

 

여기까지가 자빅스 서버설정이었고 자빅스 웹페이지 설정만 남았는데 [2] 에 내용 업로드 하겠습니다.

반응형

'Zabbix' 카테고리의 다른 글

zabbix + mail 연동  (0) 2021.04.01
Zabbix + Telegram 연동 [2]  (0) 2021.02.24
[Zabbix] Raid 상태 모니터링  (0) 2021.02.05
Zabbix 호스트 자동 등록  (0) 2021.02.05
Zabbix Agent 설치  (0) 2021.02.05
    'Zabbix' 카테고리의 다른 글
    • zabbix + mail 연동
    • Zabbix + Telegram 연동 [2]
    • [Zabbix] Raid 상태 모니터링
    • Zabbix 호스트 자동 등록
    말랑Cow
    말랑Cow

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.