ubuntu 20.04 基于docker快速搭建中文 zabbix 6.2监控平台

时间:2021-01-26 01:22:12

zabbix介绍:

1. zabbix-server

zabbix 的server 端,负责接收agent发送过来的监控数据,并且提供zabbix的所有核心功能。

2. database

用于存储监控数据和配置信息的数据库,目前常用的有mysql和postgresql两种数据库。

3. zabbix-web

zabbix的UI端,提供操作控制台和监控展示等功能。

4. zabbix-java-gateway

用于监控Java程序的JVM状态,zabbix本身无法直接从jvm获取监控指标,需使用该网关来实现。

5. zabbbix-agent

zabbix的代理端,部署在目标主机上,用于收集主机的监控数据,并提供给到zabbix server。

zabbix部署架构:

ubuntu 20.04 基于docker快速搭建中文 zabbix 6.2监控平台

docker 安装后效果(使用portainer查看)

ubuntu 20.04 基于docker快速搭建中文 zabbix 6.2监控平台

ubuntu 20.04 基于docker快速搭建中文 zabbix 6.2监控平台

一、基础配置

cat > /etc/apt/sources.list <<'EOF'
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted   #优先检索focal的main和restricted组件。
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal universe
deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe
deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu focal-security main restricted
deb http://mirrors.aliyun.com/ubuntu focal-security universe
deb http://mirrors.aliyun.com/ubuntu focal-security multiverse
EOF


更新源
apt-get update

二、安装docker+portainer

1.先卸载docker 防止已经安装过docker
sudo apt-get remove docker docker-engine docker.io containerd runc

2.安装依赖
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

5.导入阿里云证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

6.设置阿里云稳定仓库
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"


清华源证书(与阿里云二选一)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
清华源稳定仓库(与阿里云二选一)
sudo add-apt-repository "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"


7.更新仓库 (其实就是在 /etc/apt/sources.list 加了docker源)
apt update

8.查看docker都有那些版本
apt-cache madison docker-ce

9.安装指定版本docker 19.03.15版本 比较稳定 用的人多
apt install docker-ce=5:19.03.15~3-0~ubuntu-focal docker-ce-cli=5:19.03.15~3-0~ubuntu-focal

检查是否安装成功
 docker --version
 显示如下
Docker version 19.03.15, build 99e3ed8919

#############以下操作为可选##############
为了以后管理docker方便 安装一个portainer 用于管理docker容器

1.下载portainer 镜像
docker pull portainer/portainer

2.运行portainer 下载镜像并启动容器 开机自启动
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name prtainer-test portainer/portainer

3.验证安装 
浏览器访问服务器9000端口
http://10.10.201.161:9000/
并设置admin密-码
(portainer的local的Container里 可以看到容器的启动情况)

三、部署zabbix组件

1.安装数据库

zabbix支持mysql/postgresql两种数据库,本示例使用支持mysql的zabbix版本

下载镜像,zabbix 6.x版本要求使用mysql 8.0。

docker pull mysql:8.0

创建存储卷,用于持久化mysql数据。

#存放mysql数据
docker volume create -d local  mysql_data  
 #存放mysql日志
 docker volume create -d local  mysql_logs 
 #存放mysql配置文件 
 docker volume create -d local  mysql_conf

注释:存储卷默认存储位置路径为:/var/lib/docker/volume/${volume_name}

启动容器

docker run --name mysql-server -t \
   -v mysql_data:/var/lib/mysql \
      -v mysql_logs:/var/log/mysql \
      -v mysql_conf:/etc/mysql \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="123456" \
      --restart=unless-stopped \
      -d mysql:8.0 \
      --character-set-server=utf8 --collation-server=utf8_bin \
      --default-authentication-plugin=mysql_native_password

2. 安装zabbix-java-gateway

docker pull zabbix/zabbix-java-gateway:alpine-6.2-latest

启动容器

docker run --name zabbix-java-gateway -t \
   --restart=unless-stopped \
      -d zabbix/zabbix-java-gateway:alpine-6.2-latest

3.安装zabbix-server

下载镜像
docker pull zabbix/zabbix-server-mysql:6.2-alpine-latest

创建存储卷,用于存储zabbix配置文件。

docker volume create -d local  zabbix_server

启动server容器,开放10051/TCP端口,用于接收监控数据。添加--link参数,实现mysql和java-gateway容器间的互相通信

docker run --name zabbix-server-mysql -t \
    -v zabbix_server:/etc/zabbix \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="123456" \
      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
      --link mysql-server:mysql \
      --link zabbix-java-gateway:zabbix-java-gateway \
      --restart=unless-stopped \
      -p 10051:10051 \
      -d zabbix/zabbix-server-mysql:alpine-6.2-latest

注释:此方式适合所有容器部署在同一台主机上,如果是分开部署,则在前面的步骤需要开放相关端口,并通过局域网进行连接。

