Hướng dẫn mongodb monitoring tools open-source - công cụ giám sát mongodb mã nguồn mở

Tài liệu về nhà → Hướng dẫn sử dụng MongoDBMongoDB Manual

Mới trong phiên bản 4.0.

Bắt đầu từ Phiên bản 4.0, MongoDB (Phiên bản cộng đồng) cung cấp giám sát đám mây miễn phí cho các bộ độc lập và bản sao.

Giám sát miễn phí cung cấp thông tin về việc triển khai của bạn, bao gồm:

  • Thời gian thực hiện hoạt động

  • Sử dụng bộ nhớ

  • Sử dụng CPU

  • Số lượng hoạt động

Dữ liệu hết hạn 24 giờ sau khi được tải lên. Để biết thêm thông tin về tải lên và hết hạn dữ liệu, hãy xem dữ liệu được theo dõi và hết hạn.Monitored Data and Expiration.

Theo mặc định, bạn có thể bật/tắt giám sát miễn phí trong thời gian chạy bằng cách sử dụng db.enableFreeMonitoring()db.disableFreeMonitoring()

Bạn cũng có thể bật hoặc vô hiệu hóa giám sát miễn phí trong quá trình khởi động mongod bằng cách sử dụng:

  • Cài đặt tệp cấu hình ____10 hoặc

  • Tùy chọn dòng lệnh

    mongod -v --logpath /var/log/mongodb/server1.log --logappend

    1

Khi bạn bật giám sát miễn phí, nó vẫn được bật cho đến khi bạn tắt nó.

Để xem trạng thái giám sát miễn phí của bạn,

  • Sử dụng phương pháp

    mongod -v --logpath /var/log/mongodb/server1.log --logappend

    2.

  • mongod -v --logpath /var/log/mongodb/server1.log --logappend

    3 và người trợ giúp

    mongod -v --logpath /var/log/mongodb/server1.log --logappend

    4 cũng bao gồm số liệu thống kê giám sát miễn phí trong lĩnh vực

    mongod -v --logpath /var/log/mongodb/server1.log --logappend

    5.

Khi chạy với Điều khiển truy cập, người dùng phải có các đặc quyền sau để kích hoạt giám sát và nhận trạng thái miễn phí:

{ resource: { cluster : true }, actions: [ "setFreeMonitoring", "checkFreeMonitoringStatus" ] }

Vai trò tích hợp

mongod -v --logpath /var/log/mongodb/server1.log --logappend

6 Vai trò cung cấp đặc quyền này.

Khi được bật, dữ liệu được giám sát được tải lên định kỳ. Dữ liệu được giám sát hết hạn sau 24 giờ. Đó là, bạn chỉ có thể truy cập dữ liệu được giám sát đã được tải lên trong vòng 24 giờ qua.

Nếu bạn vô hiệu hóa giám sát miễn phí và sau đó có thể kích hoạt theo dõi miễn phí, bạn có thể truy cập các số liệu trước đó chưa hết hạn trong vòng 24 giờ qua.

Khi bạn bật giám sát miễn phí, bạn được cung cấp một URL duy nhất nơi bạn có thể truy cập dữ liệu được giám sát của mình.

Quan trọng

Bất cứ ai mà bạn chia sẻ URL độc đáo này đều có thể truy cập dữ liệu được giám sát của bạn.

Trên trang này

  • Chiến lược giám sát
  • Công cụ báo cáo MongoDB
  • Ghi nhật ký
  • Chẩn đoán các vấn đề hiệu suất
  • Sao chép và giám sát
  • Sharding và giám sát
  • Watchdog nút lưu trữ

Giám sát là một thành phần quan trọng của tất cả các quản trị cơ sở dữ liệu. Một sự nắm bắt chắc chắn về báo cáo của MongoDB sẽ cho phép bạn đánh giá trạng thái cơ sở dữ liệu của bạn và duy trì việc triển khai mà không cần khủng hoảng. Ngoài ra, cảm giác về các thông số hoạt động bình thường của MongoDB sẽ cho phép bạn chẩn đoán các vấn đề trước khi chúng leo thang bị lỗi.

Tài liệu này trình bày tổng quan về các tiện ích giám sát có sẵn và số liệu thống kê báo cáo có sẵn trong MongoDB. Nó cũng giới thiệu các chiến lược chẩn đoán và đề xuất để theo dõi các bộ bản sao và các cụm mảnh vỡ.

