zabbix6.0 部署配置

zabbix6.0 部署配置_第1张图片

架构

先简单介绍zabbix监控的最主要的两个组件: zabbix server zabbix agent
server 用来部署 web console以及相关的数据存储,所以需要配合一些数据库来保存数据,比如mysql,pgsql, 又有前端的页面所以还需要配置 nginxgetway
所以 server端需要三个服务来组成,如果没有数据库,还要在加个数据库的服务

web console 可以方便的配置和管理 主机/监控项/监控图表 等。

agent就比较简单了,主要就是用来采集设备或者docker服务的数据,发送给server
可以参考官方给的说明Zabbix 概述

部署

我这里有三台主机需要监控,所以我选一台来部署server,我是通过docker来部署
最终的 docker ps 查看运行的容器列表如下:

CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS      PORTS                                             NAMES
908999713a18   zabbix/zabbix-web-nginx-mysql:alpine-6.0-latest   "docker-entrypoint.sh"   5 days ago   Up 5 days   8443/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp   zabbix-web-nginx-mysql
f8b6bc2c3213   zabbix/zabbix-server-mysql:alpine-6.0-latest      "/sbin/tini -- /usr/…"   5 days ago   Up 5 days   0.0.0.0:10051->10051/tcp, :::10051->10051/tcp     zabbix-server-mysql
bde2afae52d9   mysql:8.0                                         "docker-entrypoint.s…"   5 days ago   Up 5 days   3306/tcp, 33060/tcp                               mysql-server
5a24770317a9   zabbix/zabbix-java-gateway:alpine-6.0-latest      "docker-entrypoint.s…"   5 days ago   Up 5 days   10052/tcp                                         zabbix-java-gateway

这里最好写一个docker-compose来管理这几个虚拟机,我这没来得及搞,主要是从官网示例-从容器中安装抄过来的,就偷了个懒
暂时先把具体的docker命令记录下:

docker network create zabbix-net

docker run --name mysql-server --network zabbix-net -t -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix"  -e MYSQL_PASSWORD="password" -e MYSQL_ROOT_PASSWORD="password"  -d mysql:8.0 --character-set-server=utf8 --collation-server=utf8_bin

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

docker run --name zabbix-server-mysql -t \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="password" \
      -e MYSQL_ROOT_PASSWORD="password" \
      -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
      --network=zabbix-net \
      -p 10051:10051 \
      --restart unless-stopped \
      -d zabbix/zabbix-server-mysql:alpine-6.0-latest

docker run --name zabbix-web-nginx-mysql -t \
      -e ZBX_SERVER_HOST="zabbix-server-mysql" \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="password" \
      -e MYSQL_ROOT_PASSWORD="password" \
      --network=zabbix-net \
      -p 80:8080 \
      --restart unless-stopped \
      -d zabbix/zabbix-web-nginx-mysql:alpine-6.0-latest

配置 agent

接下来在每个机器上启动zabbix agent2,然后配置zabbix agent2 conf链接到server
通过apt下载zabbix-agent2

apt install zabbix-agent2

主要是对 /etc/zabbix/zabbix_agent2.conf 修改两个参数
具体如下:

Server=serverhost
ServerActive=serverhost:10051

然后重启zabbix agent2服务

systemctl restart zabbix-agent2

配置 web console 主机 监控项 监控图表等

到web页面点点点就行了。
但是这里需要先了解zabbix的一些概念

主机 host

你要监控的主机,通过 ip port 配置到server,让server知道这个agent需要被监控

可以通过主机查看主机下的监控项,告警等配置

模板 template

把一堆的item放到一个template,方便复用给多个host,zabbix给了很多常见的监控项组合,这里可以结合自己的场景来选择相关的预定的template,如果不能满足你的需要,那么就需要自己创建模板,添加监控项/报警等内容。

监控项 item

就是监控的具体指标,通过 key 保证在 zabbix 系统里的唯一性。在一个host下每一个item都有唯一的key,不同的host可以有相同key的item,比如host下都有 key = system.cpu.util[,idle] 的监控项来监控系统的idle状况。

你可能感兴趣的:(1024程序员节,zabbix6,监控部署)