4.  安装Zabbix Web 界面

下载镜像
docker pull zabbix/zabbix-web-nginx-mysql:alpine-6.2-latest

启动web容器

docker run --name zabbix-web-nginx-mysql -t \
   -e PHP_TZ="Asia/Shanghai" \
   -e ZBX_SERVER_HOST="zabbix-server-mysql" \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="zabbix_pwd" \
      -e MYSQL_ROOT_PASSWORD="123456" \
      --link mysql-server:mysql \
      --link zabbix-server-mysql:zabbix-server \
      -p 80:8080 \
      --restart unless-stopped \
      -d zabbix/zabbix-web-nginx-mysql:alpine-6.2-latest

5.1 登录zabbix

部署完成后,打开浏览器访问主机地址,即可访问zabbix。

登录账号:Admin    

密码:zabbix

ubuntu 20.04 基于docker快速搭建中文 zabbix 6.2监控平台

ubuntu 20.04 基于docker快速搭建中文 zabbix 6.2监控平台

5.2 zabbix设置中文显示

User settings----profile----Language---update

ubuntu 20.04 基于docker快速搭建中文 zabbix 6.2监控平台

5.3添加linux客户端

ubuntu 20.04 基于docker快速搭建中文 zabbix 6.2监控平台

ubuntu 20.04 基于docker快速搭建中文 zabbix 6.2监控平台

ubuntu 20.04 基于docker快速搭建中文 zabbix 6.2监控平台


6.1.docker安装zabbix-agent2客户端

(一般不使用docker安装 zabbix-agent2 使用6.2或6.3的APT或者YUM 安装)

下载镜像
docker pull zabbix/zabbix-agent:alpine-6.2-latest

创建存储卷,用于存储agent配置文件

docker volume create -d local  zabbix_agent

启动agent容器

(ZBX_SERVER_HOST="10.10.201.161" 设置你自己的zabbix服务器的IP

如果agent容器是部署在zabbix服务器上 也是docker部署 需要写zabbix服务器容器的IP 一般不在服务器上部署

docker run --name zabbix-agent -t \
      -v zabbix_agent:/etc/zabbix \
      -e ZBX_HOSTNAME="host-01" \
      -e ZBX_SERVER_HOST="10.10.201.161" \ 
      -e ZBX_SERVER_PORT=10051 \
      -p 10050:10050 \
      --restart=unless-stopped \
      --privileged \
      -d zabbix/zabbix-agent:alpine-6.2-latest

注释:如果是部署在zabbix Server主机上的监控agent,此时的ZBX_SERVER_HOST需改为zabbix server的容器IP,而不能用主机IP

6.2.apt包安装zabbix-agent2客户端(UBUNTU)

#下载源
 wget https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-4+ubuntu20.04_all.deb

#安装源
 dpkg -i zabbix-release_6.2-4+ubuntu20.04_all.deb

#更新源
 apt update

#更新系统(时间较长)
sudo apt-get upgrade

#安装zabbix-agent2
apt install zabbix-agent2 zabbix-agent2-plugin-*

#从启动服务
systemctl restart zabbix-agent2
#加入开机启动
systemctl enable zabbix-agent2

#查看客户端10050端口是否正常
netstat -ntpl |grep zabbix

#修改zabbix-agent2配置文件
vim /etc/zabbix/zabbix_agent2.conf 
如下:
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=10.10.201.161   ########这里修改为zabbix服务端地址
ServerActive=10.10.201.161    ########这里修改为zabbix服务端地址
Hostname=zabbix-201-155                   #######设置主机名
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock

################下面是我10.10.201.155客户端的配置###########
root@k8s-harboed02:~# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf 
显示如下
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=10.10.201.161
ServerActive=10.10.201.161
Hostname=zabbix-201-155
Include=/etc/zabbix/zabbix_agent2.d/*.conf
PluginSocket=/run/zabbix/agent.plugin.sock
ControlSocket=/run/zabbix/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf
#############################################################
 
#从启动服务
systemctl restart zabbix-agent2
#查看客户端10050端口是否正常
netstat -ntpl |grep zabbix

ubuntu 20.04 基于docker快速搭建中文 zabbix 6.2监控平台

ubuntu 20.04 基于docker快速搭建中文 zabbix 6.2监控平台

6.3yum 安装zabbix-agent2客户端(centos 7)

下载源
rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/7/x86_64/zabbix-release-6.2-3.el7.noarch.rpm
更新
yum clean all
安装
yum install zabbix-agent2 zabbix-agent2-plugin-*
启动服务
Start Zabbix agent2 process

从启动服务
# systemctl restart zabbix-agent2
加入开机启动
# systemctl enable zabbix-agent2

查看客户端10050端口是否正常
netstat -ntpl |grep zabbix