MongoDB cung cấp các phương pháp khác nhau để thu thập dữ liệu về trạng thái của một phiên bản MongoDB đang chạy:

  • Bắt đầu từ phiên bản 4.0, MongoDB cung cấp giám sát đám mây miễn phí cho các bộ độc lập và bản sao.

  • MongoDB phân phối một bộ tiện ích cung cấp báo cáo thời gian thực về các hoạt động cơ sở dữ liệu.

  • MongoDB cung cấp các lệnh cơ sở dữ liệu khác nhau, trả về số liệu thống kê liên quan đến trạng thái cơ sở dữ liệu hiện tại có độ trung thực cao hơn.

  • MongoDB Atlas là một dịch vụ cơ sở dữ liệu được lưu trữ trên đám mây để chạy, giám sát và duy trì triển khai MongoDB. is a cloud-hosted database-as-a-service for running, monitoring, and maintaining MongoDB deployments.

  • MongoDB Cloud Manager là một dịch vụ được lưu trữ, giám sát các triển khai MongoDB để thu thập dữ liệu và cung cấp trực quan hóa và cảnh báo dựa trên dữ liệu đó. is a hosted service that monitors running MongoDB deployments to collect data and provide visualization and alerts based on that data.

  • MongoDB OPS Trình quản lý là một giải pháp tại chỗ có sẵn trong MongoDB Enterprise Advanced, theo dõi việc chạy triển khai MongoDB để thu thập dữ liệu và cung cấp trực quan hóa và cảnh báo dựa trên dữ liệu đó.an on-premise solution available in MongoDB Enterprise Advanced that monitors running MongoDB deployments to collect data and provide visualization and alerts based on that data.

Mỗi chiến lược có thể giúp trả lời các câu hỏi khác nhau và hữu ích trong các bối cảnh khác nhau. Những phương pháp này là bổ sung.

Phần này cung cấp một cái nhìn tổng quan về các phương pháp báo cáo được phân phối với MongoDB. Nó cũng cung cấp các ví dụ về các loại câu hỏi mà mỗi phương pháp phù hợp nhất để giúp bạn giải quyết.

Mới trong phiên bản 4.0.

MongoDB cung cấp giám sát đám mây miễn phí cho các bộ độc lập hoặc bản sao.

Theo mặc định, bạn có thể bật/tắt giám sát miễn phí trong thời gian chạy bằng cách sử dụng db.enableFreeMonitoring()db.disableFreeMonitoring()

Giám sát miễn phí cung cấp tới 24 giờ dữ liệu. Để biết thêm chi tiết, xem giám sát miễn phí.

Phân phối MongoDB bao gồm một số tiện ích nhanh chóng trả lại số liệu thống kê về hiệu suất và hoạt động của các trường hợp. Thông thường, những điều này là hữu ích nhất để chẩn đoán các vấn đề và đánh giá hoạt động bình thường.

mongod -v --logpath /var/log/mongodb/server1.log --logappend

9 nắm bắt và trả về số lượng hoạt động cơ sở dữ liệu theo loại (ví dụ: chèn, truy vấn, cập nhật, xóa, v.v.). Các báo cáo số lượng này về phân phối tải trên máy chủ. captures and returns the counts of database operations by type (e.g. insert, query, update, delete, etc.). These counts report on the load distribution on the server.

Sử dụng

mongod -v --logpath /var/log/mongodb/server1.log --logappend

9 để hiểu phân phối các loại hoạt động và để thông báo kế hoạch năng lực. Xem trang tham chiếu

mongod -v --logpath /var/log/mongodb/server1.log --logappend

9 để biết chi tiết.

mongod -v --logpath /var/log/mongodb/server1.log --logappend

9
to understand the distribution of operation types and to inform capacity planning. See the

mongod -v --logpath /var/log/mongodb/server1.log --logappend

9
reference page for details.

db.clients.insertOne( { "name" : "Joe", "PII" : "Sensitive Information" } )

2 Theo dõi và báo cáo hoạt động đọc và ghi hiện tại của một ví dụ MongoDB và báo cáo các số liệu thống kê này trên cơ sở cho mỗi bộ sưu tập. tracks and reports the current read and write activity of a MongoDB instance, and reports these statistics on a per collection basis.

Sử dụng

db.clients.insertOne( { "name" : "Joe", "PII" : "Sensitive Information" } )

2 để kiểm tra xem hoạt động cơ sở dữ liệu của bạn và sử dụng phù hợp với mong đợi của bạn. Xem trang tham chiếu

db.clients.insertOne( { "name" : "Joe", "PII" : "Sensitive Information" } )

2 để biết chi tiết.

db.clients.insertOne( { "name" : "Joe", "PII" : "Sensitive Information" } )

2
to check if your database activity and use match your expectations. See the

db.clients.insertOne( { "name" : "Joe", "PII" : "Sensitive Information" } )

