def main(): ''' Gather and send details on all visible S3 buckets ''' logger.info("start") discovery_key = "disc.aws" discovery_macro = "#S3_BUCKET" prototype_s3_size = "disc.aws.size" prototype_s3_count = "disc.aws.objects" args = parse_args() if args.verbose: logger.setLevel(logging.DEBUG) logger.debug("verbose flag set") ocutil = OCUtil() dc_yaml = ocutil.get_dc('docker-registry') registry_config_secret = get_registry_config_secret(dc_yaml) oc_yaml = ocutil.get_secrets(registry_config_secret) aws_access, aws_secret = get_aws_creds(oc_yaml) awsutil = AWSUtil(aws_access, aws_secret, args.debug) bucket_list = awsutil.get_bucket_list(args.debug) bucket_stats = {} for bucket in bucket_list: s3_size, s3_objects = awsutil.get_bucket_info(bucket, args.debug) bucket_stats[bucket] = {"size": s3_size, "objects": s3_objects} if args.debug: print "Bucket stats: " + str(bucket_stats) if args.test: print "Test-only. Received results: " + str(bucket_stats) else: zgs = ZaggSender(verbose=args.debug) zgs.add_zabbix_dynamic_item(discovery_key, discovery_macro, bucket_list) for bucket in bucket_stats.keys(): zab_key = "{}[{}]".format(prototype_s3_size, bucket) zgs.add_zabbix_keys( {zab_key: int(round(bucket_stats[bucket]["size"]))}) zab_key = "{}[{}]".format(prototype_s3_count, bucket) zgs.add_zabbix_keys({zab_key: bucket_stats[bucket]["objects"]}) zgs.send_metrics()
def get_registry_config_secret(yaml_results): ''' Find the docker registry config secret ''' ocutil = OCUtil() volumes = yaml_results['spec']['template']['spec']['volumes'] for volume in volumes: if 'emptyDir' in volume: continue secret_dict = ocutil.get_secrets(volume['secret']['secretName']) if 'config.yml' in secret_dict['data']: return volume['secret']['secretName'] print "Unable to find the %s the docker registry config" print "Please run \"oc get dc docker-registry\" to investigate" sys.exit(1)
def main(): ''' Gather and send details on all visible S3 buckets ''' discovery_key = "disc.gcp" discovery_macro = "#GCS_BUCKET" prototype_bucket_size = "disc.gcp.size" prototype_bucket_count = "disc.gcp.objects" args = parse_args() ocutil = OCUtil() dc_yaml = ocutil.get_dc('docker-registry') registry_config_secret = get_registry_config_secret(dc_yaml) oc_yaml = ocutil.get_secrets(registry_config_secret) bucket = get_gcp_info(oc_yaml) gsutil = GcloudUtil(verbose=args.debug) bucket_list = gsutil.get_bucket_list() bucket_stats = {} for bucket in bucket_list: size, objects = gsutil.get_bucket_info(bucket) bucket_stats[bucket] = {"size": size, "objects": objects} if args.debug: print "Bucket stats: " + str(bucket_stats) if args.test: print "Test-only. Received results: " + str(bucket_stats) else: zgs = ZaggSender(verbose=args.debug) zgs.add_zabbix_dynamic_item(discovery_key, discovery_macro, bucket_list) for bucket in bucket_stats.keys(): zab_key = "{}[{}]".format(prototype_bucket_size, bucket) zgs.add_zabbix_keys({zab_key: int(round(bucket_stats[bucket]["size"]))}) zab_key = "{}[{}]".format(prototype_bucket_count, bucket) zgs.add_zabbix_keys({zab_key: bucket_stats[bucket]["objects"]}) zgs.send_metrics()
def main(): """ Gather and send details on all visible S3 buckets """ discovery_key = "disc.aws" discovery_macro = "#S3_BUCKET" prototype_s3_size = "disc.aws.size" prototype_s3_count = "disc.aws.objects" args = parse_args() ocutil = OCUtil() oc_yaml = ocutil.get_secrets("dockerregistry") aws_access, aws_secret = get_aws_creds(oc_yaml) awsutil = AWSUtil(aws_access, aws_secret, args.debug) bucket_list = awsutil.get_bucket_list(args.debug) bucket_stats = {} for bucket in bucket_list: s3_size, s3_objects = awsutil.get_bucket_info(bucket, args.debug) bucket_stats[bucket] = {"size": s3_size, "objects": s3_objects} if args.debug: print "Bucket stats: " + str(bucket_stats) if args.test: print "Test-only. Received results: " + str(bucket_stats) else: zgs = ZaggSender(verbose=args.debug) zgs.add_zabbix_dynamic_item(discovery_key, discovery_macro, bucket_list) for bucket in bucket_stats.keys(): zab_key = "{}[{}]".format(prototype_s3_size, bucket) zgs.add_zabbix_keys({zab_key: int(round(bucket_stats[bucket]["size"]))}) zab_key = "{}[{}]".format(prototype_s3_count, bucket) zgs.add_zabbix_keys({zab_key: bucket_stats[bucket]["objects"]}) zgs.send_metrics()
def main(): ''' Gather and send details on all visible S3 buckets ''' #get the region with open('/container_setup/monitoring-config.yml', 'r') as f: doc = yaml.load(f) bucket_region = doc['oso_region'] args = parse_args() ocutil = OCUtil() dc_yaml = ocutil.get_dc('docker-registry') registry_config_secret = get_registry_config_secret(dc_yaml) oc_yaml = ocutil.get_secrets(registry_config_secret) aws_access, aws_secret = get_aws_creds(oc_yaml) awsutil = AWSUtil(aws_access, aws_secret, args.debug) bucket_list = awsutil.get_bucket_list(verbose=args.debug, BucketRegion=bucket_region) bucket_stats = {} for bucket in bucket_list: #print bucket s3_size, s3_objects = awsutil.get_bucket_info( bucket, verbose=args.debug, BucketRegion=bucket_region) bucket_stats[bucket] = {"size": s3_size, "objects": s3_objects} if args.debug: print "Bucket stats: " + str(bucket_stats) if args.test: print "Test-only. Received results: " + str(bucket_stats) else: send_zagg_data(bucket_list, bucket_stats, args)