Docker-Compose一键部署Zabbix+Grafana(汉化)

前言

由于项目需要,近期使用Docker搭了一个zabbix(ubuntu-3.4.3)+grafana(5.0.3)的服务器监控框架,grafana汉化使用前辈传承的在源代码上的汉化,真正实现一键快速搭建服务器监控模块。

1.Docker-Compose编写

准备

首先在服务器内建立以下目录(可以根据自我需求自行更改,记住同步即可):

zabbix相对应的数据库数据卷主机挂载位置/usr/local/docker/mysql/zabbix/database/mysql

grafana汉化的配置数据卷主机挂载位置

  • /usr/local/docker/grafana/grafana-storage
  • /usr/local/docker/grafana/grafana-etc

相应的汉化配置文件已上传到https://download.csdn.net/download/qq_42295733/21044717

解压后根据上述建立的挂载文件夹放入,即可完美使用我的汉化包

docker-compose.yml

不熟悉docker以及docker-compose安装以及使用的可以参考本人博客:https://blog.csdn.net/qq_42295733/article/details/115296713

version: '2.0'
 
services:
  # zabbix-server 容器配置
  server:
    image: zabbix/zabbix-server-mysql:ubuntu-3.4.3
    container_name: zabbix-server
    depends_on:
     - mysql
    #  - agent
    environment:
      TZ: Asia/Shanghai
      DB_SERVER_HOST: "mysql"
      MYSQL_DATABASE: "zabbix"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "zabbix_pwd"
      MYSQL_ROOT_PASSWORD: "root_pwd"
    ports:
     - "10051:10051"
    volumes:
     - /etc/localtime:/etc/localtime:ro
    links:
     - mysql:zabbix-mysql
    #  - agent:zabbix-agent
    user: root
    networks:
      zabbixbr:
        ipv4_address: 172.25.0.6
    restart: always
 
  # zabbix-agent 容器配置
#   agent:
#     image: zabbix/zabbix-agent:ubuntu-3.4.3
#     container_name: zabbix-agent
#     privileged: true
#     ports:
#      - "10050:10050"
#     volumes:
#      - /etc/localtime:/etc/localtime:ro
#     user: root
#     networks:
#       zabbixbr:
#         ipv4_address: 172.25.0.5
#     restart: always
 
  # zabbix web 环境容器配置
  web:
    image: zabbix/zabbix-web-nginx-mysql:ubuntu-3.4.3
    container_name: zabbix-web
    depends_on:
     - mysql
     - server
    environment:
      TZ: Asia/Shanghai
      DB_SERVER_HOST: "mysql"
      ZBX_SERVER_HOST: "server"
      MYSQL_DATABASE: "zabbix"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "zabbix_pwd"
      MYSQL_ROOT_PASSWORD: "root_pwd"
    volumes:
     - /etc/localtime:/etc/localtime:ro
 
    links:
      - mysql:zabbix-mysql
      - server:zabbix-server
    ports:
     - "90:80"
    user: root
    networks:
      zabbixbr:
        ipv4_address: 172.25.0.4
    restart: always 
 
  # mysql 容器配置
  mysql:
    image: mysql:5.7
    container_name: zabbix-mysql
    command: --character-set-server=utf8 --collation-server=utf8_general_ci
    environment:
      TZ: Asia/Shanghai
      MYSQL_DATABASE: "zabbix"
      MYSQL_USER: "zabbix"
      MYSQL_PASSWORD: "zabbix_pwd"
      MYSQL_ROOT_PASSWORD: "root_pwd"     
    networks:
      zabbixbr:
        ipv4_address: 172.25.0.3
    ports:
     - "3306:3306"
    volumes:
     # 数据库 volume 路径:根据自己需求调整
     - /usr/local/docker/mysql/zabbix/database/mysql:/var/lib/mysql
     - /etc/localtime:/etc/localtime:ro
    restart: always

  # Grafana 容器配置
  grafana:
    image: grafana/grafana:5.0.3
    container_name: zabbix-grafana
    environment:
     TZ: Asia/Shanghai
     # 下面填写你想安装的插件,多项逗号分隔,当然也可以直接把插件上传到下面的 volume 中
     GF_INSTALL_PLUGINS: alexanderzobnin-zabbix-app
     # 挂载储存用的 volume,映射到宿主目录 /var/lib/docker/volumes 下
    volumes:
      # 插件和 Grafana 的用户配置数据放这里面
      - /usr/local/docker/grafana/grafana-storage:/var/lib/grafana
      # grafana.ini 配置文件在里面
      - /usr/local/docker/grafana/grafana-etc:/etc/grafana
    ports:
      - "3000:3000"
    networks:
      zabbixbr:
        ipv4_address: 172.25.0.2
    restart: always
 