2
reference page for details.

Đã thay đổi trong phiên bản 3.6: MongoDB 3.6 loại bỏ giao diện HTTP không dùng nữa và API REST thành MongoDB.

MongoDB bao gồm một số lệnh báo cáo về trạng thái của cơ sở dữ liệu.

Những dữ liệu này có thể cung cấp mức độ chi tiết tốt hơn so với các tiện ích được thảo luận ở trên. Cân nhắc sử dụng đầu ra của chúng trong các tập lệnh và chương trình để phát triển các cảnh báo tùy chỉnh hoặc để sửa đổi hành vi của ứng dụng của bạn để đáp ứng với hoạt động của trường hợp của bạn. Phương pháp

db.clients.insertOne( { "name" : "Joe", "PII" : "Sensitive Information" } )

5 là một công cụ hữu ích khác để xác định các hoạt động đang tiến hành của trường hợp cơ sở dữ liệu.

Lệnh

mongod -v --logpath /var/log/mongodb/server1.log --logappend

3 hoặc

mongod -v --logpath /var/log/mongodb/server1.log --logappend

4 từ shell, trả về tổng quan chung về trạng thái của cơ sở dữ liệu, chi tiết sử dụng đĩa, sử dụng bộ nhớ, kết nối, viết nhật ký và truy cập chỉ mục. Lệnh trở lại nhanh chóng và không ảnh hưởng đến hiệu suất MongoDB.

mongod -v --logpath /var/log/mongodb/server1.log --logappend

3 đầu ra một tài khoản về trạng thái của một thể hiện MongoDB. Lệnh này hiếm khi chạy trực tiếp. Trong hầu hết các trường hợp, dữ liệu có ý nghĩa hơn khi được tổng hợp, như người ta sẽ thấy với các công cụ giám sát bao gồm Trình quản lý đám mây MongoDB và Trình quản lý OPS. Tuy nhiên, tất cả các quản trị viên nên làm quen với dữ liệu được cung cấp bởi

mongod -v --logpath /var/log/mongodb/server1.log --logappend

3MongoDB Cloud Manager and Ops Manager. Nevertheless, all administrators should be familiar with the data provided by

mongod -v --logpath /var/log/mongodb/server1.log --logappend

3

Lệnh

2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "clients",
documents: [ {
_id: ObjectId('593adc5b99001b7d119d0c97'),
name: "Joe",
PII: " Sensitive Information"
} ],
ordered: true
}
...
0 hoặc
2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "clients",
documents: [ {
_id: ObjectId('593adc5b99001b7d119d0c97'),
name: "Joe",
PII: " Sensitive Information"
} ],
ordered: true
}
...
1 từ shell, trả về một tài liệu giải quyết việc sử dụng lưu trữ và khối lượng dữ liệu.
2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "clients",
documents: [ {
_id: ObjectId('593adc5b99001b7d119d0c97'),
name: "Joe",
PII: " Sensitive Information"
} ],
ordered: true
}
...
0 phản ánh lượng lưu trữ được sử dụng, số lượng dữ liệu có trong cơ sở dữ liệu và đối tượng, bộ sưu tập và bộ đếm chỉ mục.

Sử dụng dữ liệu này để theo dõi trạng thái và dung lượng lưu trữ của một cơ sở dữ liệu cụ thể. Đầu ra này cũng cho phép bạn so sánh việc sử dụng giữa cơ sở dữ liệu và để xác định kích thước tài liệu trung bình trong cơ sở dữ liệu.

2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "clients",
documents: [ {
_id: ObjectId('593adc5b99001b7d119d0c97'),
name: "Joe",
PII: " Sensitive Information"
} ],
ordered: true
}
...
3 hoặc
2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "clients",
documents: [ {
_id: ObjectId('593adc5b99001b7d119d0c97'),
name: "Joe",
PII: " Sensitive Information"
} ],
ordered: true
}
...
4 từ vỏ cung cấp số liệu thống kê giống với
2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "clients",
documents: [ {
_id: ObjectId('593adc5b99001b7d119d0c97'),
name: "Joe",
PII: " Sensitive Information"
} ],
ordered: true
}
...
0 ở cấp độ thu thập, bao gồm số lượng các đối tượng trong bộ sưu tập, kích thước của bộ sưu tập, lượng không gian đĩa được sử dụng bởi bộ sưu tập và thông tin về các chỉ mục của nó.

Lệnh

