使用Docker搭建Zabbix运维监控系统

Zabbix项目地址

官方文档

Docker容器地址

启动MySQL

$ 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
变量说明
MYSQL_DATABASEMySQL用户名
MYSQL_USERMySQL 数据库名
MYSQL_PASSWORDMySQL 数据库密码
MYSQL_ROOT_PASSWORDMySQL ROOT密码

启动Zabbix Java gateway实例

这个实例主要用来监控Java,不监控Java的话可以不安装这个,同时,下方的Zabbix server实例中删除-e ZBX_JAVAGATEWAY=”zabbix-java-gateway” 和–link zabbix-java-gateway:zabbix-java-gateway,这边案例正常安装此实例

$ docker run --name zabbix-java-gateway -t \
      -d zabbix/zabbix-java-gateway:latest

启动Zabbix server实例

  • 且关联这个实例到已创建的MySQL服务器实例
$ 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" \
      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
      --link mysql-server:mysql \
      --link zabbix-java-gateway:zabbix-java-gateway \
      --network host \
      -p 10051:10051 \
      -d zabbix/zabbix-server-mysql:latest
变量说明
DB_SERVER_HOST数据库名称
MYSQL_DATABASE MySQL 用户名
MYSQL_USER MySQL 数据库名
MYSQL_PASSWORD MySQL 数据库密码
MYSQL_ROOT_PASSWORD MySQL ROOT密码
ZBX_JAVAGATEWAY配置Zabbix Java gateway ,默认不启动

启动Zabbix web 接口

$ 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 80:80 \
      -d zabbix/zabbix-web-nginx-mysql:latest
变量说明
DB_SERVER_HOST数据库名称
MYSQL_DATABASE MySQL 用户名
MYSQL_USER MySQL 数据库名
MYSQL_PASSWORD MySQL 数据库密码
MYSQL_ROOT_PASSWORD MySQL ROOT密码

查询容器状态

[centos@localhost ~]$ docker ps
CONTAINER ID        IMAGE                                  COMMAND                  CREATED              STATUS              PORTS                                            NAMES
1a1f287deff3        zabbix/zabbix-web-nginx-mysql:latest   "docker-entrypoint.sh"   About a minute ago   Up About a minute   0.0.0.0:80->80/tcp, 443/tcp                      zabbix-web-nginx-mysql
0a7691d48275        zabbix/zabbix-server-mysql:latest      "/sbin/tini -- /usr/…"   4 minutes ago        Up 4 minutes        0.0.0.0:10051->10051/tcp                         zabbix-server-mysql
4bc59e83d8c7        zabbix/zabbix-java-gateway:latest      "docker-entrypoint.s…"   6 minutes ago        Up 6 minutes        10052/tcp                                        zabbix-java-gateway
3b1d33a26031        mysql:5.7                              "docker-entrypoint.s…"   17 minutes ago       Up 17 minutes       3306/tcp, 33060/tcp                              mysql-server
b6483f3cac6a        portainer/portainer                    "/portainer"             59 minutes ago       Up 59 minutes       0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp   portainer

访问ZabbZix

  • 在浏览器输入宿主机IP:80进入WEB页面
  • 默认用户名:Admin
  • 默认密码: zabbix
  • 成功进去Zabbix首页

语言修改

  • 默认为英文,点击右下角的用户图标,然后找到 Language -Chinese(zh_cn),然后点击下方的更新按钮

启动Docker-Agent(可选)

监控Docker容器,可以使用zabbix-docker-monitoring项目,使用此项目可以监控宿主机上运行的所有Docker状态

https://github.com/monitoringartist/zabbix-docker-monitoring/

$ docker run \
  --name=dockbix-agent-xxl \
  --net=host \
  --privileged \
  -v /:/rootfs \
  -v /var/run:/var/run \
  --restart unless-stopped \
  -e "ZA_Server=<ZABBIX SERVER IP/DNS NAME/IP RANGE>" \
  -e "ZA_ServerActive=<ZABBIX SERVER IP/DNS NAME>" \
  -d monitoringartist/dockbix-agent-xxl-limited:latest
变量说明
ZA_Serverzabbix-server 容器的IP ( 非宿主机IP )/域名
ZA_ServerActivezabbix-server 容器的IP ( 非宿主机IP )/域名

安装 Zabbix-Agent (Docker环境)

