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部署架构:
docker 安装后效果(使用portainer查看)
一、基础配置
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
5.2 zabbix设置中文显示
User settings----profile----Language---update
5.3添加linux客户端
主机---添加主机---
设置(主机名称 模板:选择 Templates/Operating systems---Linux by Zabbix agent)
主机群组:Linux servers)--
接口添加(agent 因为我们的客户端是安装的agent )--
更新
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
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