2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "clients",
documents: [ {
_id: ObjectId('593adc5b99001b7d119d0c97'),
name: "Joe",
PII: " Sensitive Information"
} ],
ordered: true
}
...
6 (
2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "clients",
documents: [ {
_id: ObjectId('593adc5b99001b7d119d0c97'),
name: "Joe",
PII: " Sensitive Information"
} ],
ordered: true
}
...
7 từ shell) trả về tổng quan về trạng thái của bộ bản sao của bạn. Tài liệu repsetGetStatus chi tiết trạng thái và cấu hình của tập bản sao và thống kê về các thành viên của nó.

Sử dụng dữ liệu này để đảm bảo rằng sao chép được cấu hình đúng và để kiểm tra các kết nối giữa máy chủ hiện tại và các thành viên khác của bộ bản sao.

Đây là các công cụ giám sát được cung cấp dưới dạng dịch vụ lưu trữ, thường là thông qua đăng ký trả phí.

Tên

Ghi chú

Quản lý đám mây MongoDB

MongoDB Cloud Manager là một bộ dịch vụ dựa trên đám mây để quản lý triển khai MongoDB. MongoDB Cloud Manager cung cấp chức năng giám sát, sao lưu và tự động hóa. Để biết giải pháp tại chỗ, xem thêm Trình quản lý OPS, có sẵn trong MongoDB Enterprise Advanced.Ops Manager, available in MongoDB Enterprise Advanced.

VIVIDCORTEX

VividCortex cung cấp những hiểu biết sâu sắc về khối lượng công việc cơ sở dữ liệu sản xuất MongoDB và hiệu suất truy vấn-ở độ phân giải một giây. Theo dõi độ trễ, thông lượng, lỗi và nhiều hơn nữa để đảm bảo khả năng mở rộng và hiệu suất đặc biệt của ứng dụng của bạn trên MongoDB.production database workload and query performance -- in one-second resolution. Track latency, throughput, errors, and more to ensure scalability and exceptional performance of your application on MongoDB.

Hướng đạo sinh

Một số plugin, bao gồm giám sát MongoDB, truy vấn chậm MongoDB và giám sát tập bản sao MongoDB.MongoDB Monitoring, MongoDB Slow Queries, and MongoDB Replica Set Monitoring.

Mật độ máy chủ

Bảng điều khiển cho các cảnh báo cụ thể của MongoDB, MongoDB, dòng thời gian chuyển đổi chuyển đổi sao chép và ứng dụng di động iPhone, iPad và Android., MongoDB specific alerts, replication failover timeline and iPhone, iPad and Android mobile apps.

Quản lý hiệu suất ứng dụng

IBM có một sự cung cấp SaaS quản lý hiệu suất ứng dụng bao gồm Màn hình cho MongoDB và các ứng dụng và phần mềm trung gian khác.

Thánh tích mới

New Relic cung cấp hỗ trợ đầy đủ cho quản lý hiệu suất ứng dụng. Ngoài ra, các plugin di tích mới và thông tin chi tiết cho phép bạn xem các số liệu giám sát từ Cloud Manager trong New Relic.

DataDog

Giám sát cơ sở hạ tầng để trực quan hóa hiệu suất triển khai MongoDB của bạn. to visualize the performance of your MongoDB deployments.

Giám sát hiệu suất SPM

Giám sát, phát hiện dị thường và cảnh báo SPM theo dõi tất cả các số liệu MongoDB chính cùng với cơ sở hạ tầng bao gồm. Docker và các số liệu ứng dụng khác, ví dụ: Node.js, java, nginx, apache, haproxy hoặc elaticsearch. SPM cung cấp mối tương quan của số liệu và nhật ký. SPM monitors all key MongoDB metrics together with infrastructure incl. Docker and other application metrics, e.g. Node.js, Java, NGINX, Apache, HAProxy or Elasticsearch. SPM provides correlation of metrics and logs.

Pandora FMS

Pandora FMS cung cấp plugin theo dõi PandorAFMS-MongoDB để theo dõi MongoDB.PandoraFMS-mongodb-monitoring plugin to monitor MongoDB.

Trong quá trình hoạt động bình thường, các trường hợp mongod

