使用docker在Kylin v10下安装zabbix 6.4
mhr18 2024-09-26 14:28 23 浏览 0 评论
环境
操作系统:Kylin v10
内核版本: 4.19.90-52.22.v2207.ky10.x86_64
zabbix server版本: 6.4.11
mysql 版本: 8.0
docker版本:23.0.6
安装docker
这里是本次安装需要的所有文件,若为离线环境可以提前下载,docker镜像可以通过docker save的方式导出,复制到离线环境使用docker load 加载即可。
# docker 二进制文件,解压即用
wget https://download.docker.com/linux/static/stable/x86_64/docker-23.0.6.tgz
# zabbix server,使用mysql作为数据库
docker pull zabbix/zabbix-server-mysql:alpine-6.4-latest
#使用oracle linux镜像,mysql 8.0
docker pull mysql:8.0-oracle
# nginx做前端,zabbix web应用,使用mysql作为数据库
docker pull zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest
#zabbix 的java gateway组件
docker pull zabbix/zabbix-java-gateway:alpine-6.4-latest
#这里有两种方法,可以通过容器运行agent,也可以下载源码,编译生成,建议使用编译,易适配麒麟系统
docker pull zabbix/zabbix-agent2:alpine-6.4-latest
wget https://cdn.zabbix.com/zabbix/sources/stable/6.4/zabbix-6.4.11.tar.gz
#kylin v10 docker 补丁
wget https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/x86_64/Packages/docker-engine-18.09.0-101.p03.ky10.x86_64.rpm
#停止firewalld,禁止开机启动
systemctl stop firewalld
systemctl disable firewalld
2.1 解压docker二进制文件
tar zxvf docker-23.0.6.tgz
mv docker/* /usr/bin
2.2 添加docker 为service,并配置开机启动
cat > /usr/lib/systemd/system/docker.service << EOF
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
EOF
#开机启动
systemctl enable docker
2.3 修改data目录
mkdir -p /data/docker
cat >> /etc/docker/daemon.json << EOF
{
"data-root": "/data/docker"
}
EOF
#重新加载配置,启动docker
systemctl daemon-reload && systemctl restart docker
注意:在银河麒麟操作系统V10上面将docker的cgroup改成systemd以后,创建容器时会出现:“Error response from daemon: OCI runtime create failed: container_linux.go:318: starting container process caused "process_linux.go:281: applying cgroup configuration for process caused "No such device or address"": unknown.”这样的错误。参考文末FAQ进行补丁安装即可。
2.4.创建docker网络
#创建网络时需注意,默认bridge 使用的172.20.240.0/16 所以如果按照官网后面可能会导致通过宿主机ip+端口无法访问到容器端口。这里需要改一下ip地址池。
docker network create --subnet 172.23.0.0/16 --ip-range 172.23.241.0/20 zabbix-net
安装mysql
3.1 创建mysql配置文件
mkdir -p /data/zabbix_mount/mysql/data /data/zabbix_mount/mysql/conf
cat >> /data/zabbix_mount/mysql/conf/my.cnf << EOF
[mysqld]
skip-host-cache
skip-name-resolve
general_log=ON
general_log_file=/var/lib/mysql/mysql.log
log_error=/var/lib/mysql/mysql-error.log
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
max_connections=40960
skip-host-cache
skip-name-resolve
skip-ssl
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect='SET NAMES utf8mb4'
#lower_case_table_names = 1
explicit_defaults_for_timestamp = true
max_connect_errors = 600
back_log = 110
table_open_cache = 600
table_definition_cache = 700
table_open_cache_instances = 64
thread_stack = 512K
external-locking = FALSE
thread_cache_size = 20
interactive_timeout = 1800
#wait_timeout = 1800
#lock_wait_timeout = 3600
skip-log-bin
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock
!includedir /etc/mysql/conf.d/
EOF
3.2 运行,启动
docker run --name mysql-server -t \
-p 3306:3306 \
-v /etc/localtime:/etc/localtime:ro \
-v /data/zabbix_mount/mysql/data:/var/lib/mysql \
-v /data/zabbix_mount/mysql/conf/my.cnf:/etc/my.cnf \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD='Changeme' \
-e MYSQL_ROOT_PASSWORD="Changeme" \
--network=zabbix-net \
--restart unless-stopped \
-d mysql:8.0-oracle \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
解释:
-p 端口映射,前面端口为宿主机端口,后面端口为容器端口;
-v volume,以上做了三个挂载,一个时区,保证容器时间与物理机一致,另外两个是将数据库数据和配置文件外挂,方便优化修改;
-e 为数据库使用的相关环境变量,密码需要修改为自己的密码;
--default-authentication-plugin=mysql_native_password mysql8 默认修改了密码验证方式,但是为了应用适配,需要改成mysql_native_password的密码认证;
-d 后台运行
--network 指定容器网络
--restart 容器重启策略
安装zabbix组件 java-gateway
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart unless-stopped \
-d zabbix/zabbix-java-gateway:alpine-6.4-latest
安装配置zabbix-server
5.1 创建目录
mkdir -p /data/zabbix_mount/zabbix/conf
5.2 运行
docker run --name zabbix-server-mysql -t \
-v /data/zabbix_mount/zabbix/conf/zabbix_server.conf:/etc/zabbix/zabbix_server.conf \
-v /data/zabbix_mount/zabbix/logs:/etc/zabbix/logs \
-v /data/zabbix_mount/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD='Changeme' \
-e MYSQL_ROOT_PASSWORD='Changeme' \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--network=zabbix-net \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-6.4-latest
安装配置zabbix-web
mkdir /data/zabbix_mount/nginx/conf -p
docker run --name zabbix-web-nginx-mysql -t \
-v /etc/localtime:/etc/localtime:ro \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD='Changeme' \
-e MYSQL_ROOT_PASSWORD='Changeme' \
--network=zabbix-net \
-e ZBX_SERVER_NAME="运维监控平台" \
-p 18080:8080 \
--restart unless-stopped \
-v /data/zabbix_mount/nginx/conf/nginx.conf:/etc/zabbix/nginx.conf \
-d zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest
注意:#若无法访问检查zabbix-net 是否与其他桥接网络子网地址冲突、或firewalld是否忘记关闭。
安装zabbix-agent
7.1 创建用户
groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix
7.2 解压,编译,安装
tar -zvxf zabbix-6.4.11.tar.gz && cd zabbix-6.4.11
./configure --prefix=/usr/local/zabbix_agent --enable-agent && make && make install
7.3 创建zabbix-agent.service
cat >> /usr/lib/systemd/system/zabbix-agent.service << 'EOF'
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/zabbix_agent/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/sysconfig/zabbix_agent
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/local/zabbix_agent/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERMMAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.targe
EOF
7.4 开机启动
systemctl enable zabbix-agent
systemctl start zabbix-agent
7.5 做个软连,方便编辑修改配置
mkdir /etc/zabbix
ln -s /usr/local/zabbix_agent/etc/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf
7.6. 修改zabbix_agentd.conf
Server 改为容器地址或宿主机IP
ServerAcitvice改为容器地址或宿主机IP
登录web,将web上的zabbix-server地址改为宿主机IP
FAQ
8.1.问题描述
描述1:在银河麒麟操作系统V10上面将docker的cgroup改成systemd以后。启动容器报错
报错信息:docker: Error response from daemon: OCI runtime create failed: container_linux.go:318: starting container process caused "process_linux.go:281: applying cgroup configuration for process caused "No such device or address"": unknown.
8.2.软件包修复版本
·银河麒麟高级服务器操作系统 V10 SP1 (aarch64、x86_64)
docker-engine-18.09.0-101.p03.ky10或以上版本
8.3.修复方法
方法一:配置源进行升级安装
1.打开软件包源配置文件,根据仓库地址进行修改。
仓库源地址:
银河麒麟高级服务器操作系统 V10 SP1
aarch64:https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/aarch64/
x86_64:https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/x86_64/
2.配置完成后执行更新命令进行升级,命令如下:
yum update Packagename
方法二:下载安装包进行升级安装
通过软件包地址下载软件包,使用软件包升级命令根据受影响的软件包
列表进行升级安装, 命令如下:
yum install Packagename
8.4.软件包下载地址
·银河麒麟高级服务器操作系统 V10 SP1
docker-engine(aarch64)软件包下载地址:
https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/aarch64/Packages/docker-engine-18.09.0-101.p03.ky10.aarch64.rpm
docker-engine(x86_64)软件包下载地址:
https://update.cs2c.com.cn/NS/V10/V10SP1.1/os/adv/lic/updates/x86_64/Packages/docker-engine-18.09.0-101.p03.ky10.x86_64.rpm
注:其他相关依赖包请到相同目录下载
8.5.修复验证
使用软件包查询命令,查看相关软件包版本是否与修复版本一致,如果版本一致,则说明修复成功。
rpm -qa | grep Packagename
相关推荐
- jdk17安装和配置环境变量(jdk安装步骤环境变量配置)
-
简单介绍JDK17是Java的一个长期支持(LTS)版本,于2021年9月发布。作为LTS版本,它将获得Oracle的长期支持,这意味着会获得安全更新和错误修复,直到2...
- jdk8安装和配置环境变量(jdk8配置环境变量win10)
-
简单介绍JDK8是Java开发工具包的一个重大版本,于2014年3月发布。它引入了许多重要的新特性,极大地改进了Java编程的体验,并提高了代码的效率和可读性。总结JDK8是一...
- Java开发环境的准备流程!(java开发环境的准备流程有哪些)
-
准备开发环境工欲善其事,必先利其器。在学习本书的技术内容之前,应先将开发环境搭建好。本书所涉及的基础环境将在本章准备,包括JDK、IntelliJIDEA和Maven。如果读者对这些环境较为熟悉,可...
- skywalking-全链路跟踪(链路追踪sleuth)
-
一、概述1、skywalking简介SkyWalking是一款广受欢迎的国产APM(ApplicationPerformanceMonitoring,应用性能监控)产品,主要针对微服务、Clou...
- Oracle项目管理系统之成本状态跟踪
-
卷首语成本费用管理模块功能分为公司级、项目级两个层级,其中公司级功能包括概预算管理、概预算定额管理、预算模板管理,以及控制估算管理等功能。费用与成本成本费用管理主要是为了合理利用资金资源,控制企业的成...
- 从入门到精通,Java最全学习路线(java自学路线)
-
最近好多小伙伴询问,该如何学习java?那些视频适合零基础学习呢?大多数都是一些刚入门的新手,还不了解这个行业,也不知道从何学起,开始的时候非常迷茫,在这给大家整理出一些学习路线。Java学习路线在这...
- SPARC M7最新技术 甲骨文首度在台发表
-
甲骨文首度在台发表SPARCM7最新技术,宣布推出全新SPARC系统產品系列,採用革命性的32内核、256执行绪SPARCM7微处理器。这套SPARC系统提供:先进的入侵防护和加密的Securit...
- 轻量化的企业级OLAP方案2(轻量化ar)
-
上一篇文章讲了一个轻量化的企业级OLAP方案,这一篇文章继续介绍另外一个方案。方案2:Greenplum1Greenplum介绍1.1Greenplum概念Greenplum数据库是一种基于Po...
- 时序数据库在水电站领域的应用(时序数据库优缺点)
-
大家好,上期经过了王宏志教授对数据库前沿领域的介绍,不知道小伙伴们是否对数据库领域有了更深的认识呢,本期让我们回归时序数据库,再来聊一聊时序数据库在水电站领域的应用。本文仅代表个人观点,如有偏颇之处,...
- 数据库SQL引擎比较(数据库引擎有哪些,有什么区别)
-
数据库SQL引擎的典型工作机制及详细分析如下,涵盖查询处理全流程中的核心机制与实际案例:一、SQL引擎核心处理流程1.解析与校验阶段词法/语法解析:SQL语句被拆解为Token序列,构建...
- Ubuntu系统密码(root密码)的修改方法
-
本文介绍在Linux系统的Ubuntu电脑中,修改账户用户密码(同时也修改了root用户密码)的方法。首先,如果此时处于登录页面(也就是意识到自己忘记密码的那个页面),就先点击右上角的关闭按钮...
- TablePlus:一个跨平台的数据库管理工具
-
TablePlus是一款现代化的跨平台(Window、Linux、macOS、iOS)数据库管理工具,提供直观的界面和强大的功能,可以帮助用户轻松管理和操作数据库。TablePlus免费版可以永久...
- 云满足用户对通过单一视图了解整体运营和数据的需求
-
ZD至顶网软件频道消息:云在简化IT和业务的同时也带来了新问题,这很有趣,不是吗?毫无疑问,云大幅降低了企业运行基础设施和应用的复杂性和成本;但您仍然面临一个老生常谈的问题——孤岛,只不过这次是在云...
- SQL_TOP(显示数据条数)(sqlserver显示查询的行数)
-
(8)SELECT(9)DISTINCT(11)<topNum><selectlist>(1)FROM[left_table](3)<join_type>...
- php搭建小型部门网站(php构建网站)
-
熟悉前端html,js,css,后端熟悉php,python,java只能称得上一般,还有很多坑待踩。鉴于所学很杂,决定利用对业务的熟悉来搞一个部门网站来简化大家的工作流程。初步设计方案后端用p...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle 空为0 (51)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)