使用docker简易部署zabbix6.0笔记

news/2024/7/6 10:33:19

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
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


http://www.niftyadmin.cn/n/4819808.html

相关文章

字母转为小写字母

传入大写字母&#xff0c;输出为小字母&#xff0c;如果传入小写字母&#xff0c;直接输出小写字母。传入非字母&#xff0c;输出为‘’。 如&#xff1a;A-->a;B-->b;C-->c;...Z-->z参考函数&#xff1a; SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -…

SVN使用blog收藏

SVN使用blog收藏 新一篇: SQLite介绍 | 旧一篇: LUA几个相关网站和编程IDE <script>function StorePage(){ddocument;td.selection?(d.selection.type!None?d.selection.createRange().text:):(d.getSelection?d.getSelection():);void(keyitwindow.open(http://www.3…

单节点kafka部署笔记

1 背景 因为工作中需要对接kafka&#xff0c;准备在测试环境中自己部署一套&#xff0c;考虑方便决定部署一台单点。 2 部署 2.1 scala 2.1.1 java环境 openjdk即可&#xff0c;我使用的是openjdk1.8 2.1.2 下载软件 下载scala-2.12.17.tgz并解压&#xff0c;例如解压到…

树莓派摄像头笔记

背景 淘宝几十块钱买了个摄像头&#xff0c;usb接口&#xff0c;免驱动&#xff0c;支持uvc协议&#xff0c;于是装在树莓派上准备当监控用。 查看 $ lsusb Bus 001 Device 007: ID 038f:6001 lihappe8 Corp. USB 2.0 Camera Bus 001 Device 006: ID 046d:c534 Logitech, In…

我打江南走过

我打江南走过 那等在季节里的容颜如莲花的开落 东风不来&#xff0c;三月的柳絮不飞 你底心如小小寂寞的城 恰若青石的街道向晚 跫音不响&#xff0c;三月的春帷不揭 你底心是小小的窗扉紧掩 我达达的马蹄是美丽的错误 我不是归人&#xff0c;是个过客…… 图&#xff1a;百涧…

Linux下文件的操作

前言&#xff1a; 我们在这一节将要讨论linux下文件操作的各个函数。 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 1.文件的创建和读写 我假设你已经知道了标准级的文件操作的各个函数(fopen&#xff0c;fread&#xff0c;fwrite等等)。当然如果你不清楚的…

#ifndef #define #endif的用法 整理:shichenghua

#ifndef#define#endif的用法 发表于 2007-1-20 13:20:55 #ifndef #define #endif的用法 整理&#xff1a;shichenghuahttp://www.eetop.cn/blog/?56085/action_viewspace_itemid_1145.html(前段时间要到这个&#xff0c;感觉shichenghua整理得不错&#xff0c;所以收藏到此处…

【转】我是这样对待曾经背叛我的女人的!

发信人: g&#xff0d;c&#xff0d;d(文魔之太阳开弓没有回头箭), 信区: Girls. 本篇人气: 7904标 题: 我是这样对待曾经背叛我的女人的&#xff01;发信站: 南京大学小百合站 (Wed Oct 27 23:08:00 2004) 最近老是在网上看到女人负心于男人的故事&#xff0c;看到这些兄弟们…