当前位置:网站首页>【云原生 • DevOps】influxDB、cAdvisor、Grafana 工具使用详解
【云原生 • DevOps】influxDB、cAdvisor、Grafana 工具使用详解
2022-07-30 14:34:00 【Developer 小马】

本章学习目标:
- 掌握时间序列数据库 influxDB 的安装与使用;
- 掌握容器监控工具 cAdvisor 的安装与使用;
- 掌握图表工具 Grafana 的安装与使用。
目录
一、时序数据库 influxDB
1. 什么是 influxDB
influxDB 是一个分布式时间序列数据库,运维常用。由于 cAdvisor 仅仅显示实时信息,但是不能存储监视数据。因此我们需要提供时序数据库用于存储 cAdvisor 组件所提供的监控信息,以便显示除实时信息之外的时序数据。
实时信息之外的时序数据:比如当前的内存大小、CPU 的占用情况等。
2. influxDB 的安装
第一步:下载镜像;
docker pull tutum/influxdb第二步:创建容器;
docker run -di \
-p 8083:8083 \
-p 8086:8086 \
--expose 8090 \
--expose 8099 \
--name influxsrv \
tutum/influxdb该容器中:8083 端口为 Web 访问端口,8086 端口为数据写入端口,8090 和 8099 是要求暴露出来的端口。
第三步:容器创建成功之后,在本地进行访问,显示如下界面即安装完成;

3. influxDB 常用操作
创建数据库
我们可以通过查询模板 “Query Templates” 快速输入相关命令;

输入命令后按下回车,即可创建成功;

创建用户并授权
--创建用户 majinjian,密码 990214,为该用户赋予所有权限
CREATE USER "majinjian" WITH PASSWORD '990214' WITH ALL PRIVILEGES
此时搜索用户,可以看到我们创建的新用户;

用户授权语法如下:on 数据库名 to 用户名;
--在 majinjian 数据库中为用户 majinjian 授予所有权限
grant all privileges on majinjian to majinjian
--在 majinjian 数据库中为用户 majinjian 授予写权限
grant WRITE on majinjian to majinjian
--在 majinjian 数据库中为用户 majinjian 授予读权限
grant READ on majinjian to majinjian
查看采集的数据
查看采集数据需要使用指令 SHOW MEASUREMENTS;可以看到此时是没有内容的,因为我们的数据库刚刚创建,并没有产生数据。

二、容器监控工具 cAdvisor
1. 什么是 cAdvisor
cAdvisor 是 Google 开源的用于监控基础设施应用的工具,是一个强大的监控工具,不需要任何配置就可以通过运行在 Docker 主机上的容器来监控 Docker 容器,而且可以监控 Docker 主机。
该应用的主要作用就是监控,而监控所产生的数据均存储于时序数据库 influxDB 中。
2. cAdvisor 的安装
第一步:下载镜像;
docker pull google/cadvisor第二步:创建容器并连接 influxDB;
docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --publish=8080:8080 --detach=true --link influxsrv:influxsrv --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_db=majinjian -storage_driver_host=influxsrv:8086-storage_driver_db=majinjian -storage_driver_host=influxsrv:8086 语法为连接 influxDB 数据库,此处的 majinjian 是我在 influxDB 中创建的数据库名。
第三步:在本地使用 虚拟机/服务器 IP:8080/containers/ 进行访问,看到以下界面即 cAdvisor 安装成功;

此时 cAdvisor 就已经处于运行状态了,它也会将监控产生的数据存入 influxDB 当中。


再次查看 influxDB 中的采集数据,可以看到已有数据产生;

