docker部署zabbix6.0及企业微信发送告警
1 前言
1.1 实验背景
因zabbix 6.0新增许多新特性,为熟悉界面特意在本地部署一套简易版(未启用HA功能)。原本想要在烧制了centos7.9系统树莓派上部署,一查之下armv7果然冷门,mariadb无论是直接安装或者docker都不支持,还是x86好使,索性将mariadb、zabbix server、zabbix froneted都部署在了本地虚拟机中,相比安装部署方便很多。
1.2 实验环境
宿主机:1核2G本地虚拟机,centos 7.6,docker 1.13.1
mariadb:10.8.5(zabbix 6.0必须使用10.0.5以上版本mariadb)
zabbix server:6.0
1.3 准备工作
防火墙放开tcp 3306(mariadb)、tcp 10051(zabbix server)、tcp 8080(nginx)
2 安装 mariadb
2.1 下载mariadb
参考https://mariadb.org/download/?t=repo-config
创建/etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.aliyun.com/mariadb/yum/10.8/centos7-amd64
gpgkey=https://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
yum install MariaDB-server MariaDB-client
systemctl start mariadb
systemctl enable mariadb
mariadb-secure-installation 设置root密码
mysql -uroot -p"mariadb-root-user-password"
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user 'zabbix'@'%' identified by 'mariadb-zabbix-user-password';
mysql> grant all privileges on zabbix.* to 'zabbix'@'%';
mysql> quit;
2.2 导入数据库
下载源代码后
cd database/mysql
mysql -uzabbix -p"mariadb-zabbix-user-password" zabbix < schema.sql
mysql -uzabbix -p"mariadb-zabbix-user-password" zabbix < images.sql
mysql -uzabbix -p"mariadb-zabbix-user-password" zabbix < data.sql
3 安装zabbix server
3.1 获取镜像
docker pull zabbix/zabbix-server-mysql:6.0-alpine-latest
3.2 启动容器
docker run --name zabbix-server-mysql-1 -e DB_SERVER_HOST="172.17.0.1" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="mariadb-zabbix-user-password" -p 10051:10051 -d zabbix/zabbix-server-mysql:6.0-alpine-latest
其中172.17.0.1为docker0网桥地址
3.3 测试
netstate -nlpt查看10051端口是否listening
docker exec -it zabbix-server-mysql-1 /bin/sh
进入容器后可以手工使用mysql -uzabbix -p测试能否正常连接数据库
docker logs zabbix-server-mysql-1
查看日志,正常情况下不会有明显报错
4 安装zabbix frontend
4.1 获取镜像
docker pull zabbix/zabbix-web-nginx-mysql:6.0-alpine-latest
4.2 启动容器
docker run --name zabbix-web-nginx-mysql-1 --link zabbix-server-mysql-1:zabbix-server -e DB_SERVER_HOST="172.17.0.1" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="mariadb-zabbix-user-password" -e ZBX_SERVER_HOST="172.17.0.1" -e PHP_TZ="Asia/Shanghai" -p 8080:8080 -d zabbix/zabbix-web-nginx-mysql:6.0-alpine-latest
4.3 测试
netstate -nlpt查看8080端口是否listening
此时可以通过web访问zabbix web了,默认账号密码是Admin/zabbix
5 企业微信发送告警
zabbix 5.0开始支持使用webhook类型告警,与企业微信等媒介十分契合,因为代码写在web界面上,修改和迁移都比传统的调用脚本方便,不过需要一点点javascript开发工作。
5.1 媒介类型
5.1.1 类型
选用webhook
5.1.2 参数
Message {ALERT.MESSAGE}
To {ALERT.SENDTO}
5.1.3 脚本
根据网络资料简化而来
var Wechat = {
to: null,
message: null,
sendMessage: function() {
var params = {
msgtype: "text",
text: {
content:Wechat.message
}
},
data,
response,
request = new CurlHttpRequest(),
url = Wechat.to;
request.AddHeader('Content-Type: application/json');
data = JSON.stringify(params);
response = request.Post(url, data);
return JSON.parse(response);
}
}
try {
var params = JSON.parse(value);
Wechat.to = params.To;
Wechat.message = params.Message;
Wechat.sendMessage();
return 'OK';
}
catch (error) {
throw 'Sending failed: ' + error + '.';
}
5.2 动作
可自行修改
5.2.1 消息模板Problem
告警时间:{EVENT.DATE} {EVENT.TIME} 告警平台:{TRIGGER.HOSTGROUP.NAME} 告警主机:{HOST.NAME} 告警详情:{ITEM.NAME} {ITEM.VALUE} {TRIGGER.NAME}
5.2.2 消息模板Problem recovery
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 告警平台:{TRIGGER.HOSTGROUP.NAME} 告警主机:{HOST.NAME}({HOST.HOST}) 告警详情:{ITEM.NAME} {ITEM.VALUE} {TRIGGER.NAME}
5.3用户
媒介
Send to设置为企业微信机器人的webhook url
docker部署zabbix6.0及企业微信发送告警的更多相关文章
- zabbix使用企业微信发送告警信息
用qq邮箱发送告警信息一点都不方便,看到网上说也可以使用微信发送告警信息,所以就试了一下. 首先先试着在虚拟主机上给微信发送信息. 我们需要注册企业微信,注册时有一个地方需要注意,就是注册时选择组织, ...
- .netcore--Controller后台实现企业微信发送消息
一.获得企业微信管理端权限,登录企业企业微信管理端界面,并创建应用,如下图中的[网站消息推送] 二.参见企业微信API文献,根据corpid=ID&corpsecret=SECRET(其中企业 ...
- python实现通过企业微信发送消息
实现了通过企业微信发送消息,平时用于运维的告警还是不错的,相对于邮件来说,实时性更高,不过就是企业微信比较麻烦,此处不做过多解释. 企业微信api的详细请看:http://work.weixin.qq ...
- (七) Docker 部署 MySql8.0 一主一从 高可用集群
参考并感谢 官方文档 https://hub.docker.com/_/mysql y0ngb1n https://www.jianshu.com/p/0439206e1f28 vito0319 ht ...
- Docker部署Mysql8.0.20并配置主从复制
1. Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从) Linux安装Mysql8.0.20并配置主从复制(一主一从,双主双从) 2. 前提准备 # 创建主从数据库文件夹 ...
- Zabbix 3.0 配置企业微信报警(注册---测试)
一.申请企业微信 1.登录企业微信官网,点击企业注册 二.配置企业微信 1.邀请管理员使用企业微信,如果有多个人直接添加新成员 2.管理员收到邀请,下载手机版企业微信,使用微信号登陆即可 3.创建应用 ...
- python 企业微信发送文件
import os import json import urllib3 class WinxinApi(object): def __init__(self,corpid,secret,chatid ...
- 使用Python实现给企业微信发送allure报告,并实现微信查看
1.注册企业微信 搜索企业微信直接注册 2.创建应用 3.查看企业id.Secret.应用id.部门id 4.发送代码 import os import jenkins import requests ...
- 【转】odoo 10的企业微信发送程序介绍
本文介绍的微信发送程序不是独立的模块,是某企业应用的一部分, 源码可在京津冀odoo技术交流群的群共享中下载. [1]基本配置 在work.weixin.qq.com上注册一个企业后,会得到企业的 ...
- Python3调用企业微信用于告警
前段时间利用py爬虫抓取一些网页信息,然后通过wxpy发送到微信群,以用作日常告警,感觉还是很方便. 但好景不长,我的小号微信被腾讯封了(很常见咯), 显示无法登录网页版微信,至今已经有半个多月了. ...
随机推荐
- SqlServer查看表结构
SELECT CASE WHEN col.colorder = 1 THEN obj.name ELSE '' END AS 表名 ,CASE WHEN col.colorder=1 then isn ...
- JUC同步工具CountDownLatch
CountDownLatch:允许一条或多条线程等待其它线程中的一组操作完成后再继续执行. 在探究CountDownLatch之前,我们知道Thread的join也有类似功能,先看thread的joi ...
- Golang每日一库之bcrypt
本文 官方文档: https://pkg.go.dev/golang.org/x/crypto/bcrypt 前言 之前讲过JWT Token https://www.cnblogs.com/zich ...
- LeetCode刷题之652寻找重复的子树
继续每日分享一道算法题,监督自己学习,不落下算法,有需要一起打卡的uu,可以一起加油呀! 好了,现在开始看题了哈: 给定一棵二叉树 root,返回所有重复的子树. 对于同一类的重复子树,你只需要返回其 ...
- DFS(深度优先搜索) 总是需要重置 visited 的状态吗?
问题来自 P1902 刺杀大使,在最初的实现中 DFS 中一段代码如下: visited[x2][y2] = true; flag = dfs(v, x2, y2); visited[x2][y2] ...
- etcd:增加30%的写入性能
etcd:增加30%的写入性能 本文最终的解决方式很简单,就是将现有卷升级为支持更高IOPS的卷,但解决问题的过程值得推荐. 译自:etcd: getting 30% more write/s 我们的 ...
- 2021-01-28:redis使用过程中的注意事项有哪些?
福哥答案2021-01-28: [答案1:](https://italk.mashibing.com/question/detail/ques_00005101)1.使用key值前缀来作命名空间虽然说 ...
- 2021-05-13:数组中所有数都异或起来的结果,叫做异或和。给定一个数组arr,返回arr的最大子数组异或和。
2021-05-13:数组中所有数都异或起来的结果,叫做异或和.给定一个数组arr,返回arr的最大子数组异或和. 前缀树.一个数,用二进制表示,0走左边分支,1走右边分支. 时间复杂度:O(N). ...
- defer()排除某些字段
defer()排除某些字段 不显示nickname,age两列的数据 Student.objects.all().defer('nickname','age')
- MD5加密后为0e开头的字符串
QNKCDZO 0e830400451993494058024219903391 s878926199a 0e545993274517709034328855841020 s ...