当前位置:首页 > 技术文章 > 正文内容

使用docker在Kylin v10下安装zabbix 6.4

arlanguage5个月前 (12-18)技术文章66



环境

操作系统: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

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/309.html

标签: nginx配置ci
分享给朋友:

“使用docker在Kylin v10下安装zabbix 6.4” 的相关文章

如何实现在线视频播放?

视频点播1. 视频点播需求分析1.1 需求描述视频点播需求如下:1、学生可以在windows浏览器上在线观看视频。2、播放器具有快进、快退、暂停等基本功能。1.2 视频点播解决方案1.2.1 流媒体流媒体详细参考:https://baike.baidu.com/item/%E6%B5%81%E5%A...

2022年从零开始,用一篇博客掌握 nginx 的初级配置

当 nginx 安装之后,默认的配置如下所示(数据来源为宝塔自动生成),本篇博客重点介绍的是配置虚拟机相关内容,即 server 块配置项。 server 块的指令主要用于设置主机和端口, location 块用于匹配网页路径,一个 http 块可以包含多个 server 。基础配置server {...

Nginx路由匹配规则location的小总结

使用过nginx的同学都知道,在nginx配置文件中通过location配置路由转发规则,配置语法为:location [=|~|~*|^~] /uri/ { ... }中括号中为路由匹配符号,常见的有:1 =:精确匹配 2 ^~:精确前缀匹配 3 ~:区分...

5分钟搞懂nginx的location匹配规则

目录概述location介绍location指令语法location配置实例解析location常用场景实战禁止访问.sh后缀的文件实例php7进阶到架构师相关阅读概述这是关于php进阶到架构之Nginx进阶学习的第一篇文章:5分钟搞懂nginx的location匹配规则第一篇:5分钟搞懂nginx...

Nginx负载均衡安全配置说明2 nginx负载均衡配置文件

上一节,我们对Nginx安全配置的几个知识点做了一个说明,例如限制IP访问、文件目录禁止访问限制、需要防止DOS攻击、请求方法的限制和限制文件上传的大小这个进行了一个分析说明,详细的文章请关注我的头条号:一点热,在里面看回之前的文章,快速入口Nginx负载均衡的一些安全配置说明其实,配置Nginx的...

Linux 网络延迟排查方法 linux延迟10秒

在 Linux 服务器中,可以通过内核调优、DPDK 以及 XDP 等多种方式提高服务器的抗攻击能力,降低 DDoS 对正常服务的影响。在应用程序中,可以使用各级缓存、WAF、CDN 等来缓解 DDoS 对应用程序的影响。但是需要注意的是,如果 DDoS 流量已经到达 Linux 服务器,那么即使应...