一、mongo文件說明mongodb
名稱 | 說明 |
---|---|
mongod | 是數據庫服務端,不能暴露再公共網絡,主要實現服務器端數據庫的數據處理、數據訪問管理及其餘後臺管理。 |
mongo | 客戶端 shell 程序。 |
mongos | 路由管理程序,用於分片集羣環境下系統訪問的路由管理。 |
mongostat | 運行狀態監控工具。 |
mongotop | 監控工具,對讀寫數據進行統計。 |
mongodump | 導出備份工具(二進制)。 |
mongorestore | 備份數據恢復工具,跟mongodump一塊兒使用(二進制)。 |
mongoexport | 以JSON或CSV格式導出數據庫數據。 |
mongoimport | 備份數據恢復工具,跟mongoexport一塊兒使用。 |
bsondump | 將BSON文件轉換爲可閱讀的格式。 |
mongofiles | 把任何數據類型文件上傳到MongoDB中。 |
mongooplog | 以Oplog輪詢方式,實現對遠程服務器上的數據同步到本地磁盤。 |
mongoperf | 測試磁盤IO性能的工具。 |
二、安裝mongodocker
# 添加yum源 [root@gz-tencent ~]# cat > /etc/yum.repos.d/mongodb-org-4.0.repo << EOF [mongodb-org-4.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc EOF # 安裝mongo [root@gz-tencent ~]# sudo yum install -y mongodb-org [root@gz-tencent ~]# sudo service mongod start [root@gz-tencent ~]# sudo chkconfig mongod on # 鏈接shell [root@gz-tencent ~]# mongo
三、docker運行mongo,so easy !shell
# 新建綁定目錄 [root@gz-tencent]# mkdir -p ~/mongo/{mongod-1,mongos-1}/{etc,data} # 運行mongod docker run --name mongod-1 -p 27017:27017 -v /mongo/mongod-1/etc:/etc/mongo -v ~/mongo/mongod-1/data:/data/db -d mongo
如何使用配置文件運行mongodb?直接修改配置文件/etc/mongod.conf
、/etc/mongos.conf
就能夠了。數據庫
一、網絡配置說明:json
net: port: localhost # 綁定可訪問的IP地址,IP地址用","隔開,默認localhost bindIp: <string> # 是否綁定全部IP,默認 false bindIpAll: false # 最大併發鏈接數,默認65536 maxIncomingConnections: 65536 # 客戶端請求內容驗證,默認true wireObjectCheck: true compression: # 數據壓縮,默認:snappy,還支持zlib。zlib壓縮率高,可是慢。 # snappy 比 zlib 更快,但文件相對要大 20% 到 100%。 compressors: snappy serviceExecutor: <string>
二、存儲配置說明數組
storage: # 實例存儲數據的目錄,不要隨意修改,須要和安裝時一直。 dbPath: /data/db # 索引重建,Mongod重啓會刪除不完整索引,而後嘗試重建不完整索引 indexBuildRetry: true # 數據庫修復臨時存儲路徑 repairPath: <string> # 數據操做記錄日誌,只適用於Mongod journal: enabled: true # Mongod從內存想數據操做記錄日誌提交數據的最大間隔時間(ms) commitIntervalMs: <num> # 給每一個數據庫創建獨立的子文件路徑 directoryPerDB: false # 數據刷新到數據庫文件的間隔時間(秒) syncPeriodSecs: 60 # 數據庫存儲引擎(wiredTiger/MMAPv1/inMemory) engine: wiredTiger # 相對於MMAPv1,wiredTiger能夠壓縮最大80%的空間 wiredTiger: engineConfig: # 數據在內存中的緩存空間,默認:50%RAM-1G或256M cacheSizeGB: <number> # 壓縮方式(none/snappy/zlib),壓縮wiredTiger日誌 journalCompressor: snappy # Mongod是否將索引和集合文件分開存放 directoryForIndexes: false collectionConfig: # 集合數據的壓縮方式(none/snappy/zlib) blockCompressor: snappy indexConfig: # 啓用索引數據的前綴壓縮功能 prefixCompression: true
三、審計日誌說明緩存
auditLog: # syslog:以json格式保存身份驗證到syslog # console:以json格式輸出信息到標準輸出 # file:以json格式輸出信息到文件 destination: <string> # JSON:輸出json格式文件;BSON:輸出bson二進制格式文件 format: <string> path: <string> filter: <string>
審計filter的相關配置:服務器
{ atype: <String>, ts : { "$date": <timestamp> }, local: { ip: <String>, port: <int> }, remote: { ip: <String>, port: <int> }, users : [ { user: <String>, db: <String> }, ... ], roles: [ { role: <String>, db: <String> }, ... ], param: <document>, result: <int> }
字段 | 類型 | 記錄描述 |
---|---|---|
atype |
string | 記錄審計事件的行動,詳細信息和結果。 |
ts |
document | 文檔包含」$date」日期鍵值對,其中是以時間戳格式的值 |
local |
document | 文檔包含ip鍵值對,及port鍵值對 |
remote |
document | 文檔包含與事件相關聯的遠程鏈接ip鍵值對和port鍵值對 |
users |
array | 用戶識別文檔數組。因爲MongoDB容許登陸不一樣的用戶數據庫,該數組能夠有一個以上的用戶。每一個文檔包含用戶名的user字段和該用戶身份驗證數據庫的db字段。 |
roles |
array | 指定給用戶的角色的文檔數組,每一個文檔包含角色名稱的role字段和該角色關聯的數據庫的db字段。 |
param |
document | 定義審計事件的具體細節, 審計事件操做、細節和結果 |
result |
integer | 錯誤代碼 |
查看示例:審計建立集合和刪除掉集合網絡
auditLog: destination: file format: BSON path: /var/lib/mongo/auditLog.bson filter: ‘{ atype : {$in: [「createCollection」,」dropCollection」 ] } }’