-------------------------------------------------------------------------------------------------  

| 欢迎关注个人公众号 zclinux_note 第一时间获取关于linux使用的技巧。探索Linux的奥秘 |

-------------------------------------------------------------------------------------------------

环境:CentOS7

内核:3.10.0-957.el7.x86_64

grafana+zabbix-server主机IP:192.168.25.100

zabbix_agent 主机IP:192.168.25.10

前提:需要事先停止selinux,iptables,firewalld服务

1.首先安装docker

(1)配置阿里云repo

yum install wget -y

wget -O /etc/yum.repos.d/CentOS7-Aliyun.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all 

yum makecache fast

(2)清除系统上原有老版本docker

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

(3)安装docker

安装自己的docker,我这里安装的是18.0.6的docker

安装环境依赖

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

下载阿里云的docker的repo文件

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

yum install docker-ce-18.06.0.ce -y

systemctl enable docker

systemctl start docker

查看docker版本是否正确

docker version

[root@docker ~]# docker version
Client:
 Version:           18.06.0-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        0ffa825
 Built:             Wed Jul 18 19:08:18 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.0-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       0ffa825
  Built:            Wed Jul 18 19:10:42 2018
  OS/Arch:          linux/amd64
  Experimental:     false

配置阿里docker镜像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://bxdltesm.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2.安装完成后,再创建相关目录环境

mkdir -p /data/zabbix/mysql

useradd mysql

chown -R mysql.mysql /data/zabbix/mysql

3.开始安装zabbix-mysql,zabbix-nginx,zabbix-server

这里强调一点,zabbix和server,agent,还有grafana都是最新版,在容器启动的最后一行都是latest,如果需要特殊版本,需要特别指定

先启动数据库容器

docker run --name mysql-server -t \

-e MYSQL_DATABASE="zabbix" \

-e MYSQL_USER="zabbix" \

-e MYSQL_PASSWORD="zabbix_pwd" \

-e MYSQL_ROOT_PASSWORD="root_pwd" \

-v /data/zabbix/mysql:/var/lib/mysql \

-d mysql:5.7

启动zabbix-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_pwd" \

-e MYSQL_ROOT_PASSWORD="root_pwd" \

--link mysql-server:mysql \

-p 10051:10051 \

-d zabbix/zabbix-server-mysql:latest

启动zabbix-server容器

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_pwd" \

-e MYSQL_ROOT_PASSWORD="root_pwd" \

--link mysql-server:mysql \

--link zabbix-server-mysql:zabbix-server \

-p 80:80 \

-d zabbix/zabbix-web-nginx-mysql:latest

4.安装agent,客户端需要修改ip,其实也可以手动安装

docker run --name zabbix-agent \

-e ZBX_HOSTNAME="zabbix-agent"  \

-e ZBX_SERVER_HOST="192.168.25.100" \

-p 10050:10050 \

--privileged \

-d zabbix/zabbix-agent:latest

手动安装zabbix-agent步骤

登陆该网站,选择自己的zabbix-server的版本(查看版本的方法是zabbix_server -V)

https://www.zabbix.com/download

然后看到下面有rpm -Uvh的命令,将其复制并执行再agent的服务器上

# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm

我这里是4.4的版本

完成后,执行yum install -y zabbix-agent

完成后,手动修改/etc/zabbix/zabbix-agentd.conf文件中的serverip,serveractive,

全部完成后,重启agent进程

systemctl restart zabbix-agent

查看监听端口10050是否被监听

至此,agent全部安装完成

5.安装grafana

用户名密码都是admin

docker run -d --name=grafana -p 3000:3000 grafana/grafana

所有容器启动后,查看容器是否都正常运行