2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "clients",
documents: [ {
_id: ObjectId('593adc5b99001b7d119d0c97'),
name: "Joe",
PII: " Sensitive Information"
} ],
ordered: true
}
...
9 báo cáo tài khoản trực tiếp của tất cả các hoạt động và hoạt động của máy chủ cho đầu ra tiêu chuẩn hoặc tệp nhật ký. Cài đặt thời gian chạy sau đây kiểm soát các tùy chọn này.

  • 2017-06-09T13:45:18.599-04:00 I COMMAND [conn1] command internal.clients
    appName: "MongoDB Shell"
    command: insert {
    insert: "###", documents: [ {
    _id: "###", name: "###", PII: "###"
    } ],
    ordered: "###"
    }
    0. Giới hạn lượng thông tin được ghi vào nhật ký hoặc đầu ra.

  • 2017-06-09T13:45:18.599-04:00 I COMMAND [conn1] command internal.clients
    appName: "MongoDB Shell"
    command: insert {
    insert: "###", documents: [ {
    _id: "###", name: "###", PII: "###"
    } ],
    ordered: "###"
    }
    1. Tăng lượng thông tin được ghi vào nhật ký hoặc đầu ra. Bạn cũng có thể sửa đổi tính phân từ ghi nhật ký trong thời gian chạy với tham số
    2017-06-09T13:45:18.599-04:00 I COMMAND [conn1] command internal.clients
    appName: "MongoDB Shell"
    command: insert {
    insert: "###", documents: [ {
    _id: "###", name: "###", PII: "###"
    } ],
    ordered: "###"
    }
    2 hoặc phương thức
    2017-06-09T13:45:18.599-04:00 I COMMAND [conn1] command internal.clients
    appName: "MongoDB Shell"
    command: insert {
    insert: "###", documents: [ {
    _id: "###", name: "###", PII: "###"
    } ],
    ordered: "###"
    }
    3 trong shell.

  • 2017-06-09T13:45:18.599-04:00 I COMMAND [conn1] command internal.clients
    appName: "MongoDB Shell"
    command: insert {
    insert: "###", documents: [ {
    _id: "###", name: "###", PII: "###"
    } ],
    ordered: "###"
    }
    4. Cho phép đăng nhập vào một tệp, thay vì đầu ra tiêu chuẩn. Bạn phải chỉ định đường dẫn đầy đủ đến tệp nhật ký khi điều chỉnh cài đặt này.

  • 2017-06-09T13:45:18.599-04:00 I COMMAND [conn1] command internal.clients
    appName: "MongoDB Shell"
    command: insert {
    insert: "###", documents: [ {
    _id: "###", name: "###", PII: "###"
    } ],
    ordered: "###"
    }
    5. Thêm thông tin vào tệp nhật ký thay vì ghi đè tệp.

Ghi chú

Bạn có thể chỉ định các hoạt động cấu hình này là các đối số dòng lệnh cho Mongod hoặc Mongos

Ví dụ:

mongod -v --logpath /var/log/mongodb/server1.log --logappend

Bắt đầu một phiên bản mongod ở chế độ

2017-06-09T13:45:18.599-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "###", documents: [ {
_id: "###", name: "###", PII: "###"
} ],
ordered: "###"
}
7, nối dữ liệu vào tệp nhật ký tại
2017-06-09T13:45:18.599-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "###", documents: [ {
_id: "###", name: "###", PII: "###"
} ],
ordered: "###"
}
8.

Các lệnh cơ sở dữ liệu sau đây cũng ảnh hưởng đến việc ghi nhật ký:

  • 2017-06-09T13:45:18.599-04:00 I COMMAND [conn1] command internal.clients
    appName: "MongoDB Shell"
    command: insert {
    insert: "###", documents: [ {
    _id: "###", name: "###", PII: "###"
    } ],
    ordered: "###"
    }
    9. Hiển thị các tin nhắn gần đây từ nhật ký quy trình mongod.

  • use config
    db.locks.find()
    1. Chỉ xoay các tệp nhật ký cho các quy trình mongod. Xem các tệp nhật ký xoay.

Chỉ có sẵn trong MongoDB Enterprise

A mongod chạy với

use config
db.locks.find()
4 REBRACTS các tin nhắn được liên kết với bất kỳ sự kiện nhật ký nào trước khi đăng nhập, chỉ để lại siêu dữ liệu, tệp nguồn hoặc số dòng liên quan đến sự kiện.
use config
db.locks.find()
4 ngăn chặn thông tin có khả năng nhạy cảm khi nhập nhật ký hệ thống với chi phí chi tiết chẩn đoán.

Ví dụ: thao tác sau đây chèn một tài liệu vào mongod đang chạy mà không cần phân phối lại. mongod đã được đặt thành

use config
db.locks.find()
9:

db.clients.insertOne( { "name" : "Joe", "PII" : "Sensitive Information" } )

Hoạt động này tạo ra sự kiện nhật ký sau:

2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "clients",
documents: [ {
_id: ObjectId('593adc5b99001b7d119d0c97'),
name: "Joe",
PII: " Sensitive Information"
} ],
ordered: true
}
...

A mongod chạy với

use config
db.locks.find()
4 thực hiện cùng một thao tác chèn tạo ra sự kiện nhật ký sau:

