Dockerfile 研究-[zabbix 安装]-pgsql版本

zabbix 版本

6.0.30

7.0.0

项目地址

标题链接
centos_7_zabbix_5.0.x_mysqlcentos_7_zabbix_5.0.x_mysql
rocky_8_zabbix_6.0.x_mysqlrocky_8_zabbix_6.0.x_mysql
rocky_8_zabbix_6.0.x_pgsqlrocky_8_zabbix_6.0.x_pgsql
rocky_8_zabbix_7.0.x_mysqlrocky_8_zabbix_7.0.x_mysql
rocky_8_zabbix_7.0.x_pgsqlrocky_8_zabbix_7.0.x_pgsql
zabbix_6.0.x_dockerzabbix_6.0.x_docker
zabbix_6.0.x_dockerfilezabbix_6.0.x_dockerfile
zabbix_7.0.x_dockerzabbix_7.0.x_docker
zabbix_7.0.x_dockerfilezabbix_7.0.x_dockerfile
zabbix_apizabbix_api

克隆项目文件

# **执行如下命令克隆 NoYoWiFi 编排好的 zabbix 项目**
ZBX_SOURCES=https://'zabbix':'k_LC6VHmJzNyB_3SBgtz'@gitcode.net/1284524409/zabbix.git
ZBX_BRANCH=zabbix_7.0.x_docker
ZBX_TODIR=/opt/${ZBX_BRANCH}
cd ${ZBX_TODIR}
git -c advice.detachedHead=false clone ${ZBX_SOURCES} --branch ${ZBX_BRANCH} --depth 1 --single-branch ${ZBX_TODIR}/
chmod 755 -R ${ZBX_TODIR}/
cd ${ZBX_TODIR}/

集成全中文模板


[Rocky8|centos7|centos8]

执行如下命令进行git安装

yum -y install git  

执行如下命令安装docker服务

# sh update_config-entrypoint_mysql.sh init  
sh update_config-entrypoint_pgsql.sh init  

执行如下命令下载docker镜像

# sh update_config-entrypoint_mysql.sh down
# sh update_config-entrypoint_mysql.sh prxdown
sh update_config-entrypoint_pgsql.sh down
# sh update_config-entrypoint_pgsql.sh prxdown

执行如下命令初始化配置文件

# sh update_config-entrypoint_mysql.sh cp  
sh update_config-entrypoint_pgsql.sh cp  

执行如下命令启动docker容器

# sh update_config-entrypoint_mysql.sh start
# sh update_config-entrypoint_mysql.sh prxstart
sh update_config-entrypoint_pgsql.sh start
# sh update_config-entrypoint_pgsql.sh prxstart

[Ubuntu]

ubunt系统请参考如下命令手动执行

root@ubuntu:/opt/zabbix_docker-7.0-latest# cat /etc/os-release | grep "Ubuntu "
PRETTY_NAME="Ubuntu 23.10"
ubuntu@ubuntu:~$ sudo sed -i 's/https:\/\/mirrors.aliyun.com/http:\/\/mirrors.cloud.aliyuncs.com/g' /etc/apt/sources.list
ubuntu@ubuntu:~$ sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
ubuntu@ubuntu:~$ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
ubuntu@ubuntu:~$ sudo passwd root
New password: 
Retype new password: 
passwd: password updated successfully
ubuntu@ubuntu:~$ su
Password: 
root@ubuntu:/home/ubuntu# curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add -
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK
root@ubuntu:/home/ubuntu# add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
root@ubuntu:/home/ubuntu# apt-get -y install docker-ce
root@ubuntu:/home/ubuntu# service docker start
root@ubuntu:/home/ubuntu# apt install git
root@ubuntu:/home/ubuntu# ZBX_SOURCES=https://gitcode.net/1284524409/zabbix.git
root@ubuntu:/home/ubuntu# ZBX_VERSION=zabbix_7.0.x_docker
root@ubuntu:/home/ubuntu# ZBX_NAME=zabbix_docker-7.0-latest
root@ubuntu:/home/ubuntu# ZBX_DIR=/opt
root@ubuntu:/home/ubuntu# cd ${ZBX_DIR}
root@ubuntu:/opt# git -c advice.detachedHead=false clone ${ZBX_SOURCES} --branch ${ZBX_VERSION} --depth 1 --single-branch ${ZBX_DIR}/${ZBX_NAME}
root@ubuntu:/opt# chmod 755 -R ${ZBX_DIR}/${ZBX_NAME}
root@ubuntu:/opt# cd ${ZBX_DIR}/${ZBX_NAME}
root@ubuntu:/opt/zabbix_docker-7.0-latest# ls -al /bin/sh
lrwxrwxrwx 1 root root 4 Jul 11  2023 /bin/sh -> dash
root@ubuntu:/opt/zabbix_docker-7.0-latest# sudo ln -fs /bin/bash /bin/sh
root@ubuntu:/opt/zabbix_docker-7.0-latest# ls -al /bin/sh
lrwxrwxrwx 1 root root 9 Jan 12 05:42 /bin/sh -> /bin/bash
root@ubuntu:/opt/zabbix_docker-7.0-latest# sh update_config-entrypoint_mysql.sh init
root@ubuntu:/opt/zabbix_docker-7.0-latest# sh update_config-entrypoint_mysql.sh down
root@ubuntu:/opt/zabbix_docker-7.0-latest# sh update_config-entrypoint_mysql.sh cp
root@ubuntu:/opt/zabbix_docker-7.0-latest# sh update_config-entrypoint_mysql.sh start