[root@docker ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
96b983e4ca77 zabbix/zabbix-web-nginx-mysql:latest "docker-entrypoint.sh" Less than a second ago Up Less than a second 0.0.0.0:80->80/tcp, 443/tcp zabbix-web-nginx-mysql
1400794e747c zabbix/zabbix-agent:latest "/sbin/tini -- /usr/? Less than a second ago Up Less than a second 0.0.0.0:10050->10050/tcp zabbix-agent
2695290c1afe grafana/grafana "/run.sh" 21 hours ago Up Less than a second 0.0.0.0:3000->3000/tcp grafana
bf70f93e0a1c zabbix/zabbix-server-mysql:latest "/sbin/tini -- /usr/? 21 hours ago Up Less than a second 0.0.0.0:10051->10051/tcp zabbix-server-mysql
efd6f9b4460e mysql:5.7 "docker-entrypoint.s? 21 hours ago Up Less than a second 3306/tcp, 33060/tcp mysql-server

打开zabbix的网页管理界面

http://192.168.25.100/zabbix

这里无需setup,容器已经都自动安装配置好,登陆直接就是控制台

分别点击【配置】 --> 【主机】-->【创建主机】

配置模板

完成后点击保存(因为我已经添加过了,所以显示的是更新按钮)

显示为绿色证明agent已经被server端监控好了

下面查看grafana是否安装成功

http://192.168.25.100:3000

账号密码都是admin,第一次登陆会强制修改密码

进入之后,需要创建新用户

点击邀请

创建的用户可以分配不同权限,我这里给了编辑权限,邮件选择不发送

点击复制邀请连接,在浏览器新界面点开

复制出来的地址可能是localhost,需要将其修改为本地server的ip,我这里是192.168.25.100

密码完成后,会自动登陆

6.安装grafana的zabbix插件

登陆到grafana的容器中操作

# docker exec -it grafana /bin/bash

root@a92fe62a4475:/# grafana-cli plugins install alexanderzobnin-zabbix-app

会提示一些信息,等待完成                                                                 

root@a92fe62a4475:/# exit

重启grafana容器

docker restart grafana

完成后,再次进入到grafana的控制台,使用admin用户

找到zabbix

点击enable,然后看下是否有更新update一下

完成后,进入到data sources中,配置zabbix的api

开始配置


成功后,会提示绿色的对勾

然后到上面找到这个

点击导入import

其中配置这个地方的时候,地址的url写的有问题,写成了http//192.168.25.100/zabbix/api_jsonrpc.php

结果一直提示file not found.....

查了一些关于php的,也查看了配置文件,都是正常,最后要查的地方是nginx的配置

进入到容器中

[root@docker ~]# docker exec -it 96b983e4ca77  /bin/bash

找到nginx的配置文件

vi /etc/nginx/conf.d/下的nginx.conf文件

发现,nginx的配置直接就是在zabbix下的,

原来是乌龙,重新配置后才真正生效,网上也有直接配置http://192.168.25.100/zabbix的,虽然也生效,但是api接口不正确,最后获取不到正确的数据的

7.简单创建监控项

如果配置都正确的话,前面的group和host都好后,application和item会自动弹出监控项

这样配置的api才正确

找到想监控的监控项后,修改名称

最后,点击保存,保存在标题栏上,一定要保存

这就是全部完整的流程

【Linux】在docker上部署grafana+zabbix监控实录的更多相关文章

  1. 【集群监控】Docker上部署Prometheus+Alertmanager+Grafana实现集群监控

    Docker部署 下载 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.re ...

  2. 使用VS把ASP.NET 5的应用发布到Linux的Docker上

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:我相信未来应用程序的部署模式首选一定会是Docker,所以.NET社区的朋友也不应该忽 ...

  3. 定期从Docker上部署的MySQL备份数据

    前段时间公司停电,正巧赶上周一领导要开会要过一遍项目,然而项目所依赖的MySQL数据库是直接部署在宿主机,且因为各人部署方式不同的原因,花了很久才在开会前启动起来.于是开完会后,我第一件事就是把原先依 ...

  4. 阿里云上部署了zabbix,突然无法收到报警邮件的解决办法

    在阿里云上部署了zabbix,一直能正常接收到zbx发来的报警邮件(报警邮箱是163的),不知是什么原因,突然无法接收到报警邮件了. 但在服务器上手动执行echo "hello"| ...

  5. Linux实战教学笔记49:Zabbix监控平台3.2.4(一)搭建部署与概述

    https://www.cnblogs.com/chensiqiqi/p/9162986.html 一,Zabbix架构 zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企 ...

  6. Linux实战教学笔记50:Zabbix监控平台3.2.4(二)深入理解zabbix

    https://www.cnblogs.com/chensiqiqi/p/9162986.html 一,Zabbix Web操作深入 1.1 Zabbix Web下的主机和模版以及监控项的添加方式 ( ...

  7. Linux实战教学笔记51:Zabbix监控平台3.2.4(三)生产环境案例

    https://www.cnblogs.com/chensiqiqi/p/9162986.html 一,Zabbix生产环境监测案例概述 1.1 项目规划 [x] :主机分组 交换机 Nginx To ...

  8. 本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上

    1.准备工作 环境 本地: Windows.Docker 代码仓库:Git 服务器:Linux.Docker 前提准备 创建个有dockerfile文件的dotnet core 3 web项目 新建一 ...

  9. 使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库

    一.背景 在平时开发过程当中需要针对 MySQL 数据库进行监控,这里我们可以使用 Grafana 和 Prometheus 来实现监控功能.Grafana 是一款功能强大的仪表盘面板,支持多种数据源 ...

随机推荐

  1. js实现元素范围内拖动

    元素拖拽,网上一堆的实现,其中很多是原生js写的,都不够简洁,甚至运行后看不到效果. 于是乎,安静地想了下,拖动元素貌似就是一个滑动事件的监听处理,具体操作如下: 1.一个外层DIV,或者直接用根节点 ...

  2. 手机版LED弹幕显示屏

    这是一款可以自制超大滚动字幕的LED显示屏APP.可以随你喜欢, 演唱会,电竞比赛,晚会,接机,寻人! 随时随地输入文字, 传达讯息,酒吧夜店疯狂打Call工具!蹦迪必备!超帅!下载地址:https: ...

  3. Consul 多数据中心下的服务注册发现与配置共享

    1. Consul简介   Consul是HashiCorp公司推出的开源软件,它提供了一套分布式高可用可横向扩展的解决方案,能为微服务提供服务治理.健康检查.配置共享等能力.   Eurake2.x ...

  4. 解决python3 ,ModuleNotFoundError: No module named 'pip'问题

    今天想要装一下PyYmal第三方库来写一下Python的desired_caps.yaml文件,候发现cmd窗口下无法执行pip命令, 出现了:ModuleNotFoundError: No modu ...

  5. Greenplum 性能优化之路 --(三)ANALYZE

    一.为什么需要 ANALYZE 首先介绍下 RBO 和 CBO,这是数据库引擎在执行 SQL 语句时的2种不同的优化策略. RBO(Rule-Based Optimizer) 基于规则的优化器,就是优 ...

  6. Docker(四):Docker安装Redis

    查找Redis镜像 镜像仓库 https://hub.docker.com/ 下拉镜像 docker pull redis 查看镜像 docker images 创建Redis容器 运行Redis镜像 ...

  7. VMware提示Device/Credential Guard不兼容

    问题环境 win10系统版本 win10 2004企业版 vmware 版本 vmware 15 pro 问题 虚拟机开启时候弹窗提示:"VMware与Device/Credential G ...

  8. jenkins 配置任务

    新建筑任务 ""imuke 建一个自由风格的 要执行python .py程序,我们需要把.py所在的目录设置进去 如果保存的是在svn,需要把他的地址放进去 如图: 设置自动构建时 ...

  9. 死磕以太坊源码分析之downloader同步

    死磕以太坊源码分析之downloader同步 需要配合注释代码看:https://github.com/blockchainGuide/ 这篇文章篇幅较长,能看下去的是条汉子,建议收藏 希望读者在阅读 ...

  10. Python 中更优雅的日志记录方案

    在 Python 中,一般情况下我们可能直接用自带的 logging 模块来记录日志,包括我之前的时候也是一样.在使用时我们需要配置一些 Handler.Formatter 来进行一些处理,比如把日志 ...