【监控系统搭建】

1 参考文档

https://www.jianshu.com/p/6ce027eabd91
https://blog.csdn.net/qq_22211217/article/details/80867801

2 架构图

在这里插入图片描述

3 搭建docker

在centOS上安装docker,执行以下命令

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

创建虚拟网卡(为了网络环境隔离)

docker network create docker-monitor  #为docker主机创建一个网卡名为docker-monitor

windows安装docker

问题较多,失败率较高,不推荐使用。常见报错信息如下:
这个问题由于未启动hyper-v虚拟化导致。

System.InvalidOperationException:
job failed with message:DockerDesktopVM”无法启动。(虚拟机 ID EA1E6B68-2361-4F14-8127-F4E37698689D)

虚拟机管理服务无法启动虚拟机“DockerDesktopVM”,因为一个 Hyper-V 组件尚未运行。(虚拟机 ID EA1E6B68-2361-4F14-8127-F4E37698689D)。
   在 Docker.Backend.HyperVInfrastructure.HandleUpdatedJob(CIMConcreteJob updatedJob) 位置 C:\workspaces\PR-17066\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperVInfrastructure.cs:行号 770Docker.Backend.HyperVInfrastructure.<HandleMaybeAsyncJob>d__39.MoveNext() 位置 C:\workspaces\PR-17066\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperVInfrastructure.cs:行号 704
--- 引发异常的上一位置中堆栈跟踪的末尾 ---System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()Docker.Backend.HyperVInfrastructure.<StartVMAsync>d__31.MoveNext() 位置 C:\workspaces\PR-17066\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperVInfrastructure.cs:行号 552
--- 引发异常的上一位置中堆栈跟踪的末尾 ---System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)Docker.Backend.HyperV.<StartAsync>d__6.MoveNext() 位置 C:\workspaces\PR-17066\src\github.com\docker\pinata\win\src\Docker.Backend\HyperV\HyperV.cs:行号 105
--- 引发异常的上一位置中堆栈跟踪的末尾 ---System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)Docker.Backend.HttpAPI.HyperVController.<StartAsync>d__7.MoveNext() 位置 C:\workspaces\PR-17066\src\github.com\docker\pinata\win\src\Docker.Backend\HttpAPI\HyperVController.cs:行号 43
--- 引发异常的上一位置中堆栈跟踪的末尾 ---System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)System.Threading.Tasks.TaskHelpersExtensions.<CastToObject>d__1`1.MoveNext()
--- 引发异常的上一位置中堆栈跟踪的末尾 ---System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()
--- 引发异常的上一位置中堆栈跟踪的末尾 ---System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()
--- 引发异常的上一位置中堆栈跟踪的末尾 ---System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()

4 部署influxdb

部署influxdb

docker run -d --name influxdb --net docker-monitor -p 8083:8083 -p 8086:8086 tutum/influxdb
备注:-d:守护线程运行
     --name:容器名influxdb
     --net:加入到网络docker-monitor
     -p:   主机端口(自己分配):容器端口  8083为infuxdb后台控制端口,8086是infuxdb的数据端口 
     tutum/influxdb:默认会在docker官方仓库pull下来influxdb镜像

配置influxdb

http://docker主机的ip:容器映射出来的端口
http://192.168.182.131:8083/
## 创建管理员角色 root 密码 root 供使用
CREATE USER "root" WITH PASSWORD 'root' WITH ALL PRIVILEGES 
## 创建数据库
CREATE DATABASE "cadvisor"   

5 部署cadvisor

docker run --privileged=true --net docker-monitor --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker:/var/lib/docker:ro --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro -p 8087:8080 --detach=true --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086

备注:上诉语句请勿换行
docker run 
--privileged=true           :设置挂载目录权限为最大 否则挂载出错
--net docker-monitor        :设置加入docker-monitor网络
--volume=/:/rootfs:ro       :将容器/rootfs目录挂载到docker /
--volume=/var/run:/var/run:rw :将容器/var/run 挂载到docker /var/run
--volume=/sys:/sys:ro         :rw表示读写  ro表示只读
--volume=/var/lib/docker:/var/lib/docker:ro 
--volume=/sys/fs/cgroup:/sys/fs/cgroup:ro 
-p 8087:8080                  :设置cadvisor端口映射  由于8080被我使用oracle  我分配8087
--detach=true                 :是否后台运行容器服务
--name=cadvisor google/cadvisor :容器服务名 为cadvisor  从docker默认仓库 下载google/cadvisor镜像
-storage_driver=influxdb        :绑定存储驱动 为 influxdb
-storage_driver_db=cadvisor     :数据库为  cadvisor  请对应
-storage_driver_host=influxdb:8086 :绑定数据库管理地址  容器名:容器端口

浏览器验证

http://docker主机的ip:容器映射出来host  本来为8080 修改为8087

6 部署grafana

docker run -d --name grafana --net docker-monitor -p 3000:3000   grafana/grafana

备注:docker run 
-d                    :后台运行
--name grafana        :容器别名
--net docker-monitor  :加入docker-monitor网络
-p 3000:3000          :端口映射
grafana/grafana       :默认docker仓库下载grafana镜像

浏览器验证

http://docker主机的ip:容器映射出来host   默认帐号admin admin

创建数据源,配置连接influxdb
在这里插入图片描述
创建面板,添加监控指标
在这里插入图片描述

7 运行demo程序将数据写入influxdb

参考文档:https://www.jianshu.com/p/67bcc64f8dc9

influxDB的sql操作:https://blog.hhui.top/hexblog/2019/07/18/190718-Influx-Sql%E7%B3%BB%E5%88%97%E6%95%99%E7%A8%8B%E4%B8%80%EF%BC%9Adatabase-%E6%95%B0%E6%8D%AE%E5%BA%93/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值