# 容器 内网配置
networks:
  zabbixbr:
    driver: bridge
    ipam:
     config:
       - subnet: 172.25.0.0/16
         # 内网网关
         gateway: 172.25.0.1

为何注释掉zabbix-agent容器的搭建?

因为zabbix-agent顾名思义是zabbix的客户端所在的位置,客户端所在的位置自然就是所要监控的服务器,如果使用容器构建的话,监控的是容器的信息,没有多大的用处。如果想要一键式搭建的测试的话,可以关掉注释内容。

后续将Docker-Compose.yml文件拷贝到服务器,运行即可

# 启动部署
docker-compose -d up
# 卸载容器
docker-compose down
# 查看服务器当前镜像
docker images
# 查看服务器当前容器
docker ps -a

2.在目标PC配置zabbix-agent

安装:

# 安装zabbix
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
# 安装zabbix-agent
yum install zabbix-agent

启动

# 将zabbix-agent设置为每次开机启动
systemctl enable zabbix-agent.service
# 服务立即启动 下次不启动
systemctl start zabbix-agent.service
# 查看zabbix-agent的运行状况
systemctl status zabbix-agent.service

编辑

# 编辑zabbix-agent的配置文件
vim /etc/zabbix/zabbix_agentd.conf

# 修改配置文件中以下字段为
Server=172.25.0.6
ServerActive=172.25.0.6
# 外网IP(监控的服务器多了容易辨别)
Hostname= 172.18.23.82

# 查看zabbix-agent的运行日志
cat /var/log/zabbix/zabbix_agentd.log

解析配置

Server对应的是zabbix服务器的ip,由于采用docker安装,故使用docker分配的内网地址

ServerActive是主动服务推送,故也应对应zabbix服务器的ip

Hostname是主机名,在zabbix-web中配置时要与此处对应

这里存在的坑就是docker安装的zabbix的版本一定、一定、一定要和zabbix-agent的大版本一致,比如本文全是用的3

zabbix-agent服务启动成功

Docker-Compose一键部署Zabbix+Grafana(汉化)_第1张图片

3.zabbix-web配置监控PC

之前的配置完成后,现在需要在zabbix-web页面配置监控的PC用来显示相应的监控数据

打开http://服务器外网Ip:90/,初始用户名:Admin 密码:zabbix

进入后修改语言为中文

Docker-Compose一键部署Zabbix+Grafana(汉化)_第2张图片

然后创建主机

Docker-Compose一键部署Zabbix+Grafana(汉化)_第3张图片

配置agent

Docker-Compose一键部署Zabbix+Grafana(汉化)_第4张图片

配置模板
Docker-Compose一键部署Zabbix+Grafana(汉化)_第5张图片

成功

第一次如果agentserver不在同一个服务器,编辑127.0.0.1agent为相应的ip,模板监控Temlate OS Linux即可

在这里插入图片描述

4.配置grafana

访问http://ip:3000/,初始账号、密码:admin,admin

如若根据本文安装,此时grafana中的zabbix插件已启动

Docker-Compose一键部署Zabbix+Grafana(汉化)_第6张图片

如若没有,自行启动

接下来就是配置数据源(由于使用我的配置,这些都会显示已配置好,只需进入修改为自己对应的信息即可,其实只需修改URLip地址即可)

Docker-Compose一键部署Zabbix+Grafana(汉化)_第7张图片

Docker-Compose一键部署Zabbix+Grafana(汉化)_第8张图片

注意:docker安装的zabbixurlhttp://zabbix-web的ip/api_jsonrpc.php,非docker安装是http://zabbix-web的ip/zabbix/api_jsonrpc.php

配置完后点击Save & Test测试能否正确获取agent的数据

成功后进入Dashboards->Manage->服务器监控即可显示

后续集成点击右上方分享,获取相应的地址即可快速集成

参考:

  • https://github.com/fivestrong/zabbix-grafana-docker

你可能感兴趣的:(服务器,docker,服务器监控,zabbix,grafana)