2017-06-09T13:45:18.599-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "###", documents: [ {
_id: "###", name: "###", PII: "###"
} ],
ordered: "###"
}

Sử dụng

db.locks.find( { _id : "balancer" } )

2 kết hợp với mã hóa ở phần còn lại và TLS/SSL (mã hóa vận chuyển) để hỗ trợ tuân thủ các yêu cầu quy định.

Khi bạn phát triển và vận hành các ứng dụng với MongoDB, bạn có thể muốn phân tích hiệu suất của cơ sở dữ liệu dưới dạng ứng dụng. Hiệu suất MongoDB thảo luận về một số yếu tố hoạt động có thể ảnh hưởng đến hiệu suất.

Ngoài các yêu cầu giám sát cơ bản cho bất kỳ phiên bản MongoDB nào, đối với các bộ bản sao, quản trị viên phải giám sát độ trễ sao chép. "Độ trễ sao chép" đề cập đến lượng thời gian cần thiết để sao chép (tức là sao chép) một thao tác ghi trên sơ cấp thành thứ cấp. Một số giai đoạn chậm trễ nhỏ có thể được chấp nhận, nhưng các vấn đề quan trọng xuất hiện khi độ trễ sao chép tăng lên, bao gồm:

  • Tăng áp lực bộ nhớ cache trên chính.

  • Các hoạt động xảy ra trong thời gian trễ không được sao chép thành một hoặc nhiều thứ hai. Nếu bạn đang sử dụng sao chép để đảm bảo sự tồn tại của dữ liệu, độ trễ đặc biệt dài có thể ảnh hưởng đến tính toàn vẹn của tập dữ liệu của bạn.

  • Nếu độ trễ sao chép vượt quá độ dài của nhật ký hoạt động (OPLOG) thì MongoDB sẽ phải thực hiện đồng bộ hóa ban đầu trên thứ cấp, sao chép tất cả dữ liệu từ chính và xây dựng lại tất cả các chỉ mục. .

    Ghi chú

    Kích thước của oplog chỉ có thể định cấu hình trong lần chạy đầu tiên bằng đối số

    db.locks.find( { _id : "balancer" } )

    3 cho lệnh mongod hoặc tốt nhất là cài đặt

    db.locks.find( { _id : "balancer" } )

    5 trong tệp cấu hình MongoDB. Nếu bạn không chỉ định điều này trên dòng lệnh trước khi chạy với tùy chọn

    db.locks.find( { _id : "balancer" } )

    6, mongod sẽ tạo ra một oplog có kích thước mặc định.

    Theo mặc định, OPLOG là 5 phần trăm tổng dung lượng đĩa có sẵn trên các hệ thống 64 bit. Để biết thêm thông tin về việc thay đổi kích thước oplog, hãy xem thay đổi kích thước của oplog.

Bắt đầu từ MongoDB 4.2, quản trị viên có thể giới hạn tốc độ chính áp dụng chính của nó với mục tiêu giữ độ trễ

db.locks.find( { _id : "balancer" } )

8 theo giá trị tối đa có thể định cấu hình

db.locks.find( { _id : "balancer" } )

9

Theo mặc định, điều khiển dòng chảy là db.enableFreeMonitoring()0

Ghi chú

Kích thước của oplog chỉ có thể định cấu hình trong lần chạy đầu tiên bằng đối số

db.locks.find( { _id : "balancer" } )

3 cho lệnh mongod hoặc tốt nhất là cài đặt

db.locks.find( { _id : "balancer" } )

5 trong tệp cấu hình MongoDB. Nếu bạn không chỉ định điều này trên dòng lệnh trước khi chạy với tùy chọn

db.locks.find( { _id : "balancer" } )

6, mongod sẽ tạo ra một oplog có kích thước mặc định.

Theo mặc định, OPLOG là 5 phần trăm tổng dung lượng đĩa có sẵn trên các hệ thống 64 bit. Để biết thêm thông tin về việc thay đổi kích thước oplog, hãy xem thay đổi kích thước của oplog.

Bắt đầu từ MongoDB 4.2, quản trị viên có thể giới hạn tốc độ chính áp dụng chính của nó với mục tiêu giữ độ trễ

db.locks.find( { _id : "balancer" } )

8 theo giá trị tối đa có thể định cấu hình

db.locks.find( { _id : "balancer" } )

9

Theo mặc định, điều khiển dòng chảy là db.enableFreeMonitoring()0

Ghi chú

Kích thước của oplog chỉ có thể định cấu hình trong lần chạy đầu tiên bằng đối số

db.locks.find( { _id : "balancer" } )

3 cho lệnh mongod hoặc tốt nhất là cài đặt

