테스트 환경 : 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 |