Friday, 13 March 2020

Mongo DB Log rotation

cat nodes.json 

{ 
"dev": [{"node":"amdbdabcd0101:2700"}, {"node":"amdbdabcd0102:2700"}],
"qa": [{"node":"amdbdabcd0101:2700"}, {"node":"amdbdabcd0102:2700"}]
}


''' 

Script Purpose : Mongo Database Cluster log rotation script 
Version : V1.0.0
'''
import pymongo
import os
import sys
import time
import json
from pymongo.errors import AutoReconnect

os.environ['HTTPS_PROXY']='http://abc.proxy.com:8099'

#msg='  ClusterFailoverTriggered:'+str(sys.argv[1])
#os.system('python send_sns.py'+str(msg))

'''
Loading Data Node and Arbiter node into list from json input file
'''

all_nodes=[]
rotated_nodes=[]

def _load_cluster_nodes():
    global all_nodes,east_data_nodes,west_data_nodes,east_arbiter_nodes,west_arbiter_nodes
    with open('nodes.json', 'r') as f:
        nodes_dict = json.load(f)

#    for key in nodes_dict['adh_dev']:
#        all_nodes.append(key['node'])
    for key in nodes_dict['adh_qa']:
        all_nodes.append(key['node'])
    for key in nodes_dict['adh_perf']:
        all_nodes.append(key['node'])
    for key in nodes_dict['sess_qa']:
        all_nodes.append(key['node'])
_load_cluster_nodes()


''' Mongo user credentails '''

'''
Mongo DB Connection and getting server status
'''


for node in all_nodes:
# db_stats = db.command({'replSetGetStatus'  :1})
 print("node    : "+str(node))
 #programPause = input("Press the <ENTER> key .....")
 conn = pymongo.MongoClient('mongodb://sysAdmin:'+x+'@'+node)
 db = conn['admin']
 conn.admin.command({'logRotate':1})
 rotated_nodes.append(node)
print("Log roated nodes  :  ")
print(rotated_nodes)

No comments:

Post a Comment