db.locks.find( { _id : "balancer" } )

5 trong tệp cấu hình MongoDB. Nếu bạn không chỉ định điều này trên dòng lệnh trước khi chạy với tùy chọn

db.locks.find( { _id : "balancer" } )

6, mongod sẽ tạo ra một oplog có kích thước mặc định.

  • Theo mặc định, OPLOG là 5 phần trăm tổng dung lượng đĩa có sẵn trên các hệ thống 64 bit. Để biết thêm thông tin về việc thay đổi kích thước oplog, hãy xem thay đổi kích thước của oplog.

  • Bắt đầu từ MongoDB 4.2, quản trị viên có thể giới hạn tốc độ chính áp dụng chính của nó với mục tiêu giữ độ trễ

    db.locks.find( { _id : "balancer" } )

    8 theo giá trị tối đa có thể định cấu hình

    db.locks.find( { _id : "balancer" } )

    9

  • Theo mặc định, điều khiển dòng chảy là db.enableFreeMonitoring()0

  • Để điều khiển dòng chảy tham gia, cụm sao chép/phân chia phải có: featureCompitionVersion (FCV) của db.enableFreeMonitoring()1 và đọc lo ngại db.enableFreeMonitoring()2. Nghĩa là, điều khiển dòng được kích hoạt không có hiệu lực nếu FCV không phải là db.enableFreeMonitoring()1 hoặc nếu đọc phần lớn mối quan tâm bị vô hiệu hóa.

  • Xem thêm: Kiểm tra độ trễ sao chép.

    • Các vấn đề sao chép thường là kết quả của các vấn đề kết nối mạng giữa các thành viên hoặc kết quả của một chính không có tài nguyên để hỗ trợ lưu lượng truy cập ứng dụng và sao chép. Để kiểm tra trạng thái của bản sao, hãy sử dụng

      2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
      appName: "MongoDB Shell"
      command: insert {
      insert: "clients",
      documents: [ {
      _id: ObjectId('593adc5b99001b7d119d0c97'),
      name: "Joe",
      PII: " Sensitive Information"
      } ],
      ordered: true
      }
      ...
      6 hoặc người trợ giúp sau trong vỏ:

    • Tham chiếu

      2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
      appName: "MongoDB Shell"
      command: insert {
      insert: "clients",
      documents: [ {
      _id: ObjectId('593adc5b99001b7d119d0c97'),
      name: "Joe",
      PII: " Sensitive Information"
      } ],
      ordered: true
      }
      ...
      6 cung cấp một cái nhìn tổng quan sâu hơn về đầu ra này. Nói chung, hãy xem giá trị của db.enableFreeMonitoring()6 và đặc biệt chú ý đến chênh lệch thời gian giữa các thành viên chính và thành viên phụ.

Bắt đầu từ Phiên bản 4.2 (cũng có sẵn bắt đầu từ 4.0.6), các thành viên phụ của một bộ bản sao hiện các mục OPLOG đã mất nhiều thời gian hơn so với ngưỡng hoạt động chậm để áp dụng. Những thông điệp oplog chậm này:

Được đăng nhập cho các thứ hai trong db.enableFreeMonitoring()7

Được ghi lại dưới thành phần db.enableFreeMonitoring()8 với văn bản db.enableFreeMonitoring()9.

Không phụ thuộc vào các mức nhật ký (ở cấp hệ thống hoặc thành phần)

Không phụ thuộc vào mức độ hồ sơ.

Có thể bị ảnh hưởng bởi db.disableFreeMonitoring()0, tùy thuộc vào phiên bản MongoDB của bạn:

Bởi vì các máy chủ cấu hình không thể truy cập có thể ảnh hưởng nghiêm trọng đến tính khả dụng của cụm bị che khuất, bạn nên giám sát các máy chủ cấu hình của mình để đảm bảo rằng cụm vẫn được cân bằng tốt và các trường hợp ____39 có thể khởi động lại.

MongoDB Cloud Manager và OPS Trình quản lý máy chủ cấu hình giám sát và có thể tạo thông báo nếu máy chủ cấu hình không thể truy cập được. Xem Tài liệu Trình quản lý đám mây MongoDB và tài liệu Trình quản lý OPS để biết thêm thông tin. and Ops Manager monitor config servers and can create notifications if a config server becomes inaccessible. See the MongoDB Cloud Manager documentation and Ops Manager documentation for more information.

Các triển khai phân cụm hiệu quả nhất cân bằng các khối cân bằng giữa các mảnh vỡ. Để tạo điều kiện cho điều này, MongoDB có một quy trình cân bằng nền, phân phối dữ liệu để đảm bảo rằng các khối luôn được phân phối tối ưu giữa các mảnh vỡ.