查询 zabbix-server 容器的IP

  • 每次重启Docker,IP都会发生变化

方式一:

宿主机终端输入如下命令查询,将返回IPAddress

docker inspect zabbix-server-mysql|grep IPAddress

方式二:

使用Portainer,访问IP:9000,找到 Containers – zabbix-server-mysql,网页底部会有个 Connected networks,即可看到桥接的IP

运行 Zabbix-Agent

  • 以监控Zabbix服务器为例,Zabbix-Server和Zabbix-Agent安装在同一台主机的Docker上,运行不同的容器
$ docker run \
  --name zabbix-agent \
  -p 10050:10050 \
  -e ZBX_HOSTNAME="HostName" \
  -e ZBX_SERVER_HOST="Zabbix 服务器IP" \
  -e ZBX_SERVER_PORT=10051 \
  -d zabbix/zabbix-agent
变量说明
ZBX_HOSTNAMEZabbix 主机名称,服务器本机默认为Zabbix server
ZBX_SERVER_HOST zabbix-server 容器的IP( 非宿主机IP )
  • 如果无法上线,需配置防火墙,需要root权限
$ firewall-cmd --zone=public --add-port=10050/tcp --permanent
$ systemctl restart firewalld.service

Zabbix 错误警告

  • 出现错误 Zabbix agent is not available (for 3m)
  • Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused
  • 主要原因就是我们是将Zabbix服务器和Zabbix客户端都安装到了Docker上
  • 打开配置-主机,接口那的ip为127.0.0.1,这个IP是宿主机的IP,需要修改为 zabbix-agent 容器的IP
  • 点击名称那的 Zabbix server , 修改为zabbix-agent 容器的IP( 非 zabbix-server容器的IP )

查询zabbix-agent 容器的IP

方式一:

宿主机终端输入如下命令查询,将返回IPAddress

docker inspect zabbix-agent|grep IPAddress

方式二:

使用Portainer,访问IP:9000,找到 Containers – zabbix-agent,网页底部会有个 Connected networks,即可看到桥接的IP

  • agent代理程序的接口 IP地址处,填入刚刚查询到的 zabbix-agent 的IP
  • 等待几分钟,主机选项卡右侧的可用性中的ZBX将由红色变成绿色
  • 打开监测-仪表盘,可以看到错误已经消失,可用数量为1

Debain 安装 Zabbix-Agent (非Docker环境)

  • 在其他机器上安装监控,非服务器本机安装
  • 举例在Deabin平台下直接安装Zabbix-agent,本文以Kali为演示,Kali是基于Deabian开发的

下载 Zabbix-Agent

  • 选择合适的Zabbix平台和对应的系统版本,这边选择Zabbix 4.4,Debian 10,基于MySQL+Nginx

添加软件源

  • 下方会有命令提供
  • 下载软件源
$ sudo wget https://repo.zabbix.com/zabbix/4.4/debian/pool/main/z/zabbix-release/zabbix-release_4.4-1+buster_all.deb
  • 安装软件源
$ sudo dpkg -i zabbix-release_4.4-1+buster_all.deb
  • 更新软件源
$ sudo apt update

安装Zabbix-Agent

$ sudo apt install zabbix-agent

修改配置文件

$ sudo vim /etc/zabbix/zabbix_agentd.conf
变量说明
Server zabbix-server 宿主机IP( 非容器IP )
ServerActive zabbix-server 宿主机IP( 非容器IP )
Hostname主机名称,自定义(这边我取名为Kali Linux)

开机启动Zabbix-Agent

$ sudo systemctl enable zabbix-agent
$ sudo systemctl start zabbix-agent

查询Debain主机IP

$ ip addr

添加主机

打开Zabbix-Server的WEB网页端,然后找到配置主机创建主机,添加刚刚的主机名称和IP地址

变量说明
主机名称刚刚自定义的名称(这边自定义叫Kali Linux)
群组监控的群组(这边是Linux系统,选择Linux servers)
agent代理程序的接口 安装Agent的机器的IP地址
  • 先不要点击下方的更新按钮

添加模板

  • 切换到模板选项卡,点击 Link new templates 右侧的选择
  • 找到Templates/Operating systems 中的 Template OS Linux by Zabbix agent 并勾选
  • 点击添加按钮,然后稍等片刻

Zabbix-Agent运行检查

  • 可以看到下方的ZBX已经变成绿色上线了
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