记离线部署docker,以及docker下部署zabbix
一、离线安装docker
下载地址:https://download.docker.com/linux/static/stable/x86_64/
上传软件并解压
[root@localhost opt]# tar xvf docker-20.10.3.tgz
[root@localhost opt]# cp docker/* /usr/bin/
配置system启动脚本
[root@localhost ~]# vim /etc/systemd/system/docker.service
=========================================================================
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
============================================================================
[root@localhost ~]# chmod +x /etc/systemd/system/docker.service #添加执行权限
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start docker
二、找一台测试机,可以连接外网的,下载docker 镜像
1.启动一个空的Mysql服务器实例
[root@localhost ~]# docker run --name mysql-server -t \
> -e MYSQL_DATABASE="zabbix" \
> -e MYSQL_USER="zabbix" \
> -e MYSQL_PASSWORD="zabbix" \
> -e MYSQL_ROOT_PASSWORD="zabbix" \
> -d mysql:5.7 \
> --character-set-server=utf8 --collation-server=utf8_bin
55567956f8c4b459bb92c70d7e59fcfb696378a183f6976c36c52019afbf9b18
2. 启动Zabbix Java gateway实例
[root@localhost ~]# docker run --name zabbix-java-gateway -t \
-d zabbix/zabbix-java-gateway:latest
3.启动Zabbix server实例,并关联这个实例到已创建的MySQL服务器实例
[root@localhost ~]# docker run --name zabbix-server-mysql -t \
> -e DB_SERVER_HOST="mysql-server" \
> -e MYSQL_DATABASE="zabbix" \
> -e MYSQL_USER="zabbix" \
> -e MYSQL_PASSWORD="zabbix" \
> -e MYSQL_ROOT_PASSWORD="zabbix" \
> --link mysql-server:mysql \
> -p 10051:10051 \
> -d zabbix/zabbix-server-mysql:latest
4c4f36eec30f51cb693f7ac4115403878563ba13b5760ff0dad2b11a4417c326
4.启动Zabbix web 接口,并将它与MySQL服务器实例和Zabbix server实例关联
[root@localhost ~]# docker run --name zabbix-web-nginx-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 8080:8080 \ (此处我用8080:80和80:80web无法登录)
-d zabbix/zabbix-web-nginx-mysql:latest
1c8e8f900f55e55d90626fbce092e8b2c682c2dedcaaa4724981d07a2c9934e5
打包镜像:
[root@localhost ~]# docker save -o docker-zabbix.gz mysql:5.7 zabbix/zabbix-web-nginx-mysql:latest zabbix/zabbix-server-mysql:latest #打包三个镜像
三、离线服务器上部署zabbix
上传打包好的镜像到离线服务器,导入镜像
[root@localhost opt]# docker load -i docker-zabbix.gz

启动镜像,方法同有网络情况一样。
=============================================================================
[root@localhost ~]# docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin
ae216318a740c8a36e160d3dd7c9b528b7f9c018dfe98b61bb65587b23214848
[root@localhost ~]# docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
--link mysql-server:mysql \
-p 10051:10051 \
> -d zabbix/zabbix-server-mysql:latest
c0c65c3ab0adbc1eb97b3123062d9baad60efc0c98d35f376d81cb08821a6334
[root@localhost ~]# docker run --name zabbix-web-nginx-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 8080:8080 \
-d zabbix/zabbix-web-nginx-mysql:latest
aaac9539cc1e4dd47223ad805f4ccf2423a000b13f68e1a5db08e630916e8028
[root@localhost ~]# docker ps
=============================================================================
通过http://service_ip:8080/登录
用户名:Admin
密码:zabbix

修改时区和语言

四、Zabbix客户端部署
下载地址:
上传tar包
[root@localhost zabbix_agent]# tar xvf zabbix_agent-5.2.3-linux-3.0-amd64-static.tar.gz
[root@localhost local]# mkdir zabbix-agent
[root@localhost local]# mv /opt/zabbix_agent/* /usr/local/zabbix-agent/

