前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Zabbix 随笔:安装篇(四)

Zabbix 随笔:安装篇(四)

作者头像
IT小白Kasar
发布2022-02-16 18:40:17
5290
发布2022-02-16 18:40:17
举报
文章被收录于专栏:个人技术随笔个人技术随笔

如果觉得 Packages 方式安装比较复杂,可以尝试 Docker 版本的安装方式,相比 Docker 方式其实还有更简单的,就是 Appliance 方式,这个方式的原理其实就是下载一个集成 Zabbix 的镜像,大家可以自行尝试。

虚拟机种类覆盖广
虚拟机种类覆盖广

Docker环境

环境处理

如果您的环境为自己装的系统,需要去掉SELINUX和防火墙的因素干扰,由于为测试环境,所以做如下处理(如果为生产环境,谨慎关闭)

代码语言:javascript
复制
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl stop firewalld  && systemctl disable firewalld

环境

  • 系统版本:CentOS 7
  • Docker 版本:1.13
  • Zabbix 版本:6.0 beta2

安装 Docker

代码语言:javascript
复制
yum -y install docker

启动 Docker 并设置为开机启动

代码语言:javascript
复制
systemctl start docker && systemctl enable docker 

创建 Zabbix 所需子网

网段需要自行规划

代码语言:javascript
复制
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

创建 Mysql docker 容器

代码语言:javascript
复制
docker run --name mysql-server -t \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="xiaoyu123" \
      -e MYSQL_ROOT_PASSWORD="xiaoyu123" \
      --network=zabbix-net \
      -d mysql:8.0 \
      --character-set-server=utf8 --collation-server=utf8_bin \
      --default-authentication-plugin=mysql_native_password 
状态是 UP 即为正常
状态是 UP 即为正常

创建 Zabbix Server 容器

代码语言:javascript
复制
docker run --name zabbix-server-mysql -t \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="xiaoyu123" \
      -e MYSQL_ROOT_PASSWORD="xiaoyu123" \
      --network=zabbix-net \
      -p 10051:10051 \
      --restart unless-stopped \
      -d zabbix/zabbix-server-mysql:alpine-trunk

下面为 tags 字段,不同 tag 对应不同的的版本

官方截图
官方截图

创建 Zabbix 前端容器

代码语言:javascript
复制
docker run --name zabbix-web-nginx-mysql -t \
      -e ZBX_SERVER_HOST="zabbix-server-mysql" \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="xiaoyu123" \
      -e MYSQL_ROOT_PASSWORD="xiaoyu123" \
      --network=zabbix-net \
      -p 80:8080 \
      --restart unless-stopped \
      -d zabbix/zabbix-web-nginx-mysql:alpine-trunk

效果

登录页(用户名密码 Admin/zabbix)
登录页(用户名密码 Admin/zabbix)

这里会出现 Zabbix agent未运行,由于采用的是 docker 环境,如果单启动一个 agent 容器仅仅是监控容器,所以需要对宿主机进行安装 agent。

首页
首页

安装 Zabbix 源

代码语言:javascript
复制
cat <<EOF > /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - \$basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.5/rhel/7/\$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591


[zabbix-non-supported]
name=Zabbix Official Repository non-supported - \$basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/\$basearch/
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
gpgcheck=1
EOF
curl https://mirrors.tuna.tsinghua.edu.cn/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 \
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
curl https://mirrors.tuna.tsinghua.edu.cn/zabbix/RPM-GPG-KEY-ZABBIX \
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
curl https://mirrors.tuna.tsinghua.edu.cn/zabbix/RPM-GPG-KEY-ZABBIX-A14FE591 \
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
curl https://mirrors.tuna.tsinghua.edu.cn/zabbix/RPM-GPG-KEY-ZABBIX \
-o /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

安装 Zabbix agent

代码语言:javascript
复制
yum -y install zabbix-agent2

查看 Zabbix Server 容器 IP

记住 Zabbix Server 容器 IP 的地址。

代码语言:javascript
复制
docker inspect b9d115428089 | grep IPAddress
查看 Server 的容器 IP
查看 Server 的容器 IP

编辑 Zabbix agent 配置文件

代码语言:javascript
复制
vim /etc/zabbix/zabbix_agentd2.conf
修改IP部分
修改IP部分

grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf (通过该命令查看有效配置)

完整修改
完整修改

启动 Zabbix agent 及开机自启

代码语言:javascript
复制
systemctl start zabbix-agent2 && systemctl enable zabbix-agent2 

前端配置文件修改

由于前端的 Zabbix server 的配置里为 127.0.0.1,而环境为Docker,所以默认会报如下的错,此时需要修改为主机的 IP 地址

