ELK搭建(十一):搭建MongoDB运行情况监控平台

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: mongoDB作为基于磁盘的非关系型数据库,JSON格式数据存储方式,具有优秀的查询效率。越来越多的场景使用到了MongoDB。在生产运维中,更需要我们能够实时的掌握mongo的运行情况,以方便我们数据库运行问题做出及时的调整和补救。

0. 引言

mongoDB作为基于磁盘的非关系型数据库,JSON格式数据存储方式,具有优秀的查询效率。越来越多的场景使用到了MongoDB。在生产运维中,更需要我们能够实时的掌握mongo的运行情况,以方便我们数据库运行问题做出及时的调整和补救。

今天我们就MongoDB运行的实时情况,来搭建一个数据监控平台
在这里插入图片描述

1. 下载

我们的平台是基于elasticsearch+kibana来实现的,也就是我们常说的ELK体系。我们采用Metricbeat插件来采集监控redis的运行数据。

当然我们这里为了保证搭建的便捷性,并没有使用到Logstash,如果大家有需要的话可以把Metricbeat采集到的数据输出到Logstash

首先关于ELK的搭建就不再累述了,不清楚的同学可以看看往期博客:
ELK搭建(一):实现分布式微服务日志监控

因为我的ELK环境是7.13.0的,所以我们需要下载对应版本、对应系统的Metricbeat
Metricbeat官方下载地址
在这里插入图片描述

2. Metricbeat介绍

metricbeat是elstic官方推出的一款轻量型的采集器,属于beats系列中专门用于各种系统和服务统计的beat。不仅可以统计docker等数据,也可以统计redis、nginx、服务器cpu、内存、磁盘等服务的相关指标。

metricbeat定时从服务器中通过抓包的方式获取对应指标数据,然后发送到elasticsearch或者logstash中

metricbeat由两个部分组成:

  • 1、module
    所谓module就是针对不同的服务进行采集的模块,比如系统服务就是mongodb module。metricbeat中支持的module有几十种,包括但不仅限于:ActiveMQ module,Apache module,Docker module,HTTP module等,具体可以metricbeat官方文档中的modules部分查看
  • 2、metricset
    采集的内容,以mongodb module为例,支持5种指标集:

    • collstats

    集合的相关信息,该数据集反馈了增删改查、红锁、写锁等指令的操作计数

    • dbstats

    数据库存储的相关信息,包含了集合数、对象平均大小、索引大小、当前数据大小等

    • metrics

    相关指令的执行和失败次数统计,比如aggregate、build_info、coll_stats等指令

    • replstatus

    反馈了mongo复制集的相关状态

    • status

    数据库锁、连接、内存、网络、日志等相关信息

更多关于指标集的介绍可以查看官方文档

3. 安装Metricbeat

1、将安装包上传到服务器上,可以使用FTP软件或者以下指令上传

scp metricbeat-7.13.0-linux-arm64.tar.gz root@192.168.244.18:/var/local 

2、解压压缩包

tar -zxvf metricbeat-7.13.0-linux-arm64.tar.gz 

3、修改配置文件metricbeat.yml中的连接信息

vim metricbeat.yml

修改内容

setup.template.settings:
# 因为我这里es是单节点,所以设置主分片数为1,副本分片数为0.否则会报黄
  index.number_of_shards: 1
  index.number_of_replicas: 0
output.elasticsearch:
# 你的es所在服务器ip
  hosts: ["192.168.244.11:9200"]
  username: "elastic"
  password: "elastic"
setup.kibana:
# kibana所在服务器ip
  host: "192.168.244.11:5601"

4、启动docker模块,metricbeat会根据modules.d/mongodb.yml中的配置项来获取系统数据

./metricbeat modules enable mongodb

5、配置要采集的内容,修改modules.d/mongodb.yml配置文件

vim modules.d/mongodb.yml

配置文件内容,这里我们将所有指标集都开启,具体可根据自己的需要进行配置

- module: mongodb
  metricsets:
    - dbstats
    - status
    - collstats
    - metrics
    - replstatus
  period: 10s

  # [mongodb://][user:pass@]host[:port]
  hosts: ["localhost:27017"]
  username: root
  password: 123456

