Docker 로 Zabbix 환경구축

| 2021년 3월 18일 | 0 Comments

Docker 환경에서 Zabbix 설치

1. Mysql 인스턴스를 생성합니다.

docker run –name mysql-server -t
-e MYSQL_DATABASE=”
zabbix
-e MYSQL_USER=”
zabbix
-e MYSQL_PASSWORD=’
zabbix123
-e MYSQL_ROOT_PASSWORD=’
root123

-d mysql:5.7
–character-set-server=utf8 –collation-server=utf8_bin


2. zabbix-java-gateway 인스턴트를 생성합니다.

docker run –name zabbix-java-gateway -t -d zabbix/zabbix-java-gateway:latest


3.zabbix-server-mysql 인스턴트를 생성하고 생성된 데이터베이스를 연결해줍니다.

docker run –name zabbix-server-mysql -t
-e DB_SERVER_HOST=
“mysql-server
-e MYSQL_DATABASE=”
zabbix
-e MYSQL_USER=”
zabbix
-e MYSQL_PASSWORD=’
zabbix123
-e MYSQL_ROOT_PASSWORD=’
root123

-e ZBX_JAVAGATEWAY=”zabbix-java-gateway”
–link mysql-server:mysql
–link zabbix-java-gateway:zabbix-java-gateway
-p 10051:10051
-d zabbix/zabbix-server-mysql:latest


4. zabbix-web-nginx-mysql인스턴트를 생성합니다.

docker run –name zabbix-web-nginx-mysql -t
-e DB_SERVER_HOST=”mysql-server”
-e MYSQL_DATABASE=”zabbix”
-e MYSQL_USER=”zabbix”
-e MYSQL_PASSWORD=’zabbix123′
-e MYSQL_ROOT_PASSWORD=’root123′
–link mysql-server:mysql
–link zabbix-server-mysql:zabbix-server
-p 8088:8080
-d zabbix/zabbix-web-nginx-mysql:latest

 

5. zabbix-agent를 생성합니다.

docker run –name zabbix_agent 
–link zabbix-server-mysql:zabbix-server 
-e ZBX_HOSTNAME=”
Zabbix server” 
-e ZBX_SERVER_PORT=”10051″
-e ZBX_SERVER_HOST=”
172.17.0.1” 
-p 10050:10050 -d zabbix/zabbix-agent:latest

ip:8088을 입력하면 Zabbix 사이트가 열립니다.

 

Zabbix 에서 미디어 연동(Slack / Wechat)

 Slack

1. Slack Workspace에서“zabbix_alert” 채널을 생성합니다.

2. Slack api 사이트에서 App을 생성합니다.   

URL: https://api.slack.com/apps

Zabbix Message는 새로 생성된 앱네임.

Incoming Webhooks, Bots, Permissions을 설정합니다.

Incoming Webhooks를 클릭하고 Off On 으로 설정하여 줍니다.

스크롤을 내려서 “Bot Token Scopes에서 “chat:write권한을 추가합니다.

Slack #zabbix_alert 채널에서 알람메세지 전송된것을 확인할수 있습니다.

 

설정을 추가하고 “reinstall을 진행하여야 합니다.

다시 슬랙에 돌아가서

 

 

Wechat

1. 위챗에서 “기업위챗”을 신청해야 됩니다.
(
신청후 “部门ID”가 중요합니다.)

신청 URL: https://work.weixin.qq.com/wework_admin/register_wx

 

2. 인원 추가할때 “帐号”가 중요합니다.

 

3. “应用管理”에서 앱을 추가합니다.

自建”에서 “创建应用”을 클릭하고 해당 설정을 진행합니다.

 

4.이미 생성된 “Zabbix_Alert”앱을 클릭하면 아래와 같습니다.

여기서 AgentId와 “Secret설정을 저장해야 합니다.

可见范围”에 해당되는 분한테만 알람메세지가 전송됩니다.

 

5.“我的企业”에서 아래에 있는 “企业ID”도 저장해야 합니다.

(제일 밑부분에 있습니다. )

 

6.Wechat API 테스트를 진행합니다.

URL: https://open.work.weixin.qq.com/wwopen/devtool/interface/combine

建立连接” 〉 “获取access_token”을 클릭하면 위와 같은 화면이 나옵니다.

corpid에 “企业ID”corpsecret에 “secret”를 입력하고 “调用接口”를 클릭합니다.

결과가 “status: HTTP/1.1 200 OK” 가 나오면 사용할수 있습니다.

 

7. Zabbix-server-mysql 컨테이너에 연결합니다.

# docker exec -it –user=root zabbix-server-mysql /bin/bash

 

8. Python3 환경을 설치하여 줍니다.

# apk add –no-cache python3 python3-dev

# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

# python3 get-pip.py

# pip install requests

 

9. 실행할 스크립트를 Zabbix의 설정된 폴더위치로 저장합니다.

# cd /usr/lib/zabbix/alertscripts/

# git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git

# cp Zabbix-Alert-WeChat/wechat.py .

 

10. 다운된 스크립트는 python2.7환경에서 사용될수 있으며 python3에 맞게 수정합니다.

9. reload(sys)
10. sys.setdefaultencoding('utf-8')
77. print Status

을 아래와 같이 수정하여 줍니다.

9. import importlib,sys
10. importlib.reload(sys)
77. print(Status)

그리고 해당 “企业微信”정보를 수정합니다.

Corpid = “wx9a2a83645b3ff65”

# CorpID에 “企业ID”를 입력합니다.

Secret = “26dVDSQhU7X6s0bmYCF9-lZb3myxlbvGZx2bW_NKFE

# Secret를 입력합니다.

Agentid = “1”

# 应用ID 를 입력합니다.

Partyid = “1”

# 部门ID를 입력합니다.

 

11. 해당 정보 수정후 메세지 전송 테스트를 진행합니다.

# ./wechat.py dg2time hello hello

wechat.py → 실행해야 할 파일

dg2time → 위에 설정되여 있는 나의 帐号

hello hello → 각각 제목 과 내용입니다.

위와 같이 나오면 메세지 전송 성공입니다.

 

12. 다시 Zabbix 화면에서 Administrator → Media Type → Create media type로 위챗 알림 방식을 추가합니다.

Media type에서 “Type”은 “Script”, “Script name”은 위의 파일“wechat.py”를 입력합니다.

“Script parameters”에서 위 이미지와 같이 입력합니다.

Message templates”를 원하시는 대로 설정합니다. 추가뒤 테스트를 진행합니다.

위와 같이 나오면 테스트 성공입니다.

 

13. Wechat 알림메신저를 전송할 유저를 추가합니다.

 

14. action을 추가합니다.

“Configuration” → Actions” → “Operations” 에서 위와 같이 추가 합니다.

(자사한 사항은 아래 이미지입니다. )

 

15. Trigger 이 작동된후 Action 결과를 로그에서 확인할수 있습니다.

같은 시간대에 “企业微信”에서 메세지 받은것을 확인할수 있습니다.

Category: 솔루션/IT기타

Avatar

About the Author ()