通过 ipconfig 查找本机IP,并将前端里的 127.0.0.1 修改为主机地址

查看本机IP
查看本机IP

最终效果

问题解决
问题解决

Podman 环境

环境处理

如果您的环境为自己装的系统,需要去掉SELINUX和防火墙的因素干扰,由于为测试环境,所以做如下处理(如果为生产环境,谨慎关闭)

代码语言:javascript
复制
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl stop firewalld  && systemctl disable firewalld

环境

  • 系统版本:CentOS 8
  • 容器:podman 3.2.3
  • Zabbix 版本:6.0 beta2

安装 podman

CentOS 8 默认去除掉了 Docker,取而代之的为podman,有兴趣的朋友可以了解下。

代码语言:javascript
复制
dnf -y install docker

启动容器

代码语言:javascript
复制
systectl start podman && systemctl enable podman
查看子网空间
查看子网空间

创建 Zabbix Pod 并暴露相对应的接口(前端和 Server 端口)

代码语言:javascript
复制
podman pod create --name zabbix -p 80:8080 -p 10051:10051 

创建 Zabbix agent

代码语言:javascript
复制
podman run --name zabbix-agent \
    -e ZBX_SERVER_HOST="127.0.0.1,localhost" \
    --restart=always \
    --pod=zabbix \
    -d docker.io/zabbix/zabbix-agent:alpine-trunk

创建 Mysql

创建 mysql 目录,这里是在当前目录下创建

代码语言:javascript
复制
mkdir mysql
podman run --name mysql-server -t \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="xiaoyu123" \
      -e MYSQL_ROOT_PASSWORD="xiaoyu123" \
      -v ./mysql/:/var/lib/mysql/:Z \
      --restart=always \
      --pod=zabbix \
      -d docker.io/library/mysql:8.0 \
      --character-set-server=utf8 --collation-server=utf8_bin \
      --default-authentication-plugin=mysql_native_password

创建 Zabbix Server

代码语言:javascript
复制
podman run --name zabbix-server-mysql -t \
                  -e DB_SERVER_HOST="127.0.0.1" \
                  -e MYSQL_DATABASE="zabbix" \
                  -e MYSQL_USER="zabbix" \
                  -e MYSQL_PASSWORD="xiaoyu123" \
                  -e MYSQL_ROOT_PASSWORD="xiaoyu123" \
                  --restart=always \
                  --pod=zabbix \
                  -d docker.io/zabbix/zabbix-server-mysql

创建 Zabbix 前端

代码语言:javascript
复制
podman run --name zabbix-web-mysql -t \
                  -e ZBX_SERVER_HOST="127.0.0.1" \
                  -e DB_SERVER_HOST="127.0.0.1" \
                  -e MYSQL_DATABASE="zabbix" \
                  -e MYSQL_USER="zabbix" \
                  -e MYSQL_PASSWORD="xiaoyu123" \
                  -e MYSQL_ROOT_PASSWORD="xiaoyu123" \
                  --restart=always \
                  --pod=zabbix \
                  -d docker.io/zabbix/zabbix-web-nginx-mysql
查看各容器状态
查看各容器状态

访问前端

首页
首页
监控正常
监控正常

写在最后

看到这里大家会发现 CentOS 8 相比 7 少了一个本地 agent 安装的步骤,大家可以自行思考下,为什么会是这个情况,另外呢官方提供了 docker-compose 方式,但实际来看要求比较高,需要部分修改,所以就不写出来了,同时官方也提供 K8S 的安装方式,大家可以自行尝试.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker环境
    • 环境处理
      • 环境
        • 安装 Docker
          • 启动 Docker 并设置为开机启动
            • 创建 Zabbix 所需子网
              • 创建 Mysql docker 容器
                • 创建 Zabbix Server 容器
                  • 创建 Zabbix 前端容器
                    • 效果
                      • 安装 Zabbix 源
                        • 安装 Zabbix agent
                          • 查看 Zabbix Server 容器 IP
                            • 编辑 Zabbix agent 配置文件
                              • 启动 Zabbix agent 及开机自启
                                • 前端配置文件修改
                                  • 最终效果
                                  • Podman 环境
                                    • 环境处理
                                      • 环境
                                        • 安装 podman
                                          • 启动容器
                                            • 创建 Zabbix Pod 并暴露相对应的接口(前端和 Server 端口)
                                              • 创建 Zabbix agent
                                                • 创建 Mysql
                                                  • 创建 Zabbix Server
                                                    • 创建 Zabbix 前端
                                                      • 访问前端
                                                      • 写在最后
                                                      相关产品与服务
                                                      容器镜像服务
                                                      容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                                                      领券
                                                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档