打开网页输入服务器IP地址访问zabbix
http://IP:8080 或 https://IP:8443
用户名: Admin
密码: zabbix

打开网页输入服务器IP地址访问grafana
https://IP:3000
用户名: admin
密码: admin

将grafana界面设置成中文

**启用zabbix插件

连接zabbix数据库插件

新建zabbix数据库连接
https://zabbix-web-nginx-mysql:8443/api_jsonrpc.php

输入正确的用户名密码
Admin/zabbix

zabbix-server服务器同时优化成了rsyslog日志服务器,rsyslog日志端口为514
日志存储路径为 /var/log/loki/

grafana优化集成了zabbix与Loki插件
请将任意.log后缀日志存入 /var/log/loki/即可连接到loki
URL为http://IP:3100

存储位置

映射的卷位于当前文件夹的zbx_env目录

zabbix-server配置文件位置
/opt/zabbix_docker-7.0-latest/env_vars/.env_srv

后期如果有新版本发布可以通过如下命令更新zabbix版本

# sh update_config-entrypoint_mysql.sh stop  
sh update_config-entrypoint_pgsql.sh stop  
  
ZBX_SOURCES=https://gitcode.net/1284524409/zabbix.git  
ZBX_VERSION=zabbix_7.0.x_docker
ZBX_NAME=zabbix_docker-7.0-latest  
ZBX_DIR=/opt  
git init  
git remote add origin ${ZBX_SOURCES}  
cd ${ZBX_DIR}/${ZBX_NAME}  
git remote -v  
git fetch --all  
git reset --hard origin/${ZBX_VERSION}  
git pull  ${ZBX_SOURCES} ${ZBX_VERSION}  
chmod 755 -R ${ZBX_DIR}/${ZBX_NAME}  
cd ${ZBX_DIR}/${ZBX_NAME}  
  
# sh update_config-entrypoint_mysql.sh down  
sh update_config-entrypoint_pgsql.sh down  
  
# sh update_config-entrypoint_mysql.sh start  
sh update_config-entrypoint_pgsql.sh start  

全文完结

### 使用 Docker 部署前后端应用并配置 Zabbix 监控 #### 前后端项目的 Docker 部署 为了实现前后端项目的部署,可以分别创建前端和后端的服务容器。以下是基本流程: 1. **构建前端服务** 将前端代码打包成静态文件,并使用 Nginx 提供服务。 ```dockerfile # Frontend Dockerfile FROM nginx:alpine COPY dist /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] ``` 2. **构建后端服务** 后端可以根据具体技术栈选择合适的基础镜像(如 Node.js、Python Flask/Django 等),并将应用程序代码复制到容器中。 ```dockerfile # Backend Dockerfile (Node.js Example) FROM node:16-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 3000 CMD ["node", "server.js"] ``` 3. **编写 `docker-compose.yml` 文件** 组合前后端服务并通过 Compose 工具启动。 ```yaml version: '3' services: frontend: build: context: ./frontend dockerfile: Dockerfile ports: - "80:80" backend: build: context: ./backend dockerfile: Dockerfile ports: - "3000:3000" depends_on: - db db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: appdb volumes: - db_data:/var/lib/mysql volumes: db_data: ``` --- #### Zabbix Server 的 Docker 部署与监控配置 1. **安装 Zabbix Server 和 Agent** 可以通过官方提供的 Zabbix Docker 镜像快速搭建环境[^4]。 ```bash docker run --name some-zabbix \ -e DB_SERVER_HOST="zabbix-db" \ -e POSTGRES_DB="zabbix" \ -e POSTGRES_USER="zabbix" \ -e POSTGRES_PASSWORD="your_password" \ -p 80:8080 \ -d zabbix/zabbix-server-pgsql:latest ``` 对于 PostgreSQL 数据库容器的初始化命令如下: ```bash docker run --name zabbix-db \ -e POSTGRES_DB="zabbix" \ -e POSTGRES_USER="zabbix" \ -e POSTGRES_PASSWORD="your_password" \ -d postgres:12 ``` 2. **启用 Zabbix Docker Module** 加载特定模块 `zabbix_module_docker.so` 来监控 Docker 容器的状态和性能指标[^1]。此模块会自动收集容器的数量、状态以及其他运行时参数。 修改 Zabbix Agent 配置文件 `/etc/zabbix/zabbix_agentd.conf` 添加以下内容: ``` LoadModulePath=/usr/lib/zabbix/modules LoadModule=zabbix_module_docker.so ``` 并重启 Zabbix Agent 使更改生效。 3. **导入模板并设置监控项** 导入适用于 Docker 的监控模板[^3],确保能够捕获 CPU 利用率、内存消耗、磁盘 I/O 等关键指标。可以通过 Web UI 进行操作或者直接上传 JSON 格式的模板文件。 4. **验证数据采集效果** 登录 Zabbix Web 控制台查看图表展示情况,确认所有预期的数据均已成功上报至服务器[^2]。 --- ### 示例代码片段 以下是一段简单的 Python 脚本用于模拟自定义监控逻辑: ```python import psutil def get_system_metrics(): cpu_usage = psutil.cpu_percent(interval=1) memory_info = psutil.virtual_memory() disk_usage = psutil.disk_usage('/') metrics = { "cpu": cpu_usage, "memory_total": memory_info.total, "memory_used": memory_info.used, "disk_total": disk_usage.total, "disk_used": disk_usage.used } return metrics if __name__ == "__main__": system_metrics = get_system_metrics() print(system_metrics) ``` 上述脚本可作为外部检查的一部分集成进 Zabbix 中。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NoYoWiFi

感谢大佬赐赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值