6、如上开启的指标集是通过mongodb的相关指令来采集的,而这些指令是需要给账号配置clusterMonitor角色权限的
(1)登陆mongodb

mongo admin -u root -p 123456

(2)赋予clusterMonitor权限

db.grantRolesToUser("root",[{ role: "clusterMonitor", db: "admin" }]);

(3)重启mongodb

7、加载kibana仪表盘,如果之前已经设置过就不用再执行了

./metricbeat setup

在这里插入图片描述
8、启动metricbeat(如果上述的指令没有自动退出的话,就新开个窗口执行,不要退出上述指令窗口)

./metricbeat -e

在这里插入图片描述

9、在kibana的discover窗口中查询metricbeat-*索引模式,能够查询到mongodb相关字段数据表明配置成功
在这里插入图片描述

10、kibana中点击Dashboard,进入仪表盘,输入mongo,选择Overview ECS看板点击进入
在这里插入图片描述

11、右上角的数据默认是过去15分钟,如果查询没有数据的话,调整下时间范围
在这里插入图片描述

至此,我们就可以看到mongodb服务的相关运行指标了,包括连接数、内存、并发事务等等,更多的指标还等待大家自己去探索!

关注公众号 Elasticsearch之家,了解更多新鲜内容

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
3月前
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
3月前
|
Go 数据处理 Docker
elk stack部署自动化日志收集分析平台
elk stack部署自动化日志收集分析平台
142 0
|
9月前
|
存储 JSON 监控
日志记录和分析:ELK堆栈在内部局域网监控软件中的应用
在现代信息技术领域,监控和分析内部局域网的性能和运行状况对于确保系统的可靠性和高效性至关重要。为了实现这一目标,开发了一种基于ELK堆栈的解决方案,它利用强大的日志记录和分析工具,帮助监控人员实时追踪和解决问题。本文将介绍ELK堆栈的应用,以及如何自动提交监控到的数据到指定网站。
201 1
|
9月前
|
NoSQL MongoDB 数据库
mongoDB入门教程一:下载安装和环境配置、连接运行
mongoDB入门教程一:下载安装和环境配置、连接运行
233 0
|
10月前
|
存储 NoSQL Redis
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
容器部署日志分析平台ELK7.10.1(Elasisearch+Filebeat+Redis+Logstash+Kibana)
417 0
|
2月前
|
存储 NoSQL API
Wells Fargo 借助 MongoDB 推出下一代银行卡支付平台
借助 MongoDB,Wells Fargo 快速启动了其传统大型主机现代化并且完全有能力继续创新,为消费者提供下一代金融服务
5382 2
|
1月前
|
NoSQL Shell MongoDB
【Python】已解决:(MongoDB安装报错)‘mongo’ 不是内部或外部命令,也不是可运行的程序
【Python】已解决:(MongoDB安装报错)‘mongo’ 不是内部或外部命令,也不是可运行的程序
31 0
|
3月前
|
监控 NoSQL MongoDB
【MongoDB 专栏】MongoDB 的监控与性能调优
【5月更文挑战第11天】在数字化时代,MongoDB作为流行的非关系型数据库,其监控和性能调优至关重要。监控能实时了解数据库运行状态,预防性能问题,评估系统健康。关键监控指标包括系统资源、查询性能、连接数和数据存储量。常用工具如`mongostat`、`mongotop`,以及Prometheus、Grafana等。性能调优涉及索引、查询优化、数据模型调整、配置修改及分片复制。通过持续监控和调优,可确保MongoDB高效稳定运行,适应业务发展需求。
111 1
【MongoDB 专栏】MongoDB 的监控与性能调优
|
3月前
|
监控 应用服务中间件 nginx
使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kibana)
ELK的架构有多种,本篇分享使用的架构如图所示: Beats(Filebeat) -> -> Elasticsearch -> Kibana,目前生产环境一天几千万的日志,内存占用大概 10G
210 4
|
2月前
|
监控 NoSQL MongoDB
深入MongoDB监控:全面解析命令、实用示例与最佳实践
深入MongoDB监控:全面解析命令、实用示例与最佳实践