创建软连接
[root@localhost zabbix-agent]# rm -f /usr/bin/zabbix_sender
[root@localhost zabbix-agent]# ln -s /usr/local/zabbix-agent/bin/zabbix_sender /usr/bin/
[root@localhost zabbix-agent]# ln -s /usr/local/zabbix-agent/bin/zabbix_get /usr/bin/
[root@localhost zabbix-agent]# ll /usr/bin//zabbix_*
lrwxrwxrwx 1 root root 38 2月 26 14:46 /usr/bin//zabbix_get -> /usr/local/zabbix-agent/bin/zabbix_get
lrwxrwxrwx 1 root root 41 2月 26 14:46 /usr/bin//zabbix_sender -> /usr/local/zabbix-agent/bin/zabbix_sender

sbin目录下。ls可以看到这里面有个zabbix_agentd的可执行文件,这个可执行文件是zabbix 的客户端的可执行文件,agent可以用来获取和监控数据环境。同样建立软连接到usr 下面的sbin目录下。
[root@localhost zabbix-agent]# ln -s /usr/local/zabbix-agent/sbin/zabbix_agentd /usr/sbin/
[root@localhost zabbix-agent]# ll /usr/sbin/zabbix_agentd
lrwxrwxrwx 1 root root 42 2月 26 14:48 /usr/sbin/zabbix_agentd -> /usr/local/zabbix-agent/sbin/zabbix_agentd
conf目录下有一个zabbix_agentd.conf,就是zabbix-agent的配置文件。我们将它copy到/usr/local/etc目录下面。
[root@localhost ~]# cp /usr/local/zabbix-agent/conf/zabbix_agentd.conf /usr/local/etc/
进入到zabbix_agentd.conf进行修改
[root@localhost ~]# vi /usr/local/etc/zabbix_agentd.conf
zabbix_agentd.conf修改如下:
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=10.0.0.152#地址主动模式,填写Server的IP
ServerActive=10.0.0.152 #修改为Server的IP地址
Hostname=Zabbix server #重要:客户端的hostname,不配置则使用主机名
保存退出。
创建/var/log/zabbix/并给予权限。
mkdir /var/log/zabbix/
chown zabbix:zabbix /var/log/zabbix/
chmod 644 /var/log/zabbix/
touch /var/log/zabbix/zabbix_agentd.log
chmod 644 /var/log/zabbix/zabbix_agentd.log
拷贝启动脚本
[root@localhost ~]# cp /usr/local/zabbix-agent/sbin/zabbix_agentd /etc/init.d/
[root@localhost ~]# chmod +x /etc/init.d/zabbix_agentd
启动zabbix客户端
[root@localhost ~]# /etc/init.d/zabbix_agentd
zabbix_agentd [30375]: user zabbix does not exist
zabbix_agentd [30375]: cannot run as root!
这里提示错误,解决方法:
[root@localhost ~]# useradd zabbix -s /sbin/nologin
[root@localhost ~]# id zabbix
uid=1000(zabbix) gid=1000(zabbix) 组=1000(zabbix)
[root@localhost ~]# chown zabbix.zabbix /usr/local/zabbix-agent/*
再次启动:
[root@localhost ~]# /etc/init.d/zabbix_agentd
查看进程,确定是否启动成功
[root@localhost ~]# ps -ef|grep zabbix

