From charlesreid1

Line 46: Line 46:
Here are the contents of the default configuration file:
Here are the contents of the default configuration file:


'''mongod.conf (default)'''
'''mongod.conf (homebrew default)'''


<pre>
<pre>
Line 59: Line 59:
</pre>
</pre>


...
'''mongod.conf (ubuntu default)'''
 
<pre>
# mongodb.conf
 
# Where to store the data.
dbpath=/var/lib/mongodb
 
#where to log
logpath=/var/log/mongodb/mongodb.log
 
logappend=true
 
bind_ip = 127.0.0.1
#port = 27017
 
# Enable journaling, http://www.mongodb.org/display/DOCS/Journaling
journal=true
 
# Enables periodic logging of CPU utilization and I/O wait
#cpu = true
 
# Turn on/off security.  Off is currently the default
#noauth = true
#auth = true
 
# Verbose logging output.
#verbose = true
 
# Inspect all client data for validity on receipt (useful for
# developing drivers)
#objcheck = true
 
# Enable db quota management
#quota = true
 
# Set oplogging level where n is
#  0=off (default)
#  1=W
#  2=R
#  3=both
#  7=W+some reads
#oplog = 0
 
# Diagnostic/debugging option
#nocursors = true
 
# Ignore query hints
#nohints = true
 
# Disable the HTTP interface (Defaults to localhost:27018).
#nohttpinterface = true
 
# Turns off server-side scripting.  This will result in greatly limited
# functionality
#noscripting = true
 
# Turns off table scans.  Any query that would do a table scan fails.
#notablescan = true
 
# Disable data file preallocation.
#noprealloc = true
 
# Specify .ns file size for new databases.
# nssize = <size>
 
# Accout token for Mongo monitoring server.
#mms-token = <token>
 
# Server name for Mongo monitoring server.
#mms-name = <server-name>
 
# Ping interval for Mongo monitoring server.
#mms-interval = <seconds>
 
# Replication Options
 
# in replicated mongo databases, specify here whether this is a slave or master
#slave = true
#source = master.example.com
# Slave only: specify a single database to replicate
#only = master.example.com
# or
#master = true
#source = slave.example.com
 
# Address of a server to pair with.
#pairwith = <server:port>
# Address of arbiter server.
#arbiter = <server:port>
# Automatically resync if slave data is stale
#autoresync
# Custom size for replication operation log.
#oplogSize = <MB>
# Size limit for in-memory storage of op ids.
#opIdMem = <bytes>
 
# SSL options
# Enable SSL on normal ports
#sslOnNormalPorts = true
# SSL Key file and password
#sslPEMKeyFile = /etc/ssl/mongodb.pem
#sslPEMKeyPassword = pass
 
</pre>


==Starting with Specified Configuration File==
==Starting with Specified Configuration File==

Revision as of 07:13, 30 March 2017

Covering some notes on MongoDB for the UGR wifi project.

MongoDB goals:

  • Get it set up and working locally with a test database script
    • Add records
    • Drop records
    • Query records - for all records within a date range, for all records matching a mac address, for all clients on a certain network, for all macs matching a certain prefix pattern
  • Get MongoDB working over stunnel
  • Get MongoDB set up in a docker container with a persistent data storage volume

Use the already-finished instructions here:

Also use the PyMODM library:

Installing

Mac

On a Mac, to test things out:

brew install mongodb --with-openssl
pip install pymodm

Ubuntu

On Ubuntu, the eventual server platform:

apt-get install mongodb
apt-get install python-pip.    # may be necessary
pip install pymodm

Configuration File

On a Mac, the configuration file should be located in /usr/local/etc/mongod.conf.

On Unbuntu, the config file should be in /etc/mongod.conf.

Here are the contents of the default configuration file:

mongod.conf (homebrew default)

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /usr/local/var/mongodb
net:
  bindIp: 127.0.0.1

mongod.conf (ubuntu default)

# mongodb.conf

# Where to store the data.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 127.0.0.1
#port = 27017

# Enable journaling, http://www.mongodb.org/display/DOCS/Journaling
journal=true

# Enables periodic logging of CPU utilization and I/O wait
#cpu = true

# Turn on/off security.  Off is currently the default
#noauth = true
#auth = true

# Verbose logging output.
#verbose = true

# Inspect all client data for validity on receipt (useful for
# developing drivers)
#objcheck = true

# Enable db quota management
#quota = true

# Set oplogging level where n is
#   0=off (default)
#   1=W
#   2=R
#   3=both
#   7=W+some reads
#oplog = 0

# Diagnostic/debugging option
#nocursors = true

# Ignore query hints
#nohints = true

# Disable the HTTP interface (Defaults to localhost:27018).
#nohttpinterface = true

# Turns off server-side scripting.  This will result in greatly limited
# functionality
#noscripting = true

# Turns off table scans.  Any query that would do a table scan fails.
#notablescan = true

# Disable data file preallocation.
#noprealloc = true

# Specify .ns file size for new databases.
# nssize = <size>

# Accout token for Mongo monitoring server.
#mms-token = <token>

# Server name for Mongo monitoring server.
#mms-name = <server-name>

# Ping interval for Mongo monitoring server.
#mms-interval = <seconds>

# Replication Options

# in replicated mongo databases, specify here whether this is a slave or master
#slave = true
#source = master.example.com
# Slave only: specify a single database to replicate
#only = master.example.com
# or
#master = true
#source = slave.example.com

# Address of a server to pair with.
#pairwith = <server:port>
# Address of arbiter server.
#arbiter = <server:port>
# Automatically resync if slave data is stale
#autoresync
# Custom size for replication operation log.
#oplogSize = <MB>
# Size limit for in-memory storage of op ids.
#opIdMem = <bytes>

# SSL options
# Enable SSL on normal ports
#sslOnNormalPorts = true
# SSL Key file and password
#sslPEMKeyFile = /etc/ssl/mongodb.pem
#sslPEMKeyPassword = pass

Starting with Specified Configuration File

To start with a specified config file, use the -f flag:

mongod -f /usr/local/etc/mongod.conf