Phát hành lệnh db.disableFreeMonitoring()6 hoặc db.disableFreeMonitoring()7 cho

2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "clients",
documents: [ {
_id: ObjectId('593adc5b99001b7d119d0c97'),
name: "Joe",
PII: " Sensitive Information"
} ],
ordered: true
}
...
9 từ trong vòng db.disableFreeMonitoring()9. Điều này trả về một cái nhìn tổng quan về toàn bộ cụm bao gồm tên cơ sở dữ liệu và danh sách các khối.db.disableFreeMonitoring()9. This returns an overview of the entire cluster including the database name, and a list of the chunks.

Để kiểm tra trạng thái khóa của cơ sở dữ liệu, hãy kết nối với phiên bản

2017-06-09T13:35:23.446-04:00 I COMMAND [conn1] command internal.clients
appName: "MongoDB Shell"
command: insert {
insert: "clients",
documents: [ {
_id: ObjectId('593adc5b99001b7d119d0c97'),
name: "Joe",
PII: " Sensitive Information"
} ],
ordered: true
}
...
9 bằng db.disableFreeMonitoring()9. Phát hành chuỗi lệnh sau để chuyển sang cơ sở dữ liệu mongod2 và hiển thị tất cả các khóa nổi bật trên cơ sở dữ liệu Shard:db.disableFreeMonitoring()9. Issue the following command sequence to switch to the mongod2 database and display all outstanding locks on the shard database:

use config
db.locks.find()

Quá trình cân bằng có một khóa "cân bằng" đặc biệt ngăn chặn hoạt động cân bằng khác xuất hiện. Trong cơ sở dữ liệu mongod2, sử dụng lệnh sau để xem khóa "Balancer".

db.locks.find( { _id : "balancer" } )

Đã thay đổi trong phiên bản 3.4: Bắt đầu từ 3.4, chính của máy chủ CSRS Cấu hình giữ khóa "Balancer", sử dụng ID quy trình có tên là "ConfigServer". Khóa này không bao giờ được phát hành. Để xác định xem bộ cân bằng đang chạy, hãy xem Kiểm tra xem Balancer có chạy không.

Ghi chú

  • Bắt đầu từ MongoDB 4.2, Watchdog nút lưu trữ có sẵn trong cả phiên bản cộng đồng và MongoDB Enterprise.Storage Node Watchdog is available in both the Community and MongoDB Enterprise editions.

  • Trong các phiên bản trước đó (3.2.16+, 3.4.7+, 3.6.0+, 4.0.0+), Watchdog nút lưu trữ chỉ có sẵn trong phiên bản doanh nghiệp MongoDB.Storage Node Watchdog is only available in MongoDB Enterprise edition.

Cơ quan giám sát nút lưu trữ theo dõi các thư mục MongoDB sau đây để phát hiện sự không phản hồi của hệ thống tập tin:

  • Thư mục mongod4

  • Thư mục mongod5 bên trong thư mục mongod4 nếu mongod7 được bật

  • Thư mục của tệp mongod8

  • Thư mục của tệp mongod9

Theo mặc định, Watchdog nút lưu trữ bị vô hiệu hóa. Bạn chỉ có thể bật Watchdog nút lưu trữ trên mongod tại thời điểm khởi động bằng cách đặt tham số ____101 thành một số nguyên lớn hơn hoặc bằng 60. Tuy nhiên, sau khi được bật, bạn có thể tạm dừng WatchDog nút lưu trữ và khởi động lại trong thời gian chạy. Xem tham số

mongod -v --logpath /var/log/mongodb/server1.log --logappend

01 để biết chi tiết.

Nếu bất kỳ hệ thống tập tin nào chứa các thư mục được giám sát trở nên không phản hồi, cơ quan giám sát nút lưu trữ sẽ chấm dứt mongod và thoát với mã trạng thái là 61. sơ đẳng.

Khi mongod đã chấm dứt, có thể không thể khởi động lại nó trên cùng một máy.

Ghi chú

Bắt đầu từ MongoDB 4.2, Watchdog nút lưu trữ có sẵn trong cả phiên bản cộng đồng và MongoDB Enterprise.

Trong các phiên bản trước đó (3.2.16+, 3.4.7+, 3.6.0+, 4.0.0+), Watchdog nút lưu trữ chỉ có sẵn trong phiên bản doanh nghiệp MongoDB.

Cơ quan giám sát nút lưu trữ theo dõi các thư mục MongoDB sau đây để phát hiện sự không phản hồi của hệ thống tập tin:

Thư mục mongod4