记离线部署docker,以及docker下部署zabbix的更多相关文章
- java部署系列:CentOS下部署Java7/Java8
一.前言 1.本文主要内容 CentOS下部署OracleJDK CentOS下部署OpenJDK 2.适用范围与本篇环境 适用范围 1.CentOS 6+2.Java 7+ 本篇环境 1.CentO ...
- docker在CentOS7下部署指南
docker只支持CentOS7.x系统,所以近期根据docker官网指南自己搭建了一套,供大家参考. 1.部署Centos7.x系统,查看系统版本. 2.执行 sudo yum update 更新到 ...
- docker 容器模式下部署mysql 主从复制
1.计划用两台host来部署,分别部署一台 mysql,一主一从,2.配置好主从mysql配置文件,更改文件名即可[client]port = 3306socket = /var/run/mysqld ...
- Docker下部署springboot项目
1.背景 如何在docker容器环境下部署一个springboot项目? 2.具体步骤 第一步:准备一个springboot项目的xxxx.jar包 jar包中用于测试的一个接口如下 第二步:编写Do ...
- linux centos7 和 windows下 部署 .net core 2.0 web应用
centos7 下部署asp.net core 2.0应用 安装CentOS7 配置网络[可选] 安装.Net core2.0 创建测试Asp.net Core应用程序 正式部署项目 安装VMware ...
- 在tomcat下部署工程
xx系统第一期工程完成,今天老大要我去部署系统,从来就没有在tomcat下部署过,一直都是在myeclipse下部署.启动.运行即可,所以这次遇到了几个问题,记录下来. tomcat启动 在安装tom ...
- Linux下部署docker记录(0)-基础环境安装
以下是centos系统安装docker的操作记录 1)第一种方法:采用系统自带的docker安装,但是这一般都不是最新版的docker安装epel源[root@docker-server ~]# wg ...
- 设想 Docker 下部署 KVM
设想 Docker 下部署 KVM 一.安装 $ yum -y install kvm # kvm base , must $ yum -y install libvirt -y # libvirtd ...
- 在centos下部署docker内网私服
Docker内网私服:docker-registry with nginx & ssl on centos docker-registry既然也是软件应用,自然最简单的方法就是使用官方提供的已 ...
随机推荐
- AtCoder Beginner Contest 188 D - Snuke Prime (思维,差分)
题意:你需要订阅一些服务,每个服务每天需要花费\(c_i\),要从第\(a_i\)用到第\(b_i\)天,你可以购买会员,会员每天需要花费\(C\),但是这天的服务不用再另花钱了,问你订阅这些服务的最 ...
- 7.PowerShell DSC之模式
DSC两种模式 DSC有两种模式,Push模式和Pull模式 Push模式 基本流程 写配置--编译生成mof--推送到目标服务器,由目标服务器LCM执行mof并进行指定的配置 优点 架构简单.成本低 ...
- 一张图解决ThreadLocal
一张图解决ThreadLocal 一.前言 年底梳理知识体系时,研究了一下ThreadLocal的源码,整理了一张核心图. 想着,都走到这一步了,那就写一篇深度解读的文章吧.看过我之前文章的小伙伴都知 ...
- 【论文笔记】AutoML for MCA on Mobile Devices——论文解读与代码解析
理论部分 方法介绍 本节将详细介绍AMC的算法流程.AMC旨在自动地找出每层的冗余参数. AMC训练一个强化学习的策略,对每个卷积层会给出其action(即压缩率),然后根据压缩率进行裁枝.裁枝后,A ...
- LEETCODE - 1228【等差数列中缺失的数字】
C++: class Solution { public: int missingNumber(vector<int>& arr) { int subnum ...
- std::invoke_result的实现详解
目录 目录 前言 invoke_result 标准库中的invoke_result 我的实现 后记 前言 本篇博文将详细介绍一下libstdc++中std::invoke_result的实现过程,由于 ...
- 缓冲区溢出实验 5 Snprintf
实验环境.代码.及准备 https://www.cnblogs.com/lqerio/p/12870834.html vul5 Snprintf函数,百度百科: 将可变个参数(...)按照format ...
- windows cmd 查看远程连接端口
查看远程端口号 Cmd tasklist /svc 在输出的内容中查找svchost.exe进程下termservice服务对应的PID,在此查看的PID为:276 然后输入命令:netstat ...
- leetcode17 电话号码的字母组合 dfs
就dfs吧.... 然后,我傻了.前一道题不用考虑空,这道题就要考虑.... 还有注意vector要引用传递 class Solution { public: void dfs(string temp ...
- 2019南昌网络赛H The Nth Item(二阶线性数列递推 + 广义斐波那契循环节 + 分段打表)题解
题意: 传送门 已知\(F(n)=3F(n-1)+2F(n-2) \mod 998244353,F(0)=0,F(1)=1\),给出初始的\(n_1\)和询问次数\(q\),设每一次的答案\(a_i= ...