三、图表工具 Granfana
1. 什么是 Grafana
通过上一节可以看到,在 influxDB 中查看数据时,数据比较凌乱且不够直观,而 Grafana 正是来解决这个问题的。
Grafana 是一个可视化面板,有着非常好的图表和布局展示,包含功能齐全的度量仪表盘和图形编辑器。支持 Graphite、zabbix、influxDB 和 OpenTSDB 作为数据源。
它的主要特性为:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式的切换;支持多个数据源。
2. Grafana 的安装
第一步:下载镜像;
docker pull grafana/grafana第二步:创建容器并连接 influxDB;
docker run -d -p 3001:3000 -e INFLUXDB_HOST=influxsrv -e INFLUXDB_PORT=8086 -e INFLUXDB_NAME=majinjian -e INFLUXDB_USER=majinjian -e INFLUXDB_PASS=majinjian --link influxsrv:influxsrv --name grafana grafana/grafana-e INFLUXDB_NAME=majinjian 数据库名称
-e INFLUXDB_USER=majinjian 数据库用户名
-e INFLUXDB_PASS=majinjian 数据库密码
第三步:本地浏览器进行访问,初始界面如下;

输入用户名和密码登录,默认用户名为 admin,密码为 admin,首次登录后需要修改密码;

3. Grafana 的常用操作
添加数据源
点击设置 --> “Data sources”;

点击 “Add date source” 添加数据源,然后我们这里选择 influxDB;

设置相关参数;


点击 “save & test”,如下添加成功;

添加仪表盘
选择 “Dashboards” --> “Browse”;

点击 “New Dashboards” 添加,然后选择一种图表类型添加;

接下来就进入了图表编辑页面,可以设置数据源、图表标题、X轴、Y轴等各种属性;

如下是我按照容器名称索取的数据;

设置完成之后,点击 “save” 进行保存,如下为添加成功后图表;

当微服务开始运行后产生的数据便会体现在此图表上。
边栏推荐
- 关于MySQL主从复制的数据同步延迟问题
- MongoDB starts an error Process: 29784 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=14)
- Normal and escaped strings for postgresql
- Fink异步IO的实战(关联维表)
- Why do software testing have to learn automation?Talk about the value of automated testing in my eyes
- 第十一章 api mgmnt API 参考
- Understand the Chisel language. 29. Chisel advanced communication state machine (1) - communication state machine: take the flash as an example
- Six-faced ant financial clothing, resisting the bombardment of the interviewer, came to interview for review
- BI-SQL丨WHILE
- Flink实时数仓完结
猜你喜欢

5G-based Warehousing Informatization Solution 2022

Remember an experience of interviewing an outsourcing company, should you go?
4位资深专家多年大厂经验分享出Flink技术内幕架构设计与实现原理

LeetCode_98_验证二叉搜索树

算力顶天地,存力纳乾坤:国家超级计算济南中心的一体两面

MaxWell scraped data

CVE-2022-33891 Apache Spark 命令注入复现

DocuWare 文件管理与工作流程自动化案例研究——DocuWare 工作流程功能使在家工作的员工能够保持沟通和高效工作,支持混合环境

Kubernetes应用管理深度剖析

Application of time series database in the field of ship risk management
随机推荐
Installing and Uninstalling MySQL on Mac
The use and principle of distributed current limiting reduction RRateLimiter
Understand Chisel language. 28. Chisel advanced finite state machine (2) - Mealy state machine and comparison with Moore state machine
JSON common annotations
Get the Google Advertising ID as a unique identifier
智能合约安全——私有数据访问
Huawei issues another summoning order for "Genius Boys"!He, who had given up an annual salary of 3.6 million, also made his debut
JVM performance tuning
JUC常见的线程池源码学习 02 ( ThreadPoolExecutor 线程池 )
JSON常用注解
Why did I switch from developer to testing, 3 years software testing engineer, tell you the secret of this
开始学习C语言了
元宇宙邮局AI航天主题系列数字藏品 将于7月30日10:00点上线“元邮数藏”
Flask Framework - Flask-Mail Mail
Still saying software testing doesn't have a midlife crisis?9 years of test engineers were eliminated
Go to Tencent for an interview and let people turn left directly: I don't know idempotency!
71页全域旅游综合整体解决方案2021 ppt
关于MySQL主从复制的数据同步延迟问题
ESP32 Repeated Reboot Issue Arduino Shield Power Outage Detector
Normal and escaped strings for postgresql