('44054','21','','10535','S3 buckets discovery','aws.s3.discovery','12h','90d','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.params[\'auth_type\'] = \'role_base\';\r\n				var request = new HttpRequest();\r\n				if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n					request.setProxy(AWS.params.proxy);\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n				var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n				if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n					throw \'Error getting IMDSv2 session token.\';\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n				var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n				if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n					throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n				}\r\n\r\n				credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n				if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n					throw \'Error getting security credentials from instance metadata.\';\r\n				}\r\n\r\n				try {\r\n					credentials = JSON.parse(credentials);\r\n				}\r\n				catch (error) {\r\n					throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n				}\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			case \'assume_role\':\r\n				AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n\r\n				role_arn_regex = /role\\/(.+)$/;\r\n\r\n				var payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': AWS.params.role_arn.match(role_arn_regex)[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload)), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'request_region\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	request: function (method, region, service, params, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\'),\r\n			canonical_uri = \'/\',\r\n			host = service + \'.\' + region + \'.amazonaws.com\';\r\n\r\n		if (AWS.params.auth_type === \'role_base\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			token = AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken;\r\n			var canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\' + \'x-amz-security-token:\' + token + \'\\n\',\r\n				signed_headers = \'content-encoding;host;x-amz-date;x-amz-security-token\';\r\n		}\r\n		else {\r\n			var canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n				signed_headers = \'content-encoding;host;x-amz-date\';\r\n		}\r\n\r\n		var canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS S3 ] Sending request: \' + url);\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ AWS S3 ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			try {\r\n				response = JSON.parse(XML.toJson(response));\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from AWS API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	listBuckets: function () {\r\n		var payload = {\r\n			\'Action\': \'ListBuckets\',\r\n			\'Version\': \'2006-03-01\'\r\n		};\r\n\r\n		var result = AWS.getField(AWS.request(\'GET\', AWS.params.request_region, \'s3\', AWS.prepareParams(payload)), \'ListAllMyBucketsResult.Buckets\');\r\n\r\n		if (result === null) {\r\n			return [];\r\n		}\r\n		result = AWS.getField(result, \'Bucket\');\r\n\r\n		return Array.isArray(result) ? result : [result];\r\n\r\n	}\r\n\r\n};\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n\r\n	return JSON.stringify(AWS.listBuckets());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS S3 ] ERROR: \' + error);\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','1',NULL,'Get S3 bucket instances.','0','7d','1','',NULL,'{$AWS.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','ab6a97a108fb4dbc9fd1e07378721ffe','0','2','0'),
('44055','5','','10047','Zabbix proxies stats','zabbix[proxy,discovery]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The master item of Zabbix proxies\' statistics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6fb9d6a8d3f84c679e7af4b9ef437239','0','2','0'),
('44161','21','','10539','Get data','azure.db.mysql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureDB.params = params;\r\n	},\r\n\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureDB.params.proxy);\r\n		}\r\n		if (AzureDB.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	}\r\n\r\n};\r\n\r\nvar metrics = [\r\n	\'cpu_percent\',\r\n	\'memory_percent\',\r\n	\'network_bytes_egress\',\r\n	\'network_bytes_ingress\',\r\n	\'active_connections\',\r\n	\'total_connections\',\r\n	\'aborted_connections\',\r\n	\'Queries\',\r\n	\'io_consumption_percent\',\r\n	\'storage_percent\',\r\n	\'storage_used\',\r\n	\'storage_limit\',\r\n	\'backup_storage_used\',\r\n	\'replication_lag\',\r\n	\'cpu_credits_remaining\',\r\n	\'cpu_credits_consumed\'\r\n],\r\n	prepared_metrics = [],\r\n	data = {};\r\n	data[\'errors\'] = {};\r\n	data[\'metrics\'] = {};\r\n\r\ntry {\r\n	AzureDB.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = AzureDB.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			AzureDB.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n			if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n				data.health = health.value[0].properties;\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.health = error.toString();\r\n		}\r\n\r\n		for (var i = 0; i < metrics.length; i += 20) {\r\n			var chunk = metrics.slice(i, i + 20);\r\n\r\n			prepared_metrics.push(\r\n				chunk.map(function (element) {\r\n					return encodeURIComponent(element);\r\n				}).join(\',\')\r\n			);\r\n		}\r\n\r\n		start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n		for (var j in prepared_metrics) {\r\n			try {\r\n				metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n				if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n					for (k in metrics_data.value) {\r\n						if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n							data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n						}\r\n					}\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[prepared_metrics[j]] = error.toString();\r\n			}\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','de712334db1440309fa68f9252d4f9bc','0','2','0'),
('44162','21','','10540','Get data','azure.db.mysql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureDB.params = params;\r\n	},\r\n\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureDB.params.proxy);\r\n		}\r\n		if (AzureDB.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	}\r\n\r\n};\r\n\r\nvar metrics = [\r\n	\'cpu_percent\',\r\n	\'memory_percent\',\r\n	\'io_consumption_percent\',\r\n	\'storage_percent\',\r\n	\'storage_used\',\r\n	\'storage_limit\',\r\n	\'serverlog_storage_percent\',\r\n	\'serverlog_storage_usage\',\r\n	\'serverlog_storage_limit\',\r\n	\'active_connections\',\r\n	\'connections_failed\',\r\n	\'seconds_behind_master\',\r\n	\'backup_storage_used\',\r\n	\'network_bytes_egress\',\r\n	\'network_bytes_ingress\'\r\n],\r\n	prepared_metrics = [],\r\n	data = {};\r\ndata[\'errors\'] = {};\r\ndata[\'metrics\'] = {};\r\n\r\ntry {\r\n	AzureDB.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = AzureDB.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			AzureDB.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n			if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n				data.health = health.value[0].properties;\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.health = error.toString();\r\n		}\r\n\r\n		for (var i = 0; i < metrics.length; i += 20) {\r\n			var chunk = metrics.slice(i, i + 20);\r\n\r\n			prepared_metrics.push(\r\n				chunk.map(function (element) {\r\n					return encodeURIComponent(element);\r\n				}).join(\',\')\r\n			);\r\n		}\r\n\r\n		start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n		for (var j in prepared_metrics) {\r\n			try {\r\n				metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n				if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n					for (k in metrics_data.value) {\r\n						if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n							data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n						}\r\n					}\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[prepared_metrics[j]] = error.toString();\r\n			}\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','cd62d92ef0384ea9acf0cae71c88ebc6','0','2','0'),
('44248','21','','10543','Get data','azure.db.pgsql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureDB.params = params;\r\n	},\r\n\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureDB.params.proxy);\r\n		}\r\n		if (AzureDB.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	}\r\n\r\n};\r\n\r\nvar metrics = [\r\n	\'cpu_percent\',\r\n	\'memory_percent\',\r\n	\'iops\',\r\n	\'disk_queue_depth\',\r\n	\'read_throughput\',\r\n	\'write_throughput\',\r\n	\'read_iops\',\r\n	\'write_iops\',\r\n	\'network_bytes_egress\',\r\n	\'network_bytes_ingress\',\r\n	\'active_connections\',\r\n	\'connections_failed\',\r\n	\'connections_succeeded\',\r\n	\'storage_percent\',\r\n	\'storage_used\',\r\n	\'storage_free\',\r\n	\'txlogs_storage_used\',\r\n	\'backup_storage_used\',\r\n	\'maximum_used_transactionIDs\',\r\n	\'cpu_credits_remaining\',\r\n	\'cpu_credits_consumed\'\r\n],\r\n	prepared_metrics = [],\r\n	data = {};\r\n	data[\'errors\'] = {};\r\n	data[\'metrics\'] = {};\r\n\r\ntry {\r\n	AzureDB.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = AzureDB.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			AzureDB.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n			if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n				data.health = health.value[0].properties;\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.health = error.toString();\r\n		}\r\n\r\n		for (var i = 0; i < metrics.length; i += 20) {\r\n			var chunk = metrics.slice(i, i + 20);\r\n\r\n			prepared_metrics.push(\r\n				chunk.map(function (element) {\r\n					return encodeURIComponent(element);\r\n				}).join(\',\')\r\n			);\r\n		}\r\n\r\n		start_date = new Date((new Date().getTime()) - 600000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n		for (var j in prepared_metrics) {\r\n			try {\r\n				metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n				if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n					for (k in metrics_data.value) {\r\n						if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n							if (metrics_data.value[k].name.value === \'disk_queue_depth\' ||\r\n								metrics_data.value[k].name.value === \'read_throughput\' ||\r\n								metrics_data.value[k].name.value === \'write_throughput\' ||\r\n								metrics_data.value[k].name.value === \'read_iops\' ||\r\n								metrics_data.value[k].name.value === \'write_iops\') {\r\n									data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 6];\r\n							} else {\r\n								data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n							}\r\n						}\r\n					}\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[prepared_metrics[j]] = error.toString();\r\n			}\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','1792c0566e8a438dad5e299d8f5b9094','0','2','0'),
('44249','21','','10544','Get data','azure.db.pgsql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureDB.params = params;\r\n	},\r\n\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureDB.params.proxy);\r\n		}\r\n		if (AzureDB.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	}\r\n\r\n};\r\n\r\nvar metrics = [\r\n	\'cpu_percent\',\r\n	\'memory_percent\',\r\n	\'io_consumption_percent\',\r\n	\'storage_percent\',\r\n	\'storage_used\',\r\n	\'storage_limit\',\r\n	\'serverlog_storage_percent\',\r\n	\'serverlog_storage_usage\',\r\n	\'serverlog_storage_limit\',\r\n	\'active_connections\',\r\n	\'connections_failed\',\r\n	\'backup_storage_used\',\r\n	\'network_bytes_egress\',\r\n	\'network_bytes_ingress\',\r\n	\'pg_replica_log_delay_in_seconds\',\r\n	\'pg_replica_log_delay_in_bytes\'\r\n],\r\n	prepared_metrics = [],\r\n	data = {};\r\n	data[\'errors\'] = {};\r\n	data[\'metrics\'] = {};\r\n\r\ntry {\r\n	AzureDB.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = AzureDB.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			AzureDB.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n			if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n				data.health = health.value[0].properties;\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.health = error.toString();\r\n		}\r\n\r\n		for (var i = 0; i < metrics.length; i += 20) {\r\n			var chunk = metrics.slice(i, i + 20);\r\n\r\n			prepared_metrics.push(\r\n				chunk.map(function (element) {\r\n					return encodeURIComponent(element);\r\n				}).join(\',\')\r\n			);\r\n		}\r\n\r\n		start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n		for (var j in prepared_metrics) {\r\n			try {\r\n				metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n				if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n					for (k in metrics_data.value) {\r\n						if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n							data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n						}\r\n					}\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[prepared_metrics[j]] = error.toString();\r\n			}\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','e47d863822e64e6292bfa3e684bc2839','0','2','0'),
('44294','21','','10546','Get data','meraki.get.data','1h','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar r_match = \'{$MERAKI.ORGANIZATION.NAME.MATCHES}\'\r\nvar r_not_match = \'{$MERAKI.ORGANIZATION.NAME.NOT_MATCHES}\'\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.1 Zabbix\');\r\n\r\nvar response,\r\n	error_msg = \'\',\r\n	organizations = [],\r\n	devices = [];\r\n\r\nfunction getHttpData(url) {\r\n	response = request.get(url);\r\n	Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (response.errors) {\r\n			throw response.errors.join(\', \');\r\n		} else {\r\n			throw \'Failed to receive data: invalid response status code.\';\r\n		}\r\n	}\r\n\r\n	if (typeof (response) !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object.\';\r\n	}\r\n\r\n	return response;\r\n};\r\n\r\ntry {\r\n\r\n	if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n		throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n	}\r\n\r\n	if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n		params.url = \'https://\' + params.url;\r\n	}\r\n\r\n	if (!params.url.endsWith(\'/\')) {\r\n		params.url += \'/\';\r\n	}\r\n\r\n	if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n		request.setProxy(params.httpproxy);\r\n	}\r\n\r\n	organizations = getHttpData(params.url + \'organizations\');\r\n\r\n	organizations = organizations.filter(function (x) {\r\n		return (new RegExp(r_match)).test(x.name) & !(new RegExp(r_not_match)).test(x.name)\r\n	})\r\n\r\n	if (Array.isArray(organizations) && organizations.length > 0) {\r\n		for (i in organizations) {\r\n			if (\'id\' in organizations[i]) {\r\n				organization_devices = getHttpData(params.url + \'organizations/\' + encodeURIComponent(organizations[i].id) + \'/devices/statuses\');\r\n\r\n				if (Array.isArray(organization_devices) && organization_devices.length > 0) {\r\n					for (j in organization_devices) {\r\n						organization_devices[j].organizationId = organizations[i].id;\r\n						organization_devices[j].organizationName = organizations[i].name;\r\n						if (!organization_devices[j].name) {\r\n							organization_devices[j].name = organization_devices[j].serial;\r\n						}\r\n						devices.push(organization_devices[j]);\r\n					}\r\n				}\r\n			}\r\n		}\r\n	}\r\n\r\n} catch (error) {\r\n	error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n	\'organizations\': organizations,\r\n	\'devices\': devices,\r\n	\'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering all the organizations and devices from Meraki API.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','d1a5f3c79a604bae98c314d2aed64ff4','0','2','0'),
('44295','21','','10547','Get device data','meraki.get.device','{$MERAKI.UPLINK.LL.TIMESPAN}','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.1 Zabbix\');\r\n\r\nvar response,\r\n	error_msg = \'\',\r\n	device = [],\r\n	uplinksLL = [];\r\n\r\nfunction isFloat(n) {\r\n	n = parseFloat(n);\r\n	return Number(n) === n && n % 1 !== 0;\r\n};\r\n\r\nfunction checkNumber(string) {\r\n	if (typeof string !== "string" || isNaN(string) || isFloat(string)) {\r\n		throw \'Incorrect "timespan" parameter given: \' + string + \' Must be an unsigned number\';\r\n	}\r\n	return string;\r\n};\r\n\r\nfunction getHttpData(url) {\r\n	response = request.get(url);\r\n	Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (response.errors) {\r\n			throw response.errors.join(\', \');\r\n		} else {\r\n			throw \'Failed to receive data: invalid response status code.\';\r\n		}\r\n	}\r\n\r\n	if (typeof (response) !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object.\';\r\n	}\r\n\r\n	return response;\r\n};\r\n\r\ntry {\r\n\r\n	if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n		throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n	}\r\n\r\n	if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n		params.url = \'https://\' + params.url;\r\n	}\r\n\r\n	if (!params.url.endsWith(\'/\')) {\r\n		params.url += \'/\';\r\n	}\r\n\r\n	if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n		request.setProxy(params.httpproxy);\r\n	}\r\n\r\n	timespan = checkNumber(\'{$MERAKI.UPLINK.LL.TIMESPAN}\');\r\n\r\n	if (timespan > 86400 || timespan < 1) {\r\n		throw \'Incorrect "timespan" parameter given: \' + timespan + \' Must be between 1 and 86400 seconds.\';\r\n	}\r\n\r\n	uplinksLL = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/devices/uplinksLossAndLatency?timespan=\' + timespan);\r\n\r\n	if (uplinksLL.length > 0) {\r\n		uplinksLL = uplinksLL.filter(function (device) {\r\n			return device.serial == params.serial;\r\n		});\r\n	}\r\n\r\n} catch (error) {\r\n	error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n	\'uplinksLL\': uplinksLL,\r\n	\'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering device data from Meraki API.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','e4963b68cdde453f91767ff9e3a31d16','0','2','0'),
('44296','19','','10548','Get list of adaptive policy aggregate statistics','meraki.get.adaptive.policy','20m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Item for adaptive policy aggregate statistics for the organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','https://{$MERAKI.API.URL}/organizations/{$ID}/adaptivePolicy/overview','','','200','1','0','{$MERAKI.HTTP_PROXY}','X-Cisco-Meraki-API-Key: {$MERAKI.TOKEN}\r\nUser-Agent: ZabbixServer/1.1 Zabbix','0','0','0','0','0','0','0','25f8f61ddf964f39b39cc38b23b017b9','0','2','0'),
('44297','19','','10548','Get list of configuration changes','meraki.get.configuration.changes','{$MERAKI.CONFIG.CHANGE.TIMESPAN}','31d','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Item for viewing the change log for your organization. Gathering once per 20m by default.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','https://{$MERAKI.API.URL}/organizations/{$ID}/configurationChanges?timespan={$MERAKI.CONFIG.CHANGE.TIMESPAN}','','','200','1','0','{$MERAKI.HTTP_PROXY}','X-Cisco-Meraki-API-Key: {$MERAKI.TOKEN}\r\nUser-Agent: ZabbixServer/1.1 Zabbix','0','0','0','0','0','0','0','f2a65bce3adf4511a3f37ed4caa66b3d','0','2','0'),
('44298','19','','10548','Get licenses overview','meraki.get.licenses','12h','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Return overview of the license state for the organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','https://{$MERAKI.API.URL}/organizations/{$ID}/licenses/overview','','','200','1','0','{$MERAKI.HTTP_PROXY}','X-Cisco-Meraki-API-Key: {$MERAKI.TOKEN}\r\nUser-Agent: ZabbixServer/1.1 Zabbix','0','0','0','0','0','0','0','3306da0ec0d749829db2f5f42e4e7876','0','2','0'),
('44299','21','','10548','Get list of the networks','meraki.get.networks','3m','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.1 Zabbix\');\r\n\r\nvar response,\r\n	error_msg = \'\',\r\n	networks = [],\r\n	uplinks = [];\r\n\r\nfunction getHttpData(url) {\r\n	response = request.get(url);\r\n	Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (response.errors) {\r\n			throw response.errors.join(\', \');\r\n		} else {\r\n			throw \'Failed to receive data: invalid response status code.\';\r\n		}\r\n	}\r\n\r\n	if (typeof (response) !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object.\';\r\n	}\r\n\r\n	return response;\r\n};\r\n\r\ntry {\r\n\r\n	if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n		throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n	}\r\n\r\n	if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n		params.url = \'https://\' + params.url;\r\n	}\r\n\r\n	if (!params.url.endsWith(\'/\')) {\r\n		params.url += \'/\';\r\n	}\r\n\r\n	if (typeof params.httpproxy !==  \'undefined\' && params.httpproxy !== \'\') {\r\n		request.setProxy(params.httpproxy);\r\n	}\r\n\r\n	networks = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/networks\');\r\n\r\n	responseUplinks = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/appliance/uplink/statuses\');\r\n\r\n	if (typeof responseUplinks !== \'undefined\' && Array.isArray(responseUplinks)) {\r\n		for (var i in responseUplinks) {\r\n			if (\'networkId\' in responseUplinks[i] && typeof networks !== \'undefined\' && Array.isArray(networks)) {\r\n				network = networks.filter(function (x) { return x.id == responseUplinks[i].networkId; });\r\n			}\r\n\r\n			if (typeof responseUplinks[i].uplinks !== \'undefined\' && Array.isArray(responseUplinks[i].uplinks)) {\r\n				for (var p in responseUplinks[i].uplinks) {\r\n					if (typeof network[0].name !== \'undefined\') {\r\n						responseUplinks[i].uplinks[p].networkName = network[0].name;\r\n					}\r\n					if (typeof network[0].timeZone !== \'undefined\') {\r\n						responseUplinks[i].uplinks[p].timeZone = network[0].timeZone;\r\n					}\r\n					if (\'highAvailability\' in responseUplinks[i] && \'role\' in responseUplinks[i].highAvailability) {\r\n						responseUplinks[i].uplinks[p].role = responseUplinks[i].highAvailability.role;\r\n					}\r\n					if (\'serial\' in responseUplinks[i]) {\r\n						responseUplinks[i].uplinks[p].serial = responseUplinks[i].serial;\r\n					}\r\n\r\n					uplinks.push(responseUplinks[i].uplinks[p]);\r\n				}\r\n			}\r\n		}\r\n	}\r\n\r\n\r\n} catch (error) {\r\n	error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n	\'uplinks\': uplinks,\r\n	\'networks\': networks,\r\n	\'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering all the networks of organization from Meraki API.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','efe8853443d44eed8daeecee5ab9e481','0','2','0'),
('44300','21','','10548','Get list of the VPN stats','meraki.get.vpn.stats','{$MERAKI.VPN.STATS.TIMESPAN}','0','0','0','4','','','','',NULL,NULL,'var params = JSON.parse(value);\r\n\r\nvar request = new HttpRequest();\r\n\r\nrequest.addHeader(\'X-Cisco-Meraki-API-Key:\' + params.token);\r\nrequest.addHeader(\'User-Agent: ZabbixServer/1.1 Zabbix\');\r\n\r\nvar response,\r\n	error_msg = \'\',\r\n	vpnStats = [],\r\n	vpnStatuses = [],\r\n	result = [];\r\n\r\nfunction isFloat(n) {\r\n	n = parseFloat(n);\r\n	return Number(n) === n && n % 1 !== 0;\r\n};\r\n\r\nfunction checkNumber(string) {\r\n	if (typeof string !== "string" || isNaN(string) || isFloat(string)) {\r\n		throw \'Incorrect "timespan" parameter given: \' + string + \' Must be an unsigned number\';\r\n	}\r\n	return string;\r\n};\r\n\r\nfunction getHttpData(url) {\r\n	response = request.get(url);\r\n	Zabbix.log(4, \'[ Meraki API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from Meraki API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (response.errors) {\r\n			throw response.errors.join(\', \');\r\n		} else {\r\n			throw \'Failed to receive data: invalid response status code.\';\r\n		}\r\n	}\r\n\r\n	if (typeof (response) !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object.\';\r\n	}\r\n\r\n	return response;\r\n};\r\n\r\ntry {\r\n\r\n	if (params.token === \'{\' + \'$MERAKI.TOKEN}\') {\r\n		throw \'Please change {\' + \'$MERAKI.TOKEN} macro to the proper value.\';\r\n	}\r\n\r\n	if (params.url.indexOf(\'http://\') === -1 && params.url.indexOf(\'https://\') === -1) {\r\n		params.url = \'https://\' + params.url;\r\n	}\r\n\r\n	if (!params.url.endsWith(\'/\')) {\r\n		params.url += \'/\';\r\n	}\r\n\r\n	if (typeof params.httpproxy !== \'undefined\' && params.httpproxy !== \'\') {\r\n		request.setProxy(params.httpproxy);\r\n	}\r\n\r\n	timespan = checkNumber(\'{$MERAKI.VPN.STATS.TIMESPAN}\');\r\n\r\n	if (timespan > 86400 || timespan < 1) {\r\n		throw \'Incorrect "timespan" parameter given: \' + timespan + \' Must be between 1 and 86400 seconds.\';\r\n	}\r\n\r\n	vpnStats = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/appliance/vpn/stats?timespan=\' + timespan);\r\n\r\n	for (i in vpnStats) {\r\n		if (typeof vpnStats[i].merakiVpnPeers !== \'undefined\' && Array.isArray(vpnStats[i].merakiVpnPeers)) {\r\n			for (u in vpnStats[i].merakiVpnPeers) {\r\n				if (typeof vpnStats[i].merakiVpnPeers[u].latencySummaries !== \'undefined\' && Array.isArray(vpnStats[i].merakiVpnPeers[u].latencySummaries)) {\r\n					vpn_stats = vpnStats[i].merakiVpnPeers[u].latencySummaries.map(function (x) {\r\n\r\n						lps = vpnStats[i].merakiVpnPeers[u].lossPercentageSummaries.filter(function (y) { return y.senderUplink == x.senderUplink && y.receiverUplink == x.receiverUplink; });\r\n						js = vpnStats[i].merakiVpnPeers[u].jitterSummaries.filter(function (y) { return y.senderUplink == x.senderUplink && y.receiverUplink == x.receiverUplink; });\r\n						ms = vpnStats[i].merakiVpnPeers[u].mosSummaries.filter(function (y) { return y.senderUplink == x.senderUplink && y.receiverUplink == x.receiverUplink; });\r\n						Object.assign(x, lps[0], js[0], ms[0]);\r\n\r\n						if (\'networkId\' in vpnStats[i]) {\r\n							x.networkId = vpnStats[i].networkId;\r\n						}\r\n						if (\'networkName\' in vpnStats[i]) {\r\n							x.networkName = vpnStats[i].networkName;\r\n						}\r\n\r\n						if (\'networkId\' in vpnStats[i].merakiVpnPeers[u]) {\r\n							x.peerNetworkId = vpnStats[i].merakiVpnPeers[u].networkId;\r\n						}\r\n						if (\'networkName\' in vpnStats[i].merakiVpnPeers[u]) {\r\n							x.peerNetworkName = vpnStats[i].merakiVpnPeers[u].networkName;\r\n						}\r\n\r\n						return x;\r\n					});\r\n					result = result.concat(vpn_stats);\r\n				}\r\n			}\r\n		}\r\n	}\r\n\r\n	vpnStatuses = getHttpData(params.url + \'organizations/\' + encodeURIComponent(params.organizationId) + \'/appliance/vpn/statuses\');\r\n\r\n} catch (error) {\r\n	error_msg = error;\r\n};\r\n\r\nreturn JSON.stringify({\r\n	\'vpnStats\': result,\r\n	\'vpnStatuses\': vpnStatuses,\r\n	\'error\': error_msg.toString()\r\n});','','0','','','','','0',NULL,'Item for gathering all the VPN stats of the organization.','0','30d','0','',NULL,'{$MERAKI.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','bb653e6dba3f489494a7143b74fe8f4f','0','2','0'),
('44335','0','','10264','Get processes summary','proc.get[{$APACHE.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','99b1a38ed45b4212974b0bea72b076d2','0','2','0'),
('44337','0','','10264','CPU utilization','proc.cpu.util[{#APACHE.NAME}]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','2',NULL,'The percentage of the CPU utilization by a process {#APACHE.NAME}.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b73280fb0af64c7899abfc74cc074b13','0','2','0'),
('44343','0','','10266','Get processes summary','proc.get[{$NGINX.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d43b4b99b6084076a4feb1fde51ecc40','0','2','0'),
('44345','0','','10266','CPU utilization','proc.cpu.util[{#NGINX.NAME}]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','2',NULL,'The percentage of the CPU utilization by a process {#NGINX.NAME}.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84c95c1955bf4ccaa12a060a9acdb478','0','2','0'),
('44351','0','','10330','Get processes summary','proc.get[{$PHP_FPM.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71ea0957d99a4d48b18e73a21494c849','0','2','0'),
('44353','0','','10330','CPU utilization','proc.cpu.util[{#PHP_FPM.NAME}]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','2',NULL,'The percentage of the CPU utilization by a process `{#PHP_FPM.NAME}`.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a709eaae52ad4128a129c618db6525d2','0','2','0'),
('44359','0','','10301','Get processes summary','proc.get[{$RABBITMQ.PROCESS.NAME.PARAMETER},,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The aggregated data of summary metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8201cc537b124d9292fcf692922ee0ad','0','2','0'),
('44361','0','','10301','CPU utilization','proc.cpu.util[{#RABBITMQ.NAME}]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','2',NULL,'The percentage of the CPU utilization by a process {#RABBITMQ.NAME}.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0b195bf594c44b1f869b4a7671f61453','0','2','0'),
('44381','3','','10551','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1066','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8eff7e6fc12c45f6b98a4fb89c44f03d','0','2','0'),
('44382','3','','10551','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb04f67d7ea04894a9f143a7d27db09a','0','2','0'),
('44383','3','','10551','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be862a0f8625484ebccb8a4e5255b683','0','2','0'),
('44384','17','','10551','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all the SNMP traps unmatched by the other snmptrap items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','027bb218006e46238392afbb12d96ec6','0','2','0'),
('44385','20','1.3.6.1.2.1.1.4.0','10551','System contact details','system.contact','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe textual identification of the contact person for the managed node (or: this node), together with the contact information of this person. If no contact information is known, the value is a zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','566c78f548bc4d1c9157b4a3f41f083b','0','2','0'),
('44386','20','1.3.6.1.2.1.1.1.0','10551','System description','system.descr','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe textual description of the entity. This value should include the full name and version identification number of the system\'s hardware type, software operating-system, and the networking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bc245084de0047aaa7bc62234970e827','0','2','0'),
('44387','20','1.3.6.1.2.1.47.1.1.1.1.13.149','10551','Hardware model name','system.hw.model','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB.','29','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','34022f907faa4a3e8a02c5e5f5c8c43a','0','2','0'),
('44388','20','1.3.6.1.2.1.47.1.1.1.1.11.149','10551','Hardware serial number','system.hw.serialnumber','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB.','8','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d42a842c591489bb984faad26cd7e63','0','2','0'),
('44389','20','1.3.6.1.2.1.1.6.0','10551','System location','system.location','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe physical location of this node (e.g., telephone closet, the third floor).\r\nIf the location is unknown, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f109dce62c942f794fecaf7038d691e','0','2','0'),
('44390','20','1.3.6.1.2.1.1.5.0','10551','System name','system.name','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe administratively-assigned name for this node. By convention, this is the node\'s fully-qualified domain name. If the name is unknown, the value is a zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31ff1ef55d69461bbc5b4416c7a040be','0','2','0'),
('44391','20','1.3.6.1.2.1.1.2.0','10551','System object ID','system.objectid','1m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB.\r\nThe vendor\'s authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprise\'s subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining "what kind of box" is being managed.\r\nFor example, if the vendor "Flintstones, Inc." was assigned the subtree 1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its "Fred Router".','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a60cce9cf0464d6292d6b7934e9cfcd6','0','2','0'),
('44392','20','1.3.6.1.4.1.9.9.25.1.1.1.2.5','10551','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CISCO-IMAGE-MIB','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e02a0a8de70547e4895b395b616919dd','0','2','0'),
('44393','20','1.3.6.1.6.3.10.2.1.3.0','10551','Uptime (snmp)','system.uptime','1m','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMP-FRAMEWORK-MIB::snmpEngineTime.\r\nThe number of seconds since the value of the `snmpEngineBoots` object has had a last change.\r\nWhen incrementing this object\'s value would cause it to exceed its maximum, the `snmpEngineBoots` is incremented as if a re-initialization had occurred,\r\nand this object\'s value consequently reverts to zero.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','83405503b84d4af292e6846ccbd8a877','0','2','0'),
('44394','5','','10551','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'1067','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','edb1d93d5fda47928dcb62223ada8b16','0','2','0'),
('44395','20','discovery[{#SNMPVALUE},1.3.6.1.4.1.9.9.109.1.1.1.1.2]','10551','CPU discovery','cpu.discovery','1h','90d','0','0','4','','','','',NULL,NULL,'','','0','','','','','1',NULL,'You must use CISCO-PROCESS-MIB and its object `cpmCPUTotal5minRev` from the table called `cpmCPUTotalTable`, and indexed with `cpmCPUTotalPhysicalIndex`.\r\nThe table `cpmCPUTotalTable` allows CISCO-PROCESS-MIB to keep the CPU statistics for different physical entities in the router, such as different CPU chips, a group of CPUs, or CPUs in different modules/cards.\r\nIn the case of a single CPU, the `cpmCPUTotalTable` has only one entry.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d1d6b8c10e83484e82e37b58c7004d9e','0','2','0'),
('44396','20','discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7,{#ENT_SN},1.3.6.1.2.1.47.1.1.1.1.11]','10551','Entity serial numbers discovery','entity_sn.discovery','1h','90d','0','0','4','','','','',NULL,NULL,'','','0','','','','','1',NULL,'The discovery of serial numbers of the entities from ENTITY-MIB.','0','7d','1','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0c97bd2037f405ba2b183456d01973e','0','2','0'),
('44397','20','discovery[{#SNMPVALUE},1.3.6.1.2.1.47.1.1.1.1.7]','10551','Fan status discovery','fan.status.discovery','1h','90d','0','0','4','','','','',NULL,NULL,'','','0','','','','','1',NULL,'The discovery of metrics for the fan\'s status from ENTITY-MIB and CISCO-ENTITY-FRU-CONTROL-MIB.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a323e6f090e043058e2e932ed2456cba','0','2','0'),
('44398','20','discovery[{#SNMPVALUE},1.3.6.1.4.1.9.9.221.1.1.1.1.3]','10551','Memory discovery','memory.discovery','1h','90d','0','0','4','','','','',NULL,NULL,'','','0','','','','','1',NULL,'The discovery of `ciscoMemoryPoolTable` - the table that contains monitoring entries of the memory pool.\r\nFor more details see "How to Get Free and Largest Block of Contiguous Memory Using SNMP":\r\nhttp://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2714f855584347329b2f175a85198f80','0','2','0'),
('44399','20','discovery[{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3]','10551','Network interfaces discovery','net.if.discovery','1h','90d','0','0','4','','','','',NULL,NULL,'','','0','','','','','1',NULL,'The discovery of interfaces from IF-MIB.','0','7d','1','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd6bc93993e44b61aca57f0486e61756','0','2','0'),
('44400','20','discovery[{#SNMPVALUE},1.3.6.1.2.1.10.7.2.1.19,{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2]','10551','EtherLike discovery','net.if.duplex.discovery','1h','90d','0','0','4','','','','',NULL,NULL,'','','0','','','','','1',NULL,'The discovery of interfaces from IF-MIB and EtherLike-MIB. The interfaces that have up (1) operational status are discovered.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','73133517383046b58c8039363a907fe4','0','2','0'),
('44401','20','discovery[{#SNMPVALUE},1.3.6.1.2.1.47.1.1.1.1.7]','10551','PSU discovery','psu.discovery','1h','90d','0','0','4','','','','',NULL,NULL,'','','0','','','','','1',NULL,'The discovery of power supplies from ENTITY-MIB and CISCO-ENTITY-FRU-CONTROL-MIB.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8a6f70d8eaa94e1dbd45f199c231d770','0','2','0'),
('44402','20','discovery[{#SENSOR_TYPE},1.3.6.1.4.1.9.9.91.1.1.1.1.1,{#SENSOR_SCALE},1.3.6.1.4.1.9.9.91.1.1.1.1.2,{#SNMPVALUE},1.3.6.1.2.1.47.1.1.1.1.7]','10551','Temperature sensors discovery','temperature.discovery','1h','90d','0','0','4','','','','',NULL,NULL,'','','0','','','','','1',NULL,'The discovery of temperature sensors from CISCO-ENTITY-SENSOR-MIB and ENTITY-MIB. The sensors that have celsius (8) `entSensorType` are discovered. The scale of gathered values is taken from the `entSensorScale` and applied in item preprocessing.','0','7d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bb7d48018f8044ec9bb4fd20d6c52106','0','2','0'),
('44403','20','1.3.6.1.4.1.9.9.109.1.1.1.1.8.{#SNMPINDEX}','10551','#{#SNMPINDEX}: CPU utilization','system.cpu.util[{#SNMPINDEX}]','5m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','2',NULL,'MIB: CISCO-PROCESS-MIB\r\nThe object name: `cpmCPUTotal5minRev`\r\n\r\nThe MIB object `cpmCPUTotal5minRev` provides a more accurate view of the performance of the router over time than the MIB objects `cpmCPUTotal1minRev` and `cpmCPUTotal5secRev`. These MIB objects are not accurate because they look at the CPU with an interval of one minute and five seconds, respectively. These MIBs enable to monitor the trends and plan the capacity of your network. The recommended baseline rising threshold for the `cpmCPUTotal5minRev` is 90 percent. Depending on the platform, some routers that run at 90 percent, for example, 2500 series can exhibit performance degradation versus a high-end router, for example, the 7500 series, which can operate fine.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0196f6b4431b4823860b89c712b2e5a8','0','2','0'),
('44404','20','1.3.6.1.2.1.47.1.1.1.1.11.{#SNMPINDEX}','10551','{#ENT_NAME}: Hardware serial number','system.hw.serialnumber[{#SNMPINDEX}]','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','2',NULL,'MIB: ENTITY-MIB.\r\nThe object name: `entPhysicalSerialNum`.\r\nThe vendor-specific serial number string for the physical entity. The preferred value is the serial number string actually printed on the component itself (if present).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','873d648619bf45168d8008ea32596838','0','2','0'),
('44405','20','1.3.6.1.4.1.9.9.117.1.4.1.1.1.{#SNMPINDEX}','10551','{#SNMPVALUE}: Fan operational status','sensor.fan.status[{#SNMPINDEX}]','1m','31d','365d','0','3','','','','',NULL,'1060','','','0','','','','','2',NULL,'MIB: CISCO-ENTITY-FRU-CONTROL-MIB.\r\nThe object name: `cefcFanTrayOperStatus`.\r\nThe operational state of the fan or a fan tray.\r\nPossible values:\r\n-  unknown (1) - unknown;\r\n-  up (2) - powered on;\r\n-  down (3) - powered down;\r\n-  warning (4) - partial failure; needs replacement as soon as possible.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','16047f29242444f284e81f6b87a22c50','0','2','0'),
('44406','20','1.3.6.1.4.1.9.9.221.1.1.1.1.8.{#SNMPINDEX}','10551','{#SNMPVALUE}: Free memory','vm.memory.free[{#SNMPINDEX}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','2',NULL,'MIB: CISCO-ENHANCED-MEMPOOL-MIB.\r\nThe object name: `cempMemPoolFree`.\r\nIt indicates the number of bytes from the memory pool that are currently unused on the physical entity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','566a28e0151f4e54a8dd7fceae39ffab','0','2','0'),
('44407','20','1.3.6.1.4.1.9.9.221.1.1.1.1.7.{#SNMPINDEX}','10551','{#SNMPVALUE}: Used memory','vm.memory.used[{#SNMPINDEX}]','1m','31d','365d','0','3','','B','','',NULL,NULL,'','','0','','','','','2',NULL,'MIB: CISCO-ENHANCED-MEMPOOL-MIB.\r\nThe object name: `cempMemPoolUsed`.\r\nIt indicates the number of bytes from the memory pool that are currently in use by applications on the physical entity.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e1d336ee79b6448ea9d6a28107314a42','0','2','0'),
('44408','15','','10551','{#SNMPVALUE}: Memory utilization','vm.memory.util[{#SNMPINDEX}]','1m','31d','365d','0','0','','%','','',NULL,NULL,'last(//vm.memory.used[{#SNMPINDEX}])/(last(//vm.memory.free[{#SNMPINDEX}])+last(//vm.memory.used[{#SNMPINDEX}]))*100','','0','','','','','2',NULL,'The memory utilization expressed in %.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a56f71ab5bc64aa8884dc540baefe91a','0','2','0'),
('44409','20','1.3.6.1.2.1.2.2.1.13.{#SNMPINDEX}','10551','Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded','net.if.in.discards[{#SNMPINDEX}]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','2',NULL,'MIB: IF-MIB.\r\nThe number of inbound packets, which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.\r\nOne possible reason for discarding such a packet could be the necessity to free up the buffer space.\r\nDiscontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad58c092ed604092a06ba518779c3294','0','2','0'),
('44410','20','1.3.6.1.2.1.2.2.1.14.{#SNMPINDEX}','10551','Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors','net.if.in.errors[{#SNMPINDEX}]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','2',NULL,'MIB: IF-MIB.\r\nFor packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol.\r\nFor character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol.\r\nDiscontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cbf3ec76d241416caf812eccdf91ec1b','0','2','0'),
('44411','20','1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX}','10551','Interface {#IFNAME}({#IFALIAS}): Bits received','net.if.in[{#SNMPINDEX}]','1m','31d','365d','0','3','','bps','','',NULL,NULL,'','','0','','','','','2',NULL,'MIB: IF-MIB.\r\nThe total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets.\r\nDiscontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7bce2682f482489c8c27aafc9ddcb205','0','2','0'),
('44412','20','1.3.6.1.2.1.2.2.1.19.{#SNMPINDEX}','10551','Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded','net.if.out.discards[{#SNMPINDEX}]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','2',NULL,'MIB: IF-MIB.\r\nThe number of outbound packets, which were chosen to be discarded, even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.\r\nOne possible reason for discarding such a packet could be to free up buffer space.\r\nDiscontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4751c9b0380d465799b013906e404e14','0','2','0'),
('44413','20','1.3.6.1.2.1.2.2.1.20.{#SNMPINDEX}','10551','Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors','net.if.out.errors[{#SNMPINDEX}]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','2',NULL,'MIB: IF-MIB.\r\nFor packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol.\r\nFor character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol.\r\nDiscontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','36185d5b8239434ba2c85706cd890148','0','2','0'),
('44414','20','1.3.6.1.2.1.31.1.1.1.10.{#SNMPINDEX}','10551','Interface {#IFNAME}({#IFALIAS}): Bits sent','net.if.out[{#SNMPINDEX}]','1m','31d','365d','0','3','','bps','','',NULL,NULL,'','','0','','','','','2',NULL,'MIB: IF-MIB.\r\nThe total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of the ifOutOctets.\r\nDiscontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of the ifCounterDiscontinuityTime.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','669337baef364a46bc8ad34bd4c97494','0','2','0'),
('44415','20','1.3.6.1.2.1.31.1.1.1.15.{#SNMPINDEX}','10551','Interface {#IFNAME}({#IFALIAS}): Speed','net.if.speed[{#SNMPINDEX}]','1m','31d','365d','0','3','','bps','','',NULL,NULL,'','','0','','','','','2',NULL,'MIB: IF-MIB.\r\nAn estimate of the interface\'s current bandwidth in units of 1,000,000 bits per second. If this object reports a value of "n", then the speed of the interface is somewhere in the range from n-500,000 to n+499,999.\r\nFor the interfaces, which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth.\r\nFor a sub-layer, which has no concept of bandwidth, this object should be zero.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d7507061f1e49debfbbd78e5e666a13','0','2','0'),
('44416','20','1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}','10551','Interface {#IFNAME}({#IFALIAS}): Operational status','net.if.status[{#SNMPINDEX}]','1m','31d','365d','0','3','','','','',NULL,'1064','','','0','','','','','2',NULL,'MIB: IF-MIB.\r\nThe current operational state of the interface:\r\n-  The testing (3) state indicates that no operational packet scan be passed.\r\n-  If ifAdminStatus is down (2), then ifOperStatus should be down (2).\r\n-  If ifAdminStatus is changed to up (1), then ifOperStatus should change to up (1), provided the interface is ready to transmit and receive network traffic.\r\n-  It should change to dormant (5) if the interface is waiting for external actions, such as a serial line waiting for an incoming connection.\r\n-  It should remain in the down (2) state if and only when there is a fault that prevents it from going to the up (1) state.\r\n-  It should remain in the notPresent (6) state if the interface has missing components (typically, hardware).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','07cf5068d5584affa0b35aea5f63e17c','0','2','0'),
('44417','20','1.3.6.1.2.1.2.2.1.3.{#SNMPINDEX}','10551','Interface {#IFNAME}({#IFALIAS}): Interface type','net.if.type[{#SNMPINDEX}]','1m','31d','365d','0','3','','','','',NULL,'1065','','','0','','','','','2',NULL,'MIB: IF-MIB.\r\nThe type of an interface.\r\nAdditional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA)\r\nthrough updating the syntax of the IANAifType textual convention.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2353404b957494683ade2d0c0a24e05','0','2','0'),
('44418','20','1.3.6.1.2.1.10.7.2.1.19.{#SNMPINDEX}','10551','Interface {#IFNAME}({#IFALIAS}): Duplex status','net.if.duplex[{#SNMPINDEX}]','1m','31d','365d','0','3','','','','',NULL,'1063','','','0','','','','','2',NULL,'MIB: EtherLike-MIB.\r\nThe object name: dot3StatsDuplexStatus.\r\nThe current mode of operation of the MAC entity \'unknown\' indicates that the current duplex mode could not be determined.\r\nThe management control of the duplex mode is accomplished through the MAU MIB. \r\nWhen the interface does not support autonegotiation, or when autonegotiation is not enabled, the duplex mode is controlled using ifMauDefaultType.\r\nWhen autonegotiation is supported and enabled, duplex mode is controlled using ifMauAutoNegAdvertisedBits.\r\nIn either case, the currently operating duplex mode is reflected in both: in this object and in ifMauType.\r\nNote that this object provides redundant information with ifMauType.\r\nNormally, redundant objects are discouraged. \r\nHowever, in this instance, it allows the management application to determine the duplex status of an interface without having to know every possible value of ifMauType.\r\nThis was felt to be sufficiently valuable to justify the redundancy.\r\nFor the reference see: [IEEE 802.3 Std.], 30.3.1.1.32, aDuplexStatus.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','17792bed5be34b21a4c8a4069374d7f7','0','2','0'),
('44419','20','1.3.6.1.4.1.9.9.117.1.1.2.1.2.{#SNMPINDEX}','10551','{#SNMPVALUE}: Power supply status','sensor.psu.status[{#SNMPINDEX}]','1m','31d','365d','0','3','','','','',NULL,'1061','','','0','','','','','2',NULL,'MIB: CISCO-ENTITY-FRU-CONTROL-MIB.\r\nThe object name: cefcFRUPowerOperStatus.\r\nThe Operational field-replaceable unit (FRU) Status types.\r\nThe valid values are:\r\n-  offEnvOther (1): FRU is powered off because of a problem not listed below;\r\n-  on (2): FRU is powered on;\r\n-  offAdmin (3): administratively off;\r\n-  offDenied (4): FRU is powered off because available system power is insufficient;\r\n-  offEnvPower (5): FRU is powered off because of a power problem in the FRU. For example, the FRU\'s power translation (DC-DC converter) or distribution failed;\r\n-  offEnvTemp (6): FRU is powered off because of temperature problem;\r\n-  offEnvFan (7): FRU is powered off because of fan problems;\r\n-  failed (8): FRU is in failed state;\r\n-  onButFanFail (9): FRU is on but fan has failed;\r\n-  offCooling (10): FRU is powered off because of the system\'s insufficient cooling capacity;\r\n-  offConnectorRating (11): FRU is powered off because of the system\'s connector rating exceeded;\r\n-  onButInlinePowerFail (12): The FRU is on but no inline power is being delivered as the data/inline power component of the FRU has failed.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8a083945d7e244099095b022169de86c','0','2','0'),
('44420','20','1.3.6.1.4.1.9.9.91.1.1.1.1.5.{#SNMPINDEX}','10551','{#SNMPVALUE}: Temperature sensor status','sensor.temp.status[{#SNMPINDEX}]','1m','31d','365d','0','3','','','','',NULL,'1062','','','0','','','','','2',NULL,'MIB: CISCO-ENTITY-SENSOR-MIB.\r\nThe object name: entSensorStatus.\r\nThis variable indicates the present operational status of the sensor.\r\nPossible values:\r\n-  ok (1): means the agent can read the sensor value;\r\n-  unavailable (2): means that the agent presently can not report the sensor value;\r\n-  nonoperational (3) means that the agent believes the sensor is broken. The sensor could have a hard failure (e.g., disconnected wire), or a soft failure (e.g., out-of-range, jittery, or wildly fluctuating readings).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d4e13b5e26164a2ca240bfb93fdd9b77','0','2','0'),
('44421','20','1.3.6.1.4.1.9.9.91.1.1.1.1.4.{#SNMPINDEX}','10551','{#SNMPVALUE}: Temperature','sensor.temp.value[{#SNMPINDEX}]','1m','31d','365d','0','0','','!°C','','',NULL,NULL,'','','0','','','','','2',NULL,'MIB: CISCO-ENTITY-SENSOR-MIB.\r\nThe object name: entSensorValue.\r\nThis variable reports the most recent measurement seen by the sensor.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','87bb149a7c464318be942011b678a704','0','2','0'),
('44427','0','','10076','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','95e14453e9ee4b6ea036fab09bf2b194','0','2','0'),
('44430','0','','10075','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9695b40b38f74bb3bb5d127af1ba13ce','0','2','0'),
('44433','0','','10077','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05adecd1fb3e4c85b826dfdd601fa444','0','2','0'),
('44436','0','','10001','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','868440292732425c8f9df52882822c82','0','2','0'),
('44442','7','','10343','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6c1de983421846c9acef8f465ff2f196','0','2','0'),
('44445','0','','10079','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf99f88e47a64ecab98de4f3cfe6592f','0','2','0'),
('44447','0','','10074','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b5de01cf628b48cb899a8ad2a02a3b62','0','2','0'),
('44450','0','','10078','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','897f991e6f8f433bbd52a958f4f54c08','0','2','0'),
('44453','0','','10081','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f59d6794a6b94e93aced78a688507677','0','2','0'),
('44455','7','','10351','Get filesystems','vfs.fs.get','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','60a17a94a9ad4e4192547d0a6a1e1d25','0','2','0'),
('44457','19','','10552','Get Control-M servers','controlm.servers','10m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets a list of servers.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/config/servers','','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','7d9ed576aeb045798b78414c89f3e597','0','2','0'),
('44458','19','','10552','Get SLA services','controlm.services','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets all the SLA active services.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/run/services/sla','','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','2bd2c27b8dc74656a00f6d2006399388','0','2','0'),
('44459','19','','10553','Get agents','controlm.agents','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets agents for the server.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/config/server/{$SERVER.NAME}/agents','','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','94e45567531543119d6e36b4463684c7','0','2','0'),
('44460','19','','10553','Get jobs','controlm.jobs','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets the status of jobs.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/run/jobs/status','[{"ctm":"{$SERVER.NAME}"}]','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','1f60be3e3fe543d697047ffcad7b0a7f','0','2','0'),
('44461','19','','10553','Get Control-M server stats','controlm.server.stats','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Gets the statistics of the server.','0','30d','0','',NULL,'','{$API.URI.ENDPOINT}/config/servers','','','200','1','0','','x-api-key: {$API.TOKEN}','0','0','0','0','0','0','0','67ca527f452b43aab2e3171e49f96194','0','2','0'),
('44494','21','','10555','Get metrics','veeam.get.metrics','5m','0','0','0','4','','','','',NULL,NULL,'var Veeam = {\r\n	params: {},\r\n	token: \'\',\r\n\r\n	setParams: function (params) {\r\n		[\'api_endpoint\', \'user\', \'password\', \'created_after\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		Veeam.params = params;\r\n		if (typeof Veeam.params.api_endpoint === \'string\' && !Veeam.params.api_endpoint.endsWith(\'/\')) {\r\n			Veeam.params.api_endpoint += \'/\';\r\n		}\r\n		if (Veeam.params.created_after >= 365 || Veeam.params.created_after <= 1) {\r\n			throw \'Incorrect "created_after" parameter given: \' + Veeam.params.created_after + \'\\nMust be between 1 and 365 days.\';\r\n		}\r\n	},\r\n\r\n	login: function () {\r\n\r\n		var resp, login = new HttpRequest();\r\n		if (typeof Veeam.params.http_proxy !== \'undefined\' && Veeam.params.http_proxy !== \'\') {\r\n			login.setProxy(Veeam.params.http_proxy);\r\n		}\r\n		login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n		login.addHeader(\'x-api-version: 1.0-rev2\');\r\n		resp = login.post(Veeam.params.api_endpoint + \'api/oauth2/token\',\r\n			\'grant_type=password&username=\' + encodeURIComponent(Veeam.params.user) + \'&password=\' + encodeURIComponent(Veeam.params.password));\r\n\r\n		if (login.getStatus() !== 200 || resp === null) {\r\n			throw \'Login failed with status code \' + login.getStatus() + \': \' + resp;\r\n		}\r\n\r\n		try {\r\n			resp = JSON.parse(resp);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse authentication token for the logon session.\';\r\n		}\r\n		if (!resp.hasOwnProperty(\'access_token\')) {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n		Veeam.token = resp[\'access_token\'];\r\n\r\n	},\r\n\r\n	request: function (url) {\r\n\r\n		var response, request = new HttpRequest();\r\n		if (typeof Veeam.params.http_proxy !== \'undefined\' && Veeam.params.http_proxy !== \'\') {\r\n			request.setProxy(Veeam.params.http_proxy);\r\n		}\r\n		if (Veeam.token) {\r\n			request.addHeader(\'Authorization: Bearer \' + Veeam.token);\r\n			request.addHeader(\'x-api-version: 1.0-rev2\');\r\n			response = request.get(url);\r\n		}\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	},\r\n\r\n	getMetricsData: function () {\r\n		var data = {};\r\n		ms = 86400000;\r\n		start_date = new Date((new Date().getTime()) - ms * Veeam.params.created_after).toISOString().replace(/\\.\\d+/, \'\');\r\n		endpoints = {\r\n			\'proxies\': \'api/v1/backupInfrastructure/proxies\',\r\n			\'managedServers\': \'api/v1/backupInfrastructure/managedServers\',\r\n			\'repositories_states\': \'api/v1/backupInfrastructure/repositories/states\',\r\n			\'jobs_states\': \'api/v1/jobs/states\',\r\n			\'sessions\': \'api/v1/sessions?createdAfterFilter=\' + encodeURIComponent(start_date)\r\n		};\r\n\r\n		Object.keys(endpoints).forEach(function (key) {\r\n			data[key] = Veeam.request(Veeam.params.api_endpoint + endpoints[key]);\r\n		});\r\n\r\n		return data;\r\n	}\r\n};\r\n\r\ntry {\r\n	Veeam.setParams(JSON.parse(value));\r\n	Veeam.login();\r\n	return JSON.stringify(Veeam.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ VEEAM ] ERROR: \' + error);\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$VEEAM.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','f8ef587e6d204e7da6e27e56b1131ca4','0','2','0'),
('44516','21','','10556','Get metrics','veeam.manager.get.metrics','5m','0','0','0','4','','','','',NULL,NULL,'var Veeam = {\r\n	params: {},\r\n\r\n	setParams: function (params) {\r\n		[\'api_endpoint\', \'user\', \'password\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		Veeam.params = params;\r\n		if (typeof Veeam.params.api_endpoint === \'string\' && !Veeam.params.api_endpoint.endsWith(\'/\')) {\r\n			Veeam.params.api_endpoint += \'/\';\r\n		}\r\n	},\r\n\r\n	request: function (url) {\r\n		var response, request = new HttpRequest();\r\n		if (typeof Veeam.params.http_proxy !== \'undefined\' && Veeam.params.http_proxy !== \'\') {\r\n			request.setProxy(Veeam.params.http_proxy);\r\n		}\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Authorization: Basic \' + btoa(Veeam.params.user + \':\' + Veeam.params.password));\r\n		request.post(Veeam.params.api_endpoint + \'api/sessionMngr\');\r\n		response = request.get(url);\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	},\r\n\r\n	getMetricsData: function() {\r\n		var data = {};\r\n		endpoints = {\r\n			\'backupFiles\': \'api/backupFiles\',\r\n		};\r\n		reports_summary = Veeam.request(Veeam.params.api_endpoint + \'api/reports/summary\')\r\n		if (typeof reports_summary !== \'object\' || reports_summary.hasOwnProperty(\'Links\') === false)\r\n			throw \'Failed response parse. Check debug log for more information.\';\r\n		reports_summary.Links.forEach(function (field)  {\r\n				data[field.Name] = Veeam.request(field.Href)\r\n			})\r\n		Object.keys(endpoints).forEach(function (key) {\r\n			data[key] = Veeam.request(Veeam.params.api_endpoint + endpoints[key]);\r\n			if (typeof data[key] !== \'object\' || data[key].hasOwnProperty(\'Refs\') === false)\r\n				throw \'Failed response parse. Check debug log for more information.\';\r\n			data[key].Refs.forEach(function (field) {\r\n				data[field.Name] = Veeam.request(field.Href)\r\n			})		\r\n		})\r\n		return data;\r\n	}\r\n\r\n};\r\ntry {\r\n	Veeam.setParams(JSON.parse(value));\r\n	return JSON.stringify(Veeam.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ VEEAM MANAGER ] ERROR: \' + error);\r\n	return JSON.stringify({\'error\': error});\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$VEEAM.MANAGER.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','525a61ff4fb747efab6ac58d1ac8b7c4','0','2','0'),
('44530','21','','10557','Get data','azure.db.mssql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureDB.params = params;\r\n	},\r\n\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureDB.params.proxy);\r\n		}\r\n		if (AzureDB.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	}\r\n\r\n};\r\n\r\nvar metrics = [\r\n	\'cpu_percent\',\r\n	\'physical_data_read_percent\',\r\n	\'log_write_percent\',\r\n	\'storage\',\r\n	\'connection_successful\',\r\n	\'connection_failed\',\r\n	\'blocked_by_firewall\',\r\n	\'deadlock\',\r\n	\'storage_percent\',\r\n	\'xtp_storage_percent\',\r\n	\'workers_percent\',\r\n	\'sessions_percent\',\r\n	\'sessions_count\',\r\n	\'cpu_limit\',\r\n	\'cpu_used\',\r\n	\'sqlserver_process_core_percent\',\r\n	\'sqlserver_process_memory_percent\',\r\n	\'tempdb_data_size\',\r\n	\'tempdb_log_size\',\r\n	\'tempdb_log_used_percent\',\r\n	\'allocated_data_storage\'\r\n],\r\n	day_metrics = \'full_backup_size_bytes,diff_backup_size_bytes,log_backup_size_bytes\',\r\n	prepared_metrics = [],\r\n	data = {};\r\n	data[\'errors\'] = {};\r\n	data[\'metrics\'] = {};\r\n\r\ntry {\r\n	AzureDB.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = AzureDB.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			AzureDB.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n			if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n				data.health = health.value[0].properties;\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.health = error.toString();\r\n		}\r\n\r\n		for (var i = 0; i < metrics.length; i += 20) {\r\n			var chunk = metrics.slice(i, i + 20);\r\n\r\n			prepared_metrics.push(\r\n				chunk.map(function (element) {\r\n					return encodeURIComponent(element);\r\n				}).join(\',\')\r\n			);\r\n		}\r\n\r\n		start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n		for (var j in prepared_metrics) {\r\n			try {\r\n				metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n				if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n					for (k in metrics_data.value) {\r\n						if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n							data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n						}\r\n					}\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[prepared_metrics[j]] = error.toString();\r\n			}\r\n		}\r\n		start_date = new Date((new Date().getTime()) - 86400000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n		try {\r\n			metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + day_metrics + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n			if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n				for (l in metrics_data.value) {\r\n					if (\'name\' in metrics_data.value[l] && typeof metrics_data.value[l].name === \'object\' && \'value\' in metrics_data.value[l].name && typeof metrics_data.value[l].name.value === \'string\' && \'timeseries\' in metrics_data.value[l] && Array.isArray(metrics_data.value[l].timeseries) && metrics_data.value[l].timeseries.length > 0 && \'data\' in metrics_data.value[l].timeseries[0] && Array.isArray(metrics_data.value[l].timeseries[0].data) && metrics_data.value[l].timeseries[0].data.length > 0) {\r\n						data.metrics[metrics_data.value[l].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[l].timeseries[0].data[metrics_data.value[l].timeseries[0].data.length - 1];\r\n					}\r\n				}\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors[day_metrics] = error.toString();\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','741cc1ec6a824e429f06b3d12a8a7082','0','2','0'),
('44531','21','','10558','Get data','azure.db.mssql.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureDB.params = params;\r\n	},\r\n\r\n\r\n	request: function (url, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureDB.params.proxy !== \'undefined\' && AzureDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureDB.params.proxy);\r\n		}\r\n		if (AzureDB.token) {\r\n			request.addHeader(\'Accept: application/json\');\r\n			request.addHeader(\'Authorization: Bearer \' + AzureDB.token);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n\r\n		if (data !== \'\') {\r\n			request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n			response = request.post(url, data);\r\n		}\r\n		else {\r\n			response = request.get(url);\r\n		}\r\n\r\n		Zabbix.log(4, \'[ Azure ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200 || response === null) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	}\r\n\r\n};\r\n\r\nvar metrics = [\r\n	\'cpu_percent\',\r\n	\'physical_data_read_percent\',\r\n	\'log_write_percent\',\r\n	\'storage\',\r\n	\'connection_successful\',\r\n	\'connection_failed\',\r\n	\'blocked_by_firewall\',\r\n	\'deadlock\',\r\n	\'storage_percent\',\r\n	\'xtp_storage_percent\',\r\n	\'workers_percent\',\r\n	\'sessions_percent\',\r\n	\'cpu_limit\',\r\n	\'cpu_used\',\r\n	\'sqlserver_process_core_percent\',\r\n	\'sqlserver_process_memory_percent\',\r\n	\'tempdb_data_size\',\r\n	\'tempdb_log_size\',\r\n	\'tempdb_log_used_percent\',\r\n	\'app_cpu_billed\',\r\n	\'app_cpu_percent\',\r\n	\'app_memory_percent\',\r\n	\'allocated_data_storage\'\r\n],\r\n	prepared_metrics = [],\r\n	data = {};\r\n	data[\'errors\'] = {};\r\n	data[\'metrics\'] = {};\r\n\r\ntry {\r\n	AzureDB.setParams(JSON.parse(value));\r\n\r\n	try {\r\n		result = AzureDB.request(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureDB.params.password)\r\n		);\r\n\r\n		if (\'access_token\' in result) {\r\n			AzureDB.token = result[\'access_token\'];\r\n		} else {\r\n			throw \'Auth response does not contain access token.\';\r\n		}\r\n	}\r\n	catch (error) {\r\n		data.errors.auth = error.toString();\r\n	}\r\n\r\n	if (!(\'auth\' in data.errors)) {\r\n		try {\r\n			health = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.ResourceHealth/availabilityStatuses?api-version=2020-05-01\');\r\n			if (\'value\' in health && Array.isArray(health.value) && health.value.length > 0 && \'properties\' in health.value[0] && typeof health.value[0].properties === \'object\') {\r\n				data.health = health.value[0].properties;\r\n			}\r\n		}\r\n		catch (error) {\r\n			data.errors.health = error.toString();\r\n		}\r\n\r\n		for (var i = 0; i < metrics.length; i += 20) {\r\n			var chunk = metrics.slice(i, i + 20);\r\n\r\n			prepared_metrics.push(\r\n				chunk.map(function (element) {\r\n					return encodeURIComponent(element);\r\n				}).join(\',\')\r\n			);\r\n		}\r\n\r\n		start_date = new Date((new Date().getTime()) - 300000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date().toISOString().replace(/\\.\\d+/, \'\');\r\n\r\n		for (var j in prepared_metrics) {\r\n			try {\r\n				metrics_data = AzureDB.request(\'https://management.azure.com\' + AzureDB.params.resource_id + \'/providers/Microsoft.Insights/metrics?metricnames=\' + prepared_metrics[j] + \'&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date) + \'&api-version=2021-05-01\');\r\n				if (\'value\' in metrics_data && Array.isArray(metrics_data.value) && metrics_data.value.length > 0) {\r\n					for (k in metrics_data.value) {\r\n						if (\'name\' in metrics_data.value[k] && typeof metrics_data.value[k].name === \'object\' && \'value\' in metrics_data.value[k].name && typeof metrics_data.value[k].name.value === \'string\' && \'timeseries\' in metrics_data.value[k] && Array.isArray(metrics_data.value[k].timeseries) && metrics_data.value[k].timeseries.length > 0 && \'data\' in metrics_data.value[k].timeseries[0] && Array.isArray(metrics_data.value[k].timeseries[0].data) && metrics_data.value[k].timeseries[0].data.length > 0) {\r\n							data.metrics[metrics_data.value[k].name.value.replace(/(\\s|\\/)+/g, \'\')] = metrics_data.value[k].timeseries[0].data[metrics_data.value[k].timeseries[0].data.length - 1];\r\n						}\r\n					}\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.errors[prepared_metrics[j]] = error.toString();\r\n			}\r\n		}\r\n	}\r\n}\r\ncatch (error) {\r\n	data.errors.params = error.toString();\r\n}\r\n\r\nif (Object.keys(data.errors).length !== 0) {\r\n	errors = \'Failed to receive data:\';\r\n	for (var error in data.errors) {\r\n		errors += \'\\n\' + error + \' : \' + data.errors[error];\r\n	}\r\n	data.errors = errors;\r\n}\r\nelse {\r\n	data.errors = \'\';\r\n}\r\n\r\nreturn JSON.stringify(data);','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','e1c668773b974deeaf64c0d51d1cb02d','0','2','0'),
('44586','0','','10335','Archivelog \'{#DEST_NAME}\': Get archive log info','oracle.archive.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DEST_NAME}"]','5m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','2',NULL,'Gets the archive log statistics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ad93880e4314d68b9e1aa4e00f03b6e','0','2','0'),
('44587','0','','10335','Database \'{#DBNAME}\': Get CDB and No-CDB info','oracle.cdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','2',NULL,'Gets the information about the CDB and non-CDB database on an instance.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1bad65e85d8b482d9cd83b1d202f8d8c','0','2','0'),
('44588','0','','10335','ASM \'{#DGNAME}\': Get ASM stats','oracle.diskgroups.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DGNAME}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','2',NULL,'Gets the ASM disk group statistics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb703b07fc514ce5aedc561896bcd53f','0','2','0'),
('44589','0','','10335','Database \'{#DBNAME}\': Get PDB info','oracle.pdb.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#DBNAME}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','2',NULL,'Gets the information about the PDB database on an instance.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca4452418d2641bd87fa75e946c2bf98','0','2','0'),
('44590','0','','10335','\'{#CON_NAME}\' TBS \'{#TABLESPACE}\': Get tablespaces stats','oracle.ts.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}","{#TABLESPACE}","{#CONTENTS}","{#CON_NAME}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','2',NULL,'Gets the statistics of the tablespace.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','97ac4acedcde465b8d004a8ac476dd99','0','2','0'),
('44609','11','','10328','Archivelog \'{#DEST_NAME}\': Get archive log info','db.odbc.get[get_archivelog_{#DEST_NAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]','5m','0','0','0','4','','','','',NULL,NULL,'SELECT\r\nd.dest_name, DECODE (d.status, \'VALID\',3, \'DEFERRED\', 2, \'ERROR\', 1, 0) AS status,\r\nd.log_sequence,\r\nd.error\r\nFROM v$archive_dest d , v$database db\r\nWHERE d.dest_name = \'{#DEST_NAME}\' AND d.status != \'INACTIVE\' AND db.log_mode = \'ARCHIVELOG\';','','0','{$ORACLE.USER}','{$ORACLE.PASSWORD}','','','2',NULL,'Gets the archive log statistics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a6e01f90dca47459975632c14ce5a39','0','2','0'),
('44610','11','','10328','ASM \'{#DGNAME}\': Get ASM stats','db.odbc.get[get_asm_{#DGNAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT\r\nname AS dgname,\r\nROUND(total_mb / DECODE(TYPE, \'NORMAL\', 2, \'HIGH\', 3, \'EXTERN\', 1)*1024*1024) AS size_byte,\r\nROUND(usable_file_mb*1024*1024 ) AS free_size_byte,\r\nROUND(100-(usable_file_mb /(total_mb / DECODE(TYPE, \'NORMAL\', 2, \'HIGH\', 3, \'EXTERN\', 1)))* 100, 2) AS used_percent\r\nFROM v$asm_diskgroup_stat\r\nWHERE name = \'{#DGNAME}\';','','0','{$ORACLE.USER}','{$ORACLE.PASSWORD}','','','2',NULL,'Gets the ASM disk group statistics.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','63fad55a2ced487aa30017b33bf1692e','0','2','0'),
('44611','11','','10328','Database \'{#DBNAME}\': Get CDB and No-CDB info','db.odbc.get[get_cdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT name as DBNAME,\r\nDECODE(open_mode, \'MOUNTED\', 1, \'READ ONLY\', 2, \'READ WRITE\', 3, \'READ ONLY WITH APPLY\', 4, \'MIGRATE\', 5, 0) AS open_mode,\r\nDECODE(database_role, \'SNAPSHOT STANDBY\', 1, \'LOGICAL STANDBY\', 2, \'PHYSICAL STANDBY\', 3, \'PRIMARY\', 4, \'FAR SYNC\', 5, 0) AS ROLE,\r\nDECODE(force_logging, \'YES\',1,\'NO\',0,0) AS force_logging,\r\nDECODE(log_mode, \'MANUAL\',2 ,\'ARCHIVELOG\',1,\'NOARCHIVELOG\',0,0) AS log_mode\r\nFROM v$database\r\nWHERE name = \'{#DBNAME}\';','','0','{$ORACLE.USER}','{$ORACLE.PASSWORD}','','','2',NULL,'Gets the information about the CDB and non-CDB database on an instance.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5de7c786988d49d0b50f28d2d622db62','0','2','0'),
('44612','11','','10328','Database \'{#DBNAME}\': Get PDB info','db.odbc.get[get_pdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT\r\nname as DBNAME,\r\nDECODE(open_mode, \'MOUNTED\', 1, \'READ ONLY\', 2, \'READ WRITE\', 3, \'READ ONLY WITH APPLY\', 4, \'MIGRATE\', 5, 0) AS open_mode\r\nFROM v$pdbs\r\nWHERE name = \'{#DBNAME}\';','','0','{$ORACLE.USER}','{$ORACLE.PASSWORD}','','','2',NULL,'Gets the information about the PDB database on an instance.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cedcebd0b7ce474c9681022fcc75df1c','0','2','0'),
('44613','11','','10328','\'{#CON_NAME}\' TBS \'{#TABLESPACE}\': Get tablespaces stats','db.odbc.get[get_{#CON_NAME}_tablespace_{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]','1m','0','0','0','4','','','','',NULL,NULL,'SELECT df.CON_NAME,\r\n       df.TABLESPACE_NAME                  AS TABLESPACE,\r\n       df.CONTENTS                         AS TYPE,\r\n       NVL(SUM(df.BYTES), 0)               AS FILE_BYTES,\r\n       NVL(SUM(df.MAX_BYTES), 0)           AS MAX_BYTES,\r\n       NVL(SUM(f.FREE), 0)                 AS FREE_BYTES,\r\n       NVL(SUM(df.BYTES) - SUM(f.FREE), 0) AS USED_BYTES,\r\n       ROUND(CASE SUM(df.MAX_BYTES)\r\n                 WHEN 0 THEN 0\r\n                 ELSE (SUM(df.BYTES) / SUM(df.MAX_BYTES) * 100)\r\n                 END, 2)                   AS USED_PCT_MAX,\r\n       ROUND(CASE SUM(df.BYTES)\r\n                 WHEN 0 THEN 0\r\n                 ELSE (NVL(SUM(df.BYTES) - SUM(f.FREE), 0)) / SUM(df.BYTES) * 100\r\n                 END, 2)                   AS USED_FILE_PCT,\r\n       ROUND(CASE SUM(df.MAX_BYTES)\r\n                 WHEN 0 THEN 0\r\n                 ELSE NVL(SUM(df.BYTES) - SUM(f.FREE), 0) / SUM(df.MAX_BYTES) * 100\r\n                 END, 2)                   AS USED_FROM_MAX_PCT,\r\n       CASE df.STATUS\r\n           WHEN \'ONLINE\' THEN 1\r\n           WHEN \'OFFLINE\' THEN 2\r\n           WHEN \'READ ONLY\' THEN 3\r\n           ELSE 0\r\n           END                             AS STATUS\r\nFROM (SELECT ct.CON$NAME                              AS CON_NAME,\r\n             cdf.FILE_ID,\r\n             ct.CONTENTS,\r\n             ct.STATUS,\r\n             cdf.FILE_NAME,\r\n             cdf.TABLESPACE_NAME,\r\n             TRUNC(cdf.BYTES)                         AS BYTES,\r\n             TRUNC(GREATEST(cdf.BYTES, cdf.MAXBYTES)) AS MAX_BYTES\r\n      FROM CDB_DATA_FILES cdf,\r\n           CDB_TABLESPACES ct\r\n      WHERE cdf.TABLESPACE_NAME = ct.TABLESPACE_NAME\r\n        AND cdf.CON_ID = ct.CON_ID\r\n        AND ((ct.CON$NAME = \'{#CON_NAME}\') or (ct.CON$NAME is null and ct.CON_ID = 0))\r\n        AND cdf.TABLESPACE_NAME = \'{#TABLESPACE}\'\r\n        AND ct.CONTENTS = \'{#CONTENTS}\') df,\r\n     (SELECT TRUNC(SUM(BYTES)) AS FREE,\r\n             FILE_ID\r\n      FROM CDB_FREE_SPACE\r\n      GROUP BY FILE_ID) f\r\nWHERE df.FILE_ID = f.FILE_ID (+)\r\nGROUP BY df.CON_NAME,\r\n         df.TABLESPACE_NAME,\r\n         df.CONTENTS,\r\n         df.STATUS\r\nUNION ALL\r\nSELECT Y.CON_NAME,\r\n       Y.NAME                                   AS TABLESPACE,\r\n       Y.CONTENTS                               AS TYPE,\r\n       NVL(SUM(Y.BYTES), 0)                     AS FILE_BYTES,\r\n       NVL(SUM(Y.MAX_BYTES), 0)                 AS MAX_BYTES,\r\n       NVL(MAX(NVL(Y.FREE_BYTES, 0)), 0)        AS FREE_BYTES,\r\n       NVL(SUM(Y.BYTES) - MAX(Y.FREE_BYTES), 0) AS USED_BYTES,\r\n       ROUND(CASE SUM(Y.MAX_BYTES)\r\n                 WHEN 0 THEN 0\r\n                 ELSE (SUM(Y.BYTES) / SUM(Y.MAX_BYTES) * 100)\r\n                 END, 2)                                    AS USED_PCT_MAX,\r\n       ROUND(CASE SUM(Y.BYTES)\r\n                 WHEN 0 THEN 0\r\n                 ELSE (NVL(SUM(Y.BYTES) - MAX(Y.FREE_BYTES), 0)) / SUM(Y.BYTES) * 100\r\n                 END, 2)                                    AS USED_FILE_PCT,\r\n       ROUND(CASE SUM(Y.MAX_BYTES)\r\n                 WHEN 0 THEN 0\r\n                 ELSE (NVL(SUM(Y.BYTES) - MAX(Y.FREE_BYTES), 0)) / SUM(Y.MAX_BYTES) * 100\r\n                 END, 2)                                    AS USED_FROM_MAX_PCT,\r\n       CASE Y.STATUS\r\n           WHEN \'ONLINE\' THEN 1\r\n           WHEN \'OFFLINE\' THEN 2\r\n           WHEN \'READ ONLY\' THEN 3\r\n           ELSE 0\r\n           END                                  AS STATUS\r\nFROM (SELECT ct.CON$NAME                  AS CON_NAME,\r\n             ctf.TABLESPACE_NAME          AS NAME,\r\n             ct.CONTENTS,\r\n             ctf.STATUS                   AS STATUS,\r\n             ctf.BYTES                    AS BYTES,\r\n             (SELECT ((f.TOTAL_BLOCKS - s.TOT_USED_BLOCKS) * vp.VALUE)\r\n              FROM (SELECT CON_ID,\r\n                           TABLESPACE_NAME,\r\n                           SUM(USED_BLOCKS) TOT_USED_BLOCKS\r\n                    FROM V$SORT_SEGMENT\r\n                    WHERE TABLESPACE_NAME != \'DUMMY\'\r\n                    GROUP BY CON_ID,\r\n                             TABLESPACE_NAME) s,\r\n                   (SELECT CON_ID,\r\n                           TABLESPACE_NAME,\r\n                           SUM(BLOCKS) TOTAL_BLOCKS\r\n                    FROM CDB_TEMP_FILES\r\n                    WHERE TABLESPACE_NAME != \'DUMMY\'\r\n                    GROUP BY CON_ID,\r\n                             TABLESPACE_NAME) f,\r\n                   (SELECT VALUE\r\n                    FROM V$PARAMETER\r\n                    WHERE NAME = \'db_block_size\') vp\r\n              WHERE f.TABLESPACE_NAME = s.TABLESPACE_NAME\r\n                AND f.TABLESPACE_NAME = ctf.TABLESPACE_NAME\r\n                AND f.CON_ID = s.CON_ID\r\n                AND f.CON_ID = ct.CON_ID) AS FREE_BYTES,\r\n             CASE\r\n                 WHEN ctf.MAXBYTES = 0 THEN ctf.BYTES\r\n                 ELSE ctf.MAXBYTES\r\n                 END                      AS MAX_BYTES\r\n      FROM CDB_TEMP_FILES ctf,\r\n           CDB_TABLESPACES ct\r\n      WHERE ctf.TABLESPACE_NAME = ct.TABLESPACE_NAME\r\n        AND ctf.CON_ID = ct.CON_ID\r\n        AND ((ct.CON$NAME = \'{#CON_NAME}\') or (ct.CON$NAME is null and ct.CON_ID = 0))\r\n        AND ctf.TABLESPACE_NAME = \'{#TABLESPACE}\'\r\n        AND ct.CONTENTS = \'{#CONTENTS}\') Y\r\nGROUP BY Y.CON_NAME,\r\n         Y.NAME,\r\n         Y.CONTENTS,\r\n         Y.STATUS;','','0','{$ORACLE.USER}','{$ORACLE.PASSWORD}','','','2',NULL,'Gets the statistics of the tablespace.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','972be2e777e44c539d0ddd7918b79e88','0','2','0'),
('44634','0','','10081','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c86dd0a8dbba468696cc09a9f9575769','0','2','0'),
('44635','7','','10351','Operating system','system.sw.os','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','5','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5159e7263d7a42e499380b70e9d6490a','0','2','0'),
('44642','0','','10560','Get process summary','proc.get[,,,summary]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The summary of data metrics for all processes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','803390429cf949d3b8439dd5dd71c706','0','2','0'),
('44653','0','','10561','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f46c6142cf434df1b6abe9334bf6c84c','0','2','0'),
('44654','0','','10561','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'1077','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37a952edc12f47d6ac6f3ca04eb41326','0','2','0'),
('44655','0','','10561','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3a6af03a083b4366bd1d4c6ccf06ca88','0','2','0'),
('44656','5','','10561','Zabbix agent availability','zabbix[host,agent,available]','1m','31d','365d','0','3','','','','',NULL,'1076','','','0','','','','','0',NULL,'Used for monitoring the availability status of the agent.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','49708b126e3844b898d2625f77c0030c','0','2','0'),
('44657','7','','10562','Host name of Zabbix agent running','agent.hostname','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca27c17d8ca34643a7db8b99d2cc3025','0','2','0'),
('44658','7','','10562','Zabbix agent ping','agent.ping','1m','31d','365d','0','3','','','','',NULL,'1079','','','0','','','','','0',NULL,'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0f86ec6cde2249f7946c678f9fd2665a','0','2','0'),
('44659','7','','10562','Version of Zabbix agent running','agent.version','1h','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','41fb0f76fa1d464f8ab67f744fc29e8b','0','2','0'),
('44660','5','','10562','Active agent availability','zabbix[host,active_agent,available]','1m','31d','365d','0','3','','','','',NULL,'1078','','','0','','','','','0',NULL,'Availability of active checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - unknown\r\n1 - available\r\n2 - not available','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0fd83c56dce244738607cd6585a6acb3','0','2','0'),
('44661','3','','10563','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1080','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0db3c804c6174c018071e15cbc8c56ae','0','2','0'),
('44662','3','','10563','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d306c51188e496ba19b75b99e28cc7b','0','2','0'),
('44663','3','','10563','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ad39c8c6ede46e6953aa6f9466eaf69','0','2','0'),
('44664','17','','10563','SNMP traps (fallback)','snmptrap.fallback','0','31d','0','0','2','','','','hh:mm:sszyyyy/MM/dd',NULL,NULL,'','','0','','','','','0',NULL,'The item is used to collect all SNMP traps unmatched by other snmptrap items','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2cda26906f254e13985cecdbb7901d1a','0','2','0'),
('44665','20','1.3.6.1.2.1.1.4.0','10563','System contact details','system.contact[sysContact.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe textual identification of the contact person for this managed node, together with information on how to contact this person.  If no contact information is known, the value is the zero-length string.','23','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','62da59c7aae54df7976f327119fe7cc2','0','2','0'),
('44666','20','1.3.6.1.2.1.1.1.0','10563','System description','system.descr[sysDescr.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nA textual description of the entity. This value should\r\ninclude the full name and version identification of the system\'s hardware type, software operating-system, and\r\nnetworking software.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29a3e5277de94386a5985fcf38a09364','0','2','0'),
('44667','20','1.3.6.1.2.1.25.1.1.0','10563','Uptime (hardware)','system.hw.uptime[hrSystemUptime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nThe amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b12afb0277494024b1638ce620c4f2d4','0','2','0'),
('44668','20','1.3.6.1.2.1.1.6.0','10563','System location','system.location[sysLocation.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nPhysical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.','24','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02b453f44c014f2bb1054e801058b381','0','2','0'),
('44669','20','1.3.6.1.2.1.1.5.0','10563','System name','system.name','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nAn administratively-assigned name for this managed node.By convention, this is the node\'s fully-qualified domain name.  If the name is unknown, the value is the zero-length string.','3','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3996a3a8d927473aa07c47e63a09b865','0','2','0'),
('44670','20','1.3.6.1.2.1.1.3.0','10563','Uptime (network)','system.net.uptime[sysUpTime.0]','30s','31d','0','0','3','','uptime','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nTime (in hundredths of a second) since the network management portion of the system was last re-initialized.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','000b97abddcd44bfb57e0eeb1b77f69e','0','2','0'),
('44671','20','1.3.6.1.2.1.1.2.0','10563','System object ID','system.objectid[sysObjectID.0]','15m','31d','0','0','1','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: SNMPv2-MIB\r\nThe vendor\'s authoritative identification of the network management subsystem contained in the entity.  This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what kind of box\' is being managed.  For example, if vendor`Flintstones, Inc.\' was assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router\'.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9dbcc5a1cd7240c896e2ea718f9ccb35','0','2','0'),
('44672','5','','10563','SNMP agent availability','zabbix[host,snmp,available]','1m','31d','365d','0','3','','','','',NULL,'1081','','','0','','','','','0',NULL,'Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.\r\nPossible values:\r\n0 - not available\r\n1 - available\r\n2 - unknown','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3e8c2d440441416b9ccec7dd90e21503','0','2','0'),
('44673','3','','10564','ICMP ping','icmpping','1m','31d','365d','0','3','','','','',NULL,'1082','','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','db5a94f6cea14deba957202b2f014469','0','2','0'),
('44674','3','','10564','ICMP loss','icmppingloss','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','04b21adaf422473a88df2c52786474ed','0','2','0'),
('44675','3','','10564','ICMP response time','icmppingsec','1m','31d','365d','0','0','','s','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a79e33e5fd264725b934f603fa071555','0','2','0'),
('44676','0','','10565','Disk discovery','smart.disk.discovery','1h','90d','0','0','4','','','','',NULL,NULL,'','','0','','','','','1',NULL,'Discovery SMART disks.','0','7d','1','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4575af2717ec4bf78645edb84a966c84','0','2','0'),
('44677','0','','10565','[{#NAME}]: Get disk attributes','smart.disk.get[{#PATH},"{#RAIDTYPE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','2',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','805e1d6f91e741ac93e87bd7d62860d5','0','2','0'),
('44697','7','','10566','Disk discovery','smart.disk.discovery','1h','90d','0','0','4','','','','',NULL,NULL,'','','0','','','','','1',NULL,'Discovery SMART disks.','0','7d','1','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a56a348d4a446938beae1eae5ec8993','0','2','0'),
('44698','7','','10566','[{#NAME}]: Get disk attributes','smart.disk.get[{#PATH},"{#RAIDTYPE}"]','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','2',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b26489a8ba12495dbb9687ef52ab1396','0','2','0'),
('44785','5','','10047','Connector queue','zabbix[connector_queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The count of values enqueued in the connector queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1a185ce77d4e4dd49be5b9ded51c1460','0','2','0'),
('44786','5','','10047','Utilization of connector manager internal processes, in %','zabbix[process,connector manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the connector manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2fcfd911ae8647149bad91c883abf41d','0','2','0'),
('44787','5','','10047','Utilization of connector worker internal processes, in %','zabbix[process,connector worker,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the connector worker processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c8c3b3045384a39af8baa9e40f2b487','0','2','0'),
('44795','21','','10531','Get storage accounts','azure.get.storage.acc','10m','0','0','0','4','','','','',NULL,NULL,'var Azure = {\r\n	params: {},\r\n	token: \'\',\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		Azure.params = params;\r\n	},\r\n\r\n	login: function () {\r\n		var response, login = new HttpRequest();\r\n		if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n			login.setProxy(Azure.params.proxy);\r\n		}\r\n		login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n		response = login.post(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(Azure.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(Azure.params.app_id) + \'&client_secret=\' + encodeURIComponent(Azure.params.password)\r\n		);\r\n\r\n		if (login.getStatus() !== 200) {\r\n			throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			response = JSON.parse(response);\r\n			if (!response.hasOwnProperty(\'access_token\')) {\r\n				throw null;\r\n			}\r\n		}\r\n		catch (error) {\r\n			throw \'Authentication response does not contain access token.\';\r\n		}\r\n\r\n		Azure.token = response[\'access_token\'];\r\n	},\r\n\r\n	request: function (url) {\r\n		var response, request = new HttpRequest();\r\n		if (typeof Azure.params.proxy !== \'undefined\' && Azure.params.proxy !== \'\') {\r\n			request.setProxy(Azure.params.proxy);\r\n		}\r\n		if (!Azure.token) {\r\n			throw \'Request does not contain access token.\';\r\n		}\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Authorization: Bearer \' + Azure.token);\r\n		response = request.get(url);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	},\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	getMetricsData: function () {\r\n		var metric = Azure.request(\'https://management.azure.com/subscriptions/\' + encodeURIComponent(Azure.params.subscription_id) + \'/providers/Microsoft.Storage/storageAccounts?api-version=2021-05-01\'),\r\n			data = [];\r\n\r\n		if (!metric.hasOwnProperty(\'value\')) {\r\n			throw \'Failed getting required field. Check debug log for more information.\';\r\n		}\r\n		for (k in metric.value) {\r\n			id = Azure.getField(metric.value[k], \'id\');\r\n			json = {};\r\n			input = id.split(\'/\');\r\n			for (var i = 1; i < input.length; i += 2) {\r\n				json[input[i]] = input[i + 1];\r\n			}\r\n			data.push({\r\n				\'name\': Azure.getField(metric.value[k], \'name\'),\r\n				\'id\': id,\r\n				\'resourceGroup\': Azure.getField(json, \'resourceGroups\'),\r\n				\'location\': Azure.getField(metric.value[k], \'location\'),\r\n				\'token\': Azure.token\r\n			});\r\n		}\r\n\r\n		return data;\r\n	}\r\n};\r\n\r\ntry {\r\n	Azure.setParams(JSON.parse(value));\r\n	Azure.login();\r\n	return JSON.stringify(Azure.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ Azure ] ERROR: \' + error);\r\n	return JSON.stringify({\'error\': error});\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','91b2290d65b949ad9ea801763c35cf40','0','2','0'),
('44796','21','','10568','Get data','azure.cosmosdb.data.get','1m','0','0','0','4','','','','',NULL,NULL,'var AzureCosmosDB = {\r\n	params: {},\r\n	token: null,\r\n\r\n	setParams: function (params) {\r\n		[\'app_id\', \'password\', \'tenant_id\', \'subscription_id\', \'resource_id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureCosmosDB.params = params;\r\n	},\r\n\r\n	login: function () {\r\n		var response, login = new HttpRequest();\r\n		if (typeof AzureCosmosDB.params.proxy !== \'undefined\' && AzureCosmosDB.params.proxy !== \'\') {\r\n			login.setProxy(AzureCosmosDB.params.proxy);\r\n		}\r\n		login.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n		response = login.post(\r\n			\'https://login.microsoftonline.com/\' + encodeURIComponent(AzureCosmosDB.params.tenant_id) + \'/oauth2/token\',\r\n			\'grant_type=client_credentials&resource=\' + encodeURIComponent(\'https://management.azure.com/\') + \'&client_id=\' + encodeURIComponent(AzureCosmosDB.params.app_id) + \'&client_secret=\' + encodeURIComponent(AzureCosmosDB.params.password)\r\n		);\r\n\r\n		if (login.getStatus() !== 200) {\r\n			throw \'Login failed with status code \' + login.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse login session response.\';\r\n		}\r\n		if (!response.hasOwnProperty(\'access_token\')) {\r\n			throw \'Authentication response does not contain access token.\';\r\n		}\r\n		AzureCosmosDB.token = response[\'access_token\'];\r\n	},\r\n\r\n	request: function (url) {\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureCosmosDB.params.proxy !== \'undefined\' && AzureCosmosDB.params.proxy !== \'\') {\r\n			request.setProxy(AzureCosmosDB.params.proxy);\r\n		}\r\n		if (!AzureCosmosDB.token) {\r\n			throw \'Request does not contain access token.\';\r\n		}\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Authorization: Bearer \' + AzureCosmosDB.token);\r\n		Zabbix.log(4, \'[ AzureCosmosDB ] request url: \' + url);\r\n		response = request.get(url);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	},\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	getMetricsData: function () {\r\n		var data = {};\r\n		start_date = new Date((new Date().getTime()) - 600000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date(new Date().getTime()).toISOString().replace(/\\.\\d+/, \'\');\r\n		endpoints = {\r\n			\'availability\': \'/providers/Microsoft.Insights/metrics?metricnames=ServiceAvailability&api-version=2021-05-01&interval=PT1H&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date),\r\n			\'requests\': \'/providers/Microsoft.Insights/metrics?metricnames=DataUsage,IndexUsage,DocumentQuota,AvailableStorage,DocumentCount,NormalizedRUConsumption,PhysicalPartitionThroughputInfo,PhysicalPartitionSizeInfo,AutoscaleMaxThroughput,ProvisionedThroughput,TotalRequests,TotalRequestUnits,MetadataRequests,MongoRequests,MongoRequestCharge,ServerSideLatency,ServerSideLatencyGateway,ServerSideLatencyDirect,ReplicationLatency&api-version=2021-05-01&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date),\r\n		};\r\n\r\n		Object.keys(endpoints).forEach(function (field) {\r\n			data[field] = {};\r\n			try {\r\n				metrics = AzureCosmosDB.request(\'https://management.azure.com\' + AzureCosmosDB.params.resource_id + endpoints[field]);\r\n				if (!metrics.hasOwnProperty(\'value\')) {\r\n					throw \'Failed getting required field. Check debug log for more information.\';\r\n				}\r\n\r\n				for (k in metrics.value) {\r\n					key = AzureCosmosDB.getField(metrics.value[k], \'name.value\')\r\n					if (metrics.value[k].timeseries.length === 0) {\r\n						metrics.value[k].timeseries.push({ \'data\': [\'nodata\'] })\r\n					}\r\n					data[field][key] = AzureCosmosDB.getField(metrics.value[k], \'timeseries.0.data.0\');\r\n				}\r\n			}\r\n			catch (error) {\r\n				data.error = error.toString();\r\n			}\r\n		});\r\n		return data\r\n	}\r\n\r\n};\r\n\r\ntry {\r\n	AzureCosmosDB.setParams(JSON.parse(value));\r\n	AzureCosmosDB.login();\r\n	return JSON.stringify(AzureCosmosDB.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AzureCosmosDB ] ERROR: \' + error);\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'The result of API requests is expressed in the JSON.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','647faea1597c4da6a3cd78694be8e77e','0','2','0'),
('44820','21','','10531','Storage account [{#NAME}]: Get data','azure.get.storage.acc[{#NAME}]','1m','0','0','0','4','','','','',NULL,NULL,'var AzureStorage = {\r\n	params: {},\r\n\r\n	setParams: function (params) {\r\n		[\'token\', \'id\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: \' + field + \'.\';\r\n			}\r\n		});\r\n\r\n		AzureStorage.params = params;\r\n	},\r\n\r\n	request: function (url) {\r\n		var response, request = new HttpRequest();\r\n		if (typeof AzureStorage.params.proxy !== \'undefined\' && AzureStorage.params.proxy !== \'\') {\r\n			request.setProxy(AzureStorage.params.proxy);\r\n		}\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Authorization: Bearer \' + AzureStorage.params.token);\r\n		Zabbix.log(4, \'[ Azure ] Sending request: \' + url);\r\n		response = request.get(url);\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n		try {\r\n			return JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from API.\';\r\n		}\r\n	},\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path + \' input data: \' + JSON.stringify(data);\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	getMetricsData: function () {\r\n		var data = {};\r\n		start_date = new Date((new Date().getTime()) - 4200000).toISOString().replace(/\\.\\d+/, \'\');\r\n		end_date = new Date((new Date().getTime()) - 600000).toISOString().replace(/\\.\\d+/, \'\');\r\n		endpoints = {\r\n			\'tableServices\': \'/tableServices/default/providers/Microsoft.Insights/metrics?metricnames=TableCapacity,TableCount,TableEntityCount,Transactions,Ingress,Egress,SuccessServerLatency,SuccessE2ELatency,Availability&api-version=2021-05-01&interval=PT1H&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date),\r\n			\'blobServices\': \'/blobServices/default/providers/Microsoft.Insights/metrics?metricnames=BlobCapacity,BlobCount,ContainerCount,IndexCapacity,Transactions,Ingress,Egress,SuccessServerLatency,SuccessE2ELatency,Availability&api-version=2021-05-01&interval=PT1H&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date),\r\n			\'fileServices\': \'/fileServices/default/providers/Microsoft.Insights/metrics?metricnames=FileCapacity,FileCount,FileShareCount,FileShareSnapshotCount,FileShareSnapshotSize,FileShareCapacityQuota,Transactions,Ingress,Egress,SuccessServerLatency,SuccessE2ELatency,Availability&api-version=2021-05-01&interval=PT1H&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date),\r\n			\'storageAccount\': \'/providers/Microsoft.Insights/metrics?metricnames=UsedCapacity,Transactions,Ingress,Egress,SuccessServerLatency,SuccessE2ELatency,Availability&api-version=2021-05-01&interval=PT1H&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date),\r\n			\'queueServices\': \'/queueServices/default/providers/Microsoft.Insights/metrics?metricnames=QueueCapacity,QueueCount,QueueMessageCount,Transactions,Ingress,Egress,SuccessServerLatency,SuccessE2ELatency,Availability&api-version=2021-05-01&interval=PT1H&timespan=\' + encodeURIComponent(start_date) + \'/\' + encodeURIComponent(end_date)\r\n		};\r\n\r\n		Object.keys(endpoints).forEach(function (field) {\r\n			data[field] = {};\r\n			metrics = AzureStorage.request(\'https://management.azure.com\' + AzureStorage.params.id + endpoints[field]);\r\n\r\n			if (!metrics.hasOwnProperty(\'value\')) {\r\n				throw \'Failed getting required field. Check debug log for more information.\';\r\n			}\r\n\r\n			for (k in metrics.value) {\r\n				key = AzureStorage.getField(metrics.value[k], \'name.value\')\r\n				if (metrics.value[k].timeseries.length === 0) {\r\n					metrics.value[k].timeseries.push({ \'data\': [\'nodata\'] })\r\n				}\r\n				data[field][key] = AzureStorage.getField(metrics.value[k], \'timeseries.0.data.0\');\r\n			}\r\n		});\r\n		return data\r\n	}\r\n\r\n};\r\n\r\ntry {\r\n	AzureStorage.setParams(JSON.parse(value));\r\n	return JSON.stringify(AzureStorage.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ Azure ] ERROR: \' + error);\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','2',NULL,'The HTTP API endpoint that returns storage metrics with the name `[{#NAME}]`.','0','30d','0','',NULL,'{$AZURE.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','3361508a601748f5aca339f952430889','0','2','0'),
('44866','21','','10570','Authorization','gcp.authorization','{$GCP.AUTH.FREQUENCY}','0','0','0','4','','','','',NULL,NULL,'var auth_url = \'https://oauth2.googleapis.com/token\',\r\n	issued = Math.floor(new Date().getTime() / 1000),\r\n	expires = issued + 3600,\r\n	endpoint = \'https://www.googleapis.com/auth/\',\r\n	scopes = [\'cloud-platform.read-only\', \'monitoring\', \'compute.readonly\', \'sqlservice.admin\'],\r\n	scope = scopes.map(function (path) { return endpoint + path; }).join(\' \');\r\n\r\nfunction base64url(source) {\r\n	encodedSource = btoa(source);\r\n	encodedSource = encodedSource.replace(/=+$/, \'\');\r\n	encodedSource = encodedSource.replace(/\\+/g, \'-\');\r\n	encodedSource = encodedSource.replace(/\\//g, \'_\');\r\n\r\n	return encodedSource;\r\n}\r\n\r\nfunction fromHex(hex) {\r\n	var utf8array = [];\r\n\r\n	if (hex.length % 2)\r\n		throw \'Invalid length of a hex string!\';\r\n	for (var i = 0; i < hex.length; i += 2) {\r\n		utf8array.push(parseInt(hex.substr(i, 2), 16));\r\n	}\r\n	return new Uint8Array(utf8array);\r\n}\r\n\r\nfunction encodeJWT(headers, payload, secret) {\r\n	unsignedToken = base64url(JSON.stringify(headers)) + \'.\' + base64url(JSON.stringify(payload));\r\n	jwt = unsignedToken + \'.\' + base64url(fromHex(sign(\'sha256\', secret, unsignedToken)));\r\n	return jwt;\r\n}\r\n\r\nfunction exchangeJwtForAccessToken(signed_jwt) {\r\n\r\n	var request = new HttpRequest(),\r\n		params = {\r\n			grant_type: \'urn:ietf:params:oauth:grant-type:jwt-bearer\',\r\n			assertion: signed_jwt\r\n		}\r\n	if (typeof script_params.proxy !== \'undefined\' && script_params.proxy !== \'\') {\r\n		request.setProxy(script_params.proxy);\r\n	};\r\n	var response = request.post(auth_url, JSON.stringify(params));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + auth_url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n\r\n	if (typeof response.access_token !== \'undefined\') {\r\n		return response.access_token;\r\n	}\r\n	else {\r\n		throw \'No access token in the JWT exchange request.\';\r\n	}\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'pkey_id\', \'private_key\', \'email\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	return params;\r\n}\r\n\r\nvar script_params = checkParams(JSON.parse(value)),\r\n	headers = {\r\n		alg: \'RS256\',\r\n		kid: script_params.pkey_id,\r\n		typ: \'JWT\'\r\n	},\r\n	payload = {\r\n		iss: script_params.email,\r\n		sub: script_params.email,\r\n		aud: auth_url,\r\n		iat: issued,\r\n		exp: expires,\r\n		scope: scope\r\n	};\r\n\r\ntry {\r\n	jwt = encodeJWT(headers, payload, script_params.private_key);\r\n	token = exchangeJwtForAccessToken(jwt);\r\n	return token;\r\n}\r\ncatch (err) {\r\n	return JSON.stringify({ error: err });\r\n}','','0','','','','','0',NULL,'Google Cloud Platform REST authorization with service account authentication parameters and temporary-generated RSA-based JWT-token usage.\r\nThe necessary scopes are pre-defined.\r\nReturns a signed authorization token with 1 hour lifetime; it is required only once, and is used for all the dependent script items.\r\nCheck the template documentation for the details.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','5cc3faa82f404b38b513958f323f3d7d','0','2','0'),
('44867','19','','10571','Instance state','gcp.cloudsql.mssql.inst.state','1m','31d','365d','0','3','','','','',NULL,'1087','','','0','','','','','0',NULL,'GCP Cloud SQL MSSQL Current instance state.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/state | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','556c96cf1bf342f99c69dc47813f221e','0','2','0'),
('44868','21','','10571','Resources get','gcp.cloudsql.mssql.resources.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/sqlserver/transactions/\',\r\n	arr = [],\r\n	base_paths = [\r\n		\'deadlock_count\',\r\n		\'lock_wait_count\',\r\n		\'lock_wait_time\'\r\n	];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	j_filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'" + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	metrics = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	time_series = getField(raw, \'timeSeriesData\');\r\n\r\nfor (t in time_series) {\r\n	data = {\r\n		resource: getField(time_series[t], \'labelValues.3.stringValue\'),\r\n		metrics: {}\r\n	};\r\n\r\n	for (i in metrics) {\r\n		re = /(^t_\\d+\\.value(_|\\.))/g;\r\n		data[\'metrics\'][getField(metrics[i], \'key\').replace(re, \'\')] = getField(time_series[t], \'pointData.0.values.\' + i + \'.int64Value\');\r\n	}\r\n	arr.push(data);\r\n}\r\nreturn JSON.stringify(arr);','','0','','','','','0',NULL,'MSSQL resources data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','7ee117702e1f40faadd901faa9d333ff','0','2','0'),
('44869','21','','10571','Metrics get','gcp.cloudsql.mssql.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/\',\r\n	mssql_path = \'cloudsql.googleapis.com/database/sqlserver/\',\r\n	obj = {},\r\n	base_paths = [\r\n		\'cpu/reserved_cores\',\r\n		\'cpu/usage_time\',\r\n		\'cpu/utilization\',\r\n		\'disk/read_ops_count\',\r\n		\'disk/write_ops_count\',\r\n		\'memory/quota\',\r\n		\'memory/total_usage\',\r\n		\'memory/usage\',\r\n		\'network/connections\',\r\n		\'network/received_bytes_count\',\r\n		\'network/sent_bytes_count | map ignore [destination]\'\r\n	].map(function (path) { return base_path + path; }),\r\n	mssql_paths = [\r\n		\'connections/connection_reset_count\',\r\n		\'connections/login_attempt_count\',\r\n		\'connections/logout_count\',\r\n		\'connections/processes_blocked\',\r\n		\'memory/buffer_cache_hit_ratio\',\r\n		\'memory/checkpoint_page_count\',\r\n		\'memory/lazy_write_count\',\r\n		\'memory/memory_grants_pending\',\r\n		\'memory/page_life_expectancy\',\r\n		\'memory/free_list_stall_count\',\r\n		\'transactions/batch_request_count\',\r\n		\'transactions/forwarded_record_count\',\r\n		\'transactions/full_scan_count\',\r\n		\'transactions/page_split_count\',\r\n		\'transactions/probe_scan_count\',\r\n		\'transactions/sql_compilation_count\',\r\n		\'transactions/sql_recompilation_count\'\r\n	].map(function (path) { return mssql_path + path; }).concat(\r\n		[\'disk/bytes_used\', \'disk/utilization\', \'disk/quota\'].map(function (path) { return base_path + path; })),\r\n	value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction getFieldBool(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			return false;\r\n		}\r\n		data = data[step];\r\n	}\r\n	return true;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\', \'audited\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	if (params.audited !== \'true\' && params.audited !== \'false\') {\r\n		throw \'Incorrect audit definition type. Valid definitions: true/false\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nfunction rawMap(raw, prefix) {\r\n	var keys = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n		values = getField(raw, \'timeSeriesData.0.pointData.0.values\'),\r\n		re = /(^t_\\d+\\.value\\.)/g;\r\n\r\n	for (i in keys) {\r\n		var key = getField(keys[i], \'key\').replace(re, \'\');\r\n\r\n		for (v in value_types) {\r\n			if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n				if (prefix) {\r\n					obj[prefix + key] = values[i][value_types[v]];\r\n				}\r\n				else {\r\n					obj[key] = values[i][value_types[v]];\r\n				}\r\n\r\n			}\r\n		}\r\n	}\r\n	return obj;\r\n}\r\n\r\nfunction singleMetrics(tsd) {\r\n	var result = {};\r\n\r\n	for (t in tsd) {\r\n		for (v in value_types) {\r\n			if (getFieldBool(tsd[t], \'pointData.0.values.0.\' + [value_types[v]])) {\r\n				result[\'mssql_\' + getField(tsd[t], \'labelValues.3.stringValue\').toLowerCase()] = tsd[t].pointData[0].values[0][value_types[v]];\r\n				break;\r\n			}\r\n		}\r\n	}\r\n	return result;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value));\r\n\r\nif (params.audited === \'true\') {\r\n	base_paths.push(mssql_path + \'audits_size\');\r\n};\r\n\r\nvar filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	queries = [\r\n		{ name: \'base_\', data: { query: \'{\' + base_paths.join(\';\') + \'}\' + j_filter } },\r\n		{ name: \'mssql_\', data: { query: \'{\' + mssql_paths.join(\';\') + \'}\' + j_filter } }\r\n	];\r\n\r\nfor (q in queries) {\r\n	raw = getHttpData(url, params.token, queries[q].data);\r\n	obj = Object.assign(obj, rawMap(raw, queries[q].name));\r\n}\r\n\r\nobj.base_ram_pused = Math.floor(getField(obj, \'base_usage\') / getField(obj, \'base_quota\') * 100);\r\n\r\nvar single_queries = [\r\n	{ query: mssql_path + \'memory/page_operation_count\' + filter }\r\n];\r\n\r\nif (params.audited === \'true\') {\r\n	single_queries.push({ query: mssql_path + \'audits_upload_count\' + filter });\r\n}\r\n\r\nfor (q in single_queries) {\r\n	raw = getHttpData(url, params.token, single_queries[q]);\r\n	Object.assign(obj, singleMetrics(getField(raw, \'timeSeriesData\')));\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'MSSQL metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','6de08b07cecc47a88bde22de5d1b4e5a','0','2','0'),
('44870','21','','10571','Schedulers get','gcp.cloudsql.mssql.schedulers.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/sqlserver/schedulers/\',\r\n	arr = [],\r\n	base_paths = [\'active_workers\', \'current_tasks\', \'current_workers\', \'pending_disk_io\', \'runnable_tasks\', \'work_queue\'];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	j_filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'" + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	metrics = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	time_series = getField(raw, \'timeSeriesData\');\r\n\r\nfor (t in time_series) {\r\n	data = {\r\n		scheduler: getField(time_series[t], \'labelValues.3.stringValue\'),\r\n		metrics: {}\r\n	};\r\n\r\n	for (i in metrics) {\r\n		re = /(^t_\\d+\\.value(_|\\.))/g;\r\n		data[\'metrics\'][getField(metrics[i], \'key\').replace(re, \'\')] = getField(time_series[t], \'pointData.0.values.\' + i + \'.int64Value\');\r\n	}\r\n	arr.push(data);\r\n}\r\nreturn JSON.stringify(arr);','','0','','','','','0',NULL,'MSSQL schedulers data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','3c14882329b94b8e88ca5d85e21bb7c8','0','2','0'),
('44871','21','','10571','Databases get','gcp.cloudsql.mssql.db.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/sqlserver/transactions/\',\r\n	arr = [],\r\n	base_paths = [\r\n		\'log_bytes_flushed_count\',\r\n		\'transaction_count\'\r\n	];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	j_filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'" + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	metrics = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	time_series = getField(raw, \'timeSeriesData\');\r\n\r\nfor (t in time_series) {\r\n	data = {\r\n		database: getField(time_series[t], \'labelValues.3.stringValue\'),\r\n		metrics: {}\r\n	};\r\n\r\n	for (i in metrics) {\r\n		re = /(^t_\\d+\\.value(_|\\.))/g;\r\n		data[\'metrics\'][getField(metrics[i], \'key\').replace(re, \'\')] = getField(time_series[t], \'pointData.0.values.\' + i + \'.int64Value\');\r\n	}\r\n	arr.push(data);\r\n}\r\nreturn JSON.stringify(arr);','','0','','','','','0',NULL,'MSSQL databases data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','ecdd1774ef744bcb93e8e4094e29772f','0','2','0'),
('44872','19','','10571','DB engine state','gcp.cloudsql.mssql.db.state','1m','31d','365d','0','3','','','','',NULL,'1086','','','0','','','','','0',NULL,'GCP Cloud SQL MSSQL DB Engine State.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/up | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','9806c645a10a4e1d8fbb39eb1d3ac993','0','2','0'),
('44873','21','','10572','Replica metrics get','gcp.cloudsql.mssql.repl.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/sqlserver/replication/\',\r\n	obj = {},\r\n	base_paths = [\r\n		\'bytes_sent_to_replica_count | map ignore [replica_name]\',\r\n		\'resent_message_count | map ignore [replica_name]\',\r\n		\'log_apply_pending_queue\',\r\n		\'log_bytes_received_count\',\r\n		\'recovery_queue\',\r\n		\'redone_bytes_count\'\r\n	];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	base_raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	keys = getField(base_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	values = getField(base_raw, \'timeSeriesData.0.pointData.0.values\'),\r\n	re = /(^t_\\d+\\.value\\.)/g;\r\n\r\nfor (i in keys) {\r\n	var value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n	for (v in value_types) {\r\n		if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n			obj[getField(keys[i], \'key\').replace(re, \'\')] = values[i][value_types[v]];\r\n		}\r\n	}\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'MSSQL replica metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','f0d4c711863f4ca9ad76b0099a66a86d','0','2','0'),
('44874','19','','10573','Instance state','gcp.cloudsql.mysql.inst.state','1m','31d','365d','0','3','','','','',NULL,'1089','','','0','','','','','0',NULL,'GCP Cloud SQL MySQL Current instance state.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/state | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','71559008ad444772b0b1212f715980ed','0','2','0'),
('44875','19','','10573','DB engine state','gcp.cloudsql.mysql.db.state','1m','31d','365d','0','3','','','','',NULL,'1088','','','0','','','','','0',NULL,'GCP Cloud SQL MySQL DB Engine State.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/up | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','948dac37023c4efcaf5f830ba5d4fafe','0','2','0'),
('44876','21','','10573','Metrics get','gcp.cloudsql.mysql.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/\',\r\n	mysql_path = \'cloudsql.googleapis.com/database/mysql/\',\r\n	obj = {},\r\n	base_paths = [\r\n		\'cpu/reserved_cores\',\r\n		\'cpu/usage_time\',\r\n		\'cpu/utilization\',\r\n		\'disk/read_ops_count\',\r\n		\'disk/write_ops_count\',\r\n		\'memory/quota\',\r\n		\'memory/total_usage\',\r\n		\'memory/usage\',\r\n		\'network/connections\',\r\n		\'network/received_bytes_count\',\r\n		\'network/sent_bytes_count  | map ignore [destination]\'\r\n	].map(function (path) { return base_path + path; }),\r\n	mysql_paths = [\r\n		\'innodb_buffer_pool_pages_dirty\',\r\n		\'innodb_buffer_pool_pages_free\',\r\n		\'innodb_buffer_pool_pages_total\',\r\n		\'innodb_data_fsyncs\',\r\n		\'innodb_os_log_fsyncs\',\r\n		\'innodb_pages_read\',\r\n		\'innodb_pages_written\',\r\n		\'queries\',\r\n		\'questions\',\r\n		\'received_bytes_count\',\r\n		\'sent_bytes_count\',\r\n		\'open_tables\',\r\n		\'open_table_definitions\'\r\n	].map(function (path) { return mysql_path + path; }).concat(\r\n		[\'disk/bytes_used\', \'disk/utilization\', \'disk/quota\'].map(function (path) { return base_path + path; }));\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nfunction rawMap(raw, prefix) {\r\n	var keys = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n		values = getField(raw, \'timeSeriesData.0.pointData.0.values\'),\r\n		re = /(^t_\\d+\\.value\\.)/g;\r\n\r\n	for (i in keys) {\r\n		var key = getField(keys[i], \'key\').replace(re, \'\'),\r\n			value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n		for (v in value_types) {\r\n			if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n				if (prefix) {\r\n					obj[prefix + key] = values[i][value_types[v]];\r\n				}\r\n				else {\r\n					obj[key] = values[i][value_types[v]];\r\n				}\r\n\r\n			}\r\n		}\r\n	}\r\n	return obj;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	j_filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'" + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	queries = [\r\n		{ name: \'base_\', data: { query: \'{\' + base_paths.join(\';\') + \'}\' + j_filter } },\r\n		{ name: \'mysql_\', data: { query: \'{\' + mysql_paths.join(\';\') + \'}\' + j_filter } }\r\n	];\r\n\r\nfor (q in queries) {\r\n	raw = getHttpData(url, params.token, queries[q].data);\r\n	obj = Object.assign(obj, rawMap(raw, queries[q].name));\r\n}\r\n\r\nobj.base_ram_pused = Math.floor(getField(obj, \'base_usage\') / getField(obj, \'base_quota\') * 100);\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'MySQL metrics in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','682484eaf1db4a239c69566a5cd492e2','0','2','0'),
('44877','21','','10574','Replica metrics get','gcp.cloudsql.mysql.repl.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/replication/\',\r\n	mysql_path = \'cloudsql.googleapis.com/database/mysql/replication/\',\r\n	raw_metrics,\r\n	obj = {},\r\n	base_paths = [\'network_lag\', \'replica_lag\'].map(function (path) { return base_path + path; }),\r\n	mysql_paths = [\r\n		\'last_io_errno\',\r\n		\'last_sql_errno\',\r\n		\'slave_io_running\',\r\n		\'slave_sql_running\'].map(function (path) { return mysql_path + path; }).concat(\r\n			[\'network_lag\', \'replica_lag\'].map(function (path) { return base_path + path; }));\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	metric_raw = getHttpData(url, params.token, { query: \'{\' + mysql_paths.join(\';\') + \'}\' + j_filter }),\r\n	metric_keys = getField(metric_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	metric_values = getField(metric_raw, \'timeSeriesData.0.pointData.0.values\'),\r\n	re = /(^t_\\d+\\.value\\.)/g;\r\n\r\nfor (i in metric_keys) {\r\n	var value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n	for (v in value_types) {\r\n		if (typeof metric_values[i][value_types[v]] !== \'undefined\') {\r\n			obj[getField(metric_keys[i], \'key\').replace(re, "")] = metric_values[i][value_types[v]];\r\n		}\r\n	}\r\n}\r\n\r\nvar state_raw = getHttpData(url, params.token, { query: base_path + \'state\' + filter }),\r\n	state_keys = getField(state_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	state_tsd = getField(state_raw, \'timeSeriesData\');\r\n\r\nfor (i in state_keys) {\r\n	var state_key = getField(state_keys[i], \'key\').replace(/value\\./g, \'\');\r\n\r\n	obj[state_key] = \'undefined\';\r\n	for (t in state_tsd) {\r\n		if (getField(state_tsd[t], \'pointData.0.values.\' + i + \'.boolValue\') == true) {\r\n			obj[state_key] = getField(state_tsd[t], \'labelValues.3.stringValue\');\r\n			break;\r\n		}\r\n	}\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'MySQL replication metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','470200d2cca348bb8a670a2be3a270e3','0','2','0'),
('44878','21','','10575','Metrics get','gcp.cloudsql.pgsql.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/\',\r\n	pgsql_path = \'cloudsql.googleapis.com/database/postgresql/\',\r\n	obj = {},\r\n	value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nfunction rawMap(raw, prefix) {\r\n	var keys = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n		values = getField(raw, \'timeSeriesData.0.pointData.0.values\'),\r\n		re = /(^t_\\d+\\.value(_|\\.)|_sum$)/g;\r\n\r\n	for (i in keys) {\r\n		var key = getField(keys[i], \'key\').replace(re, \'\');\r\n\r\n		for (v in value_types) {\r\n			if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n				if (prefix) {\r\n					obj[prefix + key] = values[i][value_types[v]];\r\n				} else {\r\n					obj[key] = values[i][value_types[v]];\r\n				}\r\n\r\n			}\r\n		}\r\n	}\r\n	return obj;\r\n}\r\n\r\nfunction singleMetrics(tsd) {\r\n	result = {};\r\n	for (t in tsd) {\r\n		for (v in value_types) {\r\n			if (typeof tsd[t].pointData[0].values[0][value_types[v]] !== \'undefined\') {\r\n				result[\'pgsql_\' + getField(tsd[t], \'labelValues.3.stringValue\').toLowerCase()] = tsd[t].pointData[0].values[0][value_types[v]];\r\n			}\r\n		}\r\n	}\r\n	return result;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	base_paths = [\r\n		\'cpu/reserved_cores\',\r\n		\'cpu/usage_time\',\r\n		\'cpu/utilization\',\r\n		\'disk/read_ops_count\',\r\n		\'disk/write_ops_count\',\r\n		\'memory/quota\',\r\n		\'memory/total_usage\',\r\n		\'memory/usage\',\r\n		\'network/received_bytes_count\',\r\n		\'network/sent_bytes_count | map ignore [destination]\'\r\n	].map(function (path) { return base_path + path; }),\r\n	pgsql_paths = [\r\n		\'transaction_id_utilization \' + filter,\r\n		\'temp_bytes_written_count\' + filter + \' | sum\',\r\n		\'temp_files_written_count\' + filter + \' | sum\',\r\n		\'num_backends\' + filter + \' | sum\'\r\n	].map(function (path) { return pgsql_path + path; }).concat(\r\n		[\'disk/bytes_used\', \'disk/utilization\', \'disk/quota\'].map(function (path) { return base_path + path; })),\r\n	queries = [\r\n		{ name: \'base_\', data: { query: \'{\' + base_paths.join(\';\') + \'}\' + j_filter } },\r\n		{ name: \'pgsql_\', data: { query: \'{\' + pgsql_paths.join(\';\') + \'}\' + \'| within \' + params.time_window + \'| join\' } }\r\n	];\r\n\r\nfor (q in queries) {\r\n	raw = getHttpData(url, params.token, queries[q].data);\r\n	obj = Object.assign(obj, rawMap(raw, queries[q].name));\r\n}\r\n\r\nobj.base_ram_pused = Math.floor((getField(obj, \'base_usage\') / getField(obj, \'base_quota\')) * 100);\r\n\r\nvar single_paths = [\'transaction_id_count\', \'vacuum/oldest_transaction_age\'],\r\n	single_queries = single_paths.map(function (path) { return { query: pgsql_path + path + filter }; });\r\n\r\nfor (q in single_queries) {\r\n	raw = getHttpData(url, params.token, single_queries[q]);\r\n	Object.assign(obj, singleMetrics(getField(raw, \'timeSeriesData\')));\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'PostgreSQL metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','9bf09a42ddd64f7eabf6bbc011eda689','0','2','0'),
('44879','19','','10575','DB engine state','gcp.cloudsql.pgsql.db.state','1m','31d','365d','0','3','','','','',NULL,'1092','','','0','','','','','0',NULL,'GCP Cloud SQL PostgreSQL DB Engine State.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/up | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','27ad9640bf734dd49548c19241cc4838','0','2','0'),
('44880','19','','10575','Instance state','gcp.cloudsql.pgsql.inst.state','1m','31d','365d','0','3','','','','',NULL,'1093','','','0','','','','','0',NULL,'GCP Cloud SQL PostgreSQL Current instance state.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://monitoring.googleapis.com/v3/projects/{$GCP.PROJECT.ID}/timeSeries:query','','{"query":"cloudsql.googleapis.com/database/state | within 5m | filter database_id = \'{$GCP.PROJECT.ID}:{HOST.NAME}\'"}','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','1','0','0','0','0','0','88fd41960538460ebfd2ed9194677cd1','0','2','0'),
('44881','21','','10576','Replica metrics get','gcp.cloudsql.pgsql.repl.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/replication/\',\r\n	pgsql_path = \'cloudsql.googleapis.com/database/postgresql/replication/\',\r\n	obj = {},\r\n	base_paths = [\'network_lag\', \'replica_lag\', \'log_archive_failure_count\', \'log_archive_success_count\'];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	filter = \' | within \' + params.time_window + " | filter database_id = \'" + params.database_id + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	metric_raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	metric_keys = getField(metric_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	metric_values = getField(metric_raw, \'timeSeriesData.0.pointData.0.values\'),\r\n	re = /(^t_\\d+\\.value\\.)/g;\r\n\r\nfor (i in metric_keys) {\r\n	var value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n	for (v in value_types) {\r\n		if (typeof metric_values[i][value_types[v]] !== \'undefined\') {\r\n			obj[getField(metric_keys[i], \'key\').replace(re, \'\')] = metric_values[i][value_types[v]];\r\n		}\r\n	}\r\n}\r\n\r\nvar state_raw = getHttpData(url, params.token, { query: base_path + \'state\' + filter }),\r\n	state_keys = getField(state_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	state_tsd = getField(state_raw, \'timeSeriesData\');\r\n\r\nfor (i in state_keys) {\r\n	var state_key = getField(state_keys[i], \'key\').replace(/value\\./g, \'\');\r\n\r\n	obj[state_key] = \'undefined\';\r\n	for (t in state_tsd) {\r\n		if (getField(state_tsd[t], \'pointData.0.values.\' + i + \'.boolValue\') == true) {\r\n			obj[state_key] = getField(state_tsd[t], \'labelValues.3.stringValue\');\r\n			break;\r\n		}\r\n	}\r\n}\r\n\r\nvar lag_raw = getHttpData(url, params.token, { query: pgsql_path + \'replica_byte_lag\' + \'| within \' + params.time_window + " | filter replica_name = \'" + params.database_id + "\'" }),\r\n	lag_tsd = getField(lag_raw, \'timeSeriesData\');\r\n\r\nfor (t in lag_tsd) {\r\n	obj[getField(lag_tsd[t], \'labelValues.3.stringValue\')] = getField(lag_tsd[t], \'pointData.0.values.0.int64Value\');\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'PostgreSQL replica metrics data in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','cb9c5aff913e4deeb29dfa1a20b5ff04','0','2','0'),
('44882','21','','10577','Metrics get','gcp.gce.metrics.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'compute.googleapis.com/\',\r\n	value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'],\r\n	re = /(^t_\\d+\\.value\\.)/g,\r\n	obj = {},\r\n	base_paths = [\r\n		\'instance/uptime_total\',\r\n		\'firewall/dropped_packets_count\',\r\n		\'firewall/dropped_bytes_count\',\r\n		\'instance/cpu/guest_visible_vcpus\',\r\n		\'instance/cpu/reserved_cores\',\r\n		\'instance/cpu/usage_time\',\r\n		\'instance/cpu/utilization\',\r\n		\'mirroring/mirrored_bytes_count\',\r\n		\'mirroring/mirrored_packets_count\'\r\n	],\r\n	e2_paths = [\r\n		\'instance/cpu/scheduler_wait_time\',\r\n		\'instance/memory/balloon/ram_size\',\r\n		\'instance/memory/balloon/ram_used\',\r\n		\'instance/memory/balloon/swap_in_bytes_count\',\r\n		\'instance/memory/balloon/swap_out_bytes_count\',\r\n	],\r\n	net_paths = [\r\n		\'instance/network/received_packets_count\',\r\n		\'instance/network/received_bytes_count\',\r\n		\'instance/network/sent_bytes_count\',\r\n		\'instance/network/sent_packets_count\'\r\n	],\r\n	integrity_paths = [\r\n		\'instance/integrity/late_boot_validation_status\',\r\n		\'instance/integrity/early_boot_validation_status\'\r\n	];\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction getFieldBool(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			return false;\r\n		}\r\n		data = data[step];\r\n	}\r\n	return true;\r\n}\r\n\r\nfunction queryMap(array, path, filter) {\r\n	var query_params = \'{\' + array.map(function (element) { return path + element; }).join(\';\') + \'}\';\r\n	return { query: query_params + filter }\r\n}\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'instance_id\', \'token\', \'machine_type\', \'integrity\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\' || params[field].match(/^\\{\\$.*\\}$/)) {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	if (params.integrity !== \'true\' && params.integrity !== \'false\') {\r\n		throw \'Incorrect integrity state definition type. Valid definitions: true/false\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nfunction nestedMap(raw) {\r\n	var ids = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n		ltsd = getField(raw, \'timeSeriesData\'),\r\n		result = {};\r\n\r\n	for (i in ids) {\r\n		var id = getField(ids[i], \'key\').replace(re, \'\');\r\n		result[id] = {};\r\n		for (t in ltsd) {\r\n			for (v in value_types) {\r\n				if (getFieldBool(ltsd[t], \'pointData.0.values.\' + [i] + \'.\' + [value_types[v]])) {\r\n					[\'stringValue\', \'boolValue\'].forEach(function (type) {\r\n						if (getFieldBool(ltsd[t], \'labelValues.4.\' + [type])) {\r\n							result[id][ltsd[t].labelValues[4][type]] = ltsd[t].pointData[0].values[i][value_types[v]];\r\n						}\r\n					});\r\n\r\n				}\r\n			}\r\n		}\r\n	}\r\n	return result;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value));\r\n\r\nif (params.machine_type.match(/e2.*/)) {\r\n	base_paths = base_paths.concat(e2_paths);\r\n}\r\n\r\nvar filter = \' | within \' + params.time_window + " | filter instance_id = \'" + params.instance_id + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	raw = getHttpData(url, params.token, queryMap(base_paths, base_path, j_filter)),\r\n	keys = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	values = getField(raw, \'timeSeriesData.0.pointData.0.values\');\r\n\r\nfor (i in keys) {\r\n	for (v in value_types) {\r\n		if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n			obj[getField(keys[i], \'key\').replace(re, \'\')] = values[i][value_types[v]];\r\n		}\r\n	}\r\n}\r\n\r\nif (params.machine_type.match(/e2.*/)) {\r\n	obj.ram_pused = Math.floor((getField(obj, \'ram_used\') / getField(obj, \'ram_size\')) * 100);\r\n}\r\n\r\nvar mirr_raw = getHttpData(url, params.token, { query: base_path + \'mirroring/dropped_packets_count\' + filter }),\r\n	tsd = getField(mirr_raw, \'timeSeriesData\');\r\n\r\nfor (t in tsd) {\r\n	for (v in value_types) {\r\n		if (getFieldBool(tsd[t], \'pointData.0.values.0.\' + [value_types[v]])) {\r\n			obj[getField(tsd[t], \'labelValues.3.stringValue\')] = getField(tsd[t], \'pointData.0.values.0.\' + [value_types[v]]);\r\n		}\r\n	}\r\n}\r\n\r\nvar net_metrics = getHttpData(url, params.token, queryMap(net_paths, base_path, j_filter));\r\n\r\nObject.assign(obj, nestedMap(net_metrics));\r\n\r\nif (params.integrity === \'true\') {\r\n	integrity_metrics = getHttpData(url, params.token, queryMap(integrity_paths, base_path, j_filter));\r\n\r\n	var keys = getField(integrity_metrics, \'timeSeriesDescriptor.pointDescriptors\'),\r\n		tsd = getField(integrity_metrics, \'timeSeriesData\');\r\n\r\n	for (i in keys) {\r\n		var key = getField(keys[i], \'key\').replace(re, \'\');\r\n\r\n		obj[key] = \'undefined\';\r\n		for (t in tsd) {\r\n			if (getField(tsd[t], \'pointData.0.values.\' + i + \'.int64Value\') == 1) {\r\n				obj[key] = getField(tsd[t], \'labelValues.4.stringValue\');\r\n				break;\r\n			}\r\n		}\r\n	}\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','0',NULL,'GCP Compute Engine metrics get in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','723fbff060ab41a39322bc0d6d8b1f84','0','2','0'),
('44883','21','','10577','Disks get','gcp.gce.disks.get','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'compute.googleapis.com/instance/disk/\',\r\n	base_paths = [\'read_ops_count\', \'read_bytes_count\', \'write_bytes_count\', \'write_ops_count\'];\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'instance_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	j_filter = \' | within \' + params.time_window + " | filter instance_id = \'" + params.instance_id + "\'" + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	raw = getHttpData(url, params.token, { query: \'{\' + base_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	metrics = getField(raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	time_series = getField(raw, \'timeSeriesData\'),\r\n	arr = [];\r\n\r\nfor (t in time_series) {\r\n	data = {\r\n		disk_name: getField(time_series[t], \'labelValues.3.stringValue\'),\r\n		device_type: getField(time_series[t], \'labelValues.4.stringValue\'),\r\n		storage_type: getField(time_series[t], \'labelValues.6.stringValue\'),\r\n		metrics: {}\r\n	};\r\n\r\n	for (i in metrics) {\r\n		re = /(^t_\\d+\\.value(_|\\.))/g;\r\n		data[\'metrics\'][getField(metrics[i], \'key\').replace(re, \'\')] = getField(time_series[t], \'pointData.0.values.\' + i + \'.int64Value\');\r\n	}\r\n	arr.push(data);\r\n}\r\nreturn JSON.stringify(arr);','','0','','','','','0',NULL,'Disk entities and metrics related to a particular instance.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','4bdd3662247749a69bb59e6643ba7b9a','0','2','0'),
('44884','19','','10577','Instance state','gcp.gce.instance.state','1m','31d','365d','0','3','','','','',NULL,'1095','','','0','','','','','0',NULL,'GCP Compute Engine instance state.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','https://compute.googleapis.com/compute/v1/projects/{$GCP.PROJECT.ID}/zones/{$GCE.INSTANCE.ZONE}/instances/{HOST.NAME}','','','','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','0','0','0','0','0','0','3f82955d43694b25b1e96c9b8f4f6ffb','0','2','0'),
('45042','19','','10575','GCP Cloud SQL PostgreSQL: Databases discovery','gcp.cloudsql.pgsql.db.discovery','1h','90d','0','0','4','','','','',NULL,NULL,'','','0','','','','','1',NULL,'Databases discovery for the particular PostgreSQL instance.','0','7d','1','',NULL,'{$GCP.DATA.TIMEOUT}','https://sqladmin.googleapis.com/sql/v1beta4/projects/{$GCP.PROJECT.ID}/instances/{HOST.NAME}/databases','','','200','1','0','','Content-Type: application/json\r\nAuthorization: Bearer {$GCP.AUTH.TOKEN}','0','0','0','0','0','0','0','090d05a647384858a8b9efe5502c0a76','0','2','0'),
('45044','21','','10575','Database [{#PGSQL.DB.NAME}]: Metrics raw','gcp.cloudsql.pgsql.db.metrics.get[{#PGSQL.DB.NAME}]','{$GCP.TIME.WINDOW}','0','0','0','4','','','','',NULL,NULL,'var base_path = \'cloudsql.googleapis.com/database/postgresql/\',\r\n	obj = {};\r\n\r\nfunction checkParams(params) {\r\n	[\'project_id\', \'time_window\', \'database_id\', \'token\'].forEach(function (field) {\r\n		if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n			throw \'Required param is not set: \' + field + \'.\';\r\n		}\r\n	});\r\n	if (!params.time_window.match(/^[0-9]+(m|h)$/)) {\r\n		throw \'Incorrect update interval for parameter  time_window. Valid ranges 1m-23h.\';\r\n	}\r\n	return params;\r\n}\r\n\r\nfunction getField(data, path) {\r\n	var steps = path.split(\'.\');\r\n\r\n	for (var i = 0; i < steps.length; i++) {\r\n		var step = steps[i];\r\n\r\n		if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n			throw \'Required field "\' + path + \'" is not present in data received.\';\r\n		}\r\n		data = data[step];\r\n	}\r\n	return data;\r\n}\r\n\r\nfunction getHttpData(url, token, body) {\r\n	var request = new HttpRequest();\r\n	if (typeof params.proxy !== \'undefined\' && params.proxy !== \'\') {\r\n		request.setProxy(params.proxy);\r\n	};\r\n	request.addHeader(\'Authorization: Bearer \' + token);\r\n	request.addHeader(\'Content-Type: application/json\');\r\n\r\n	var response = request.post(url, JSON.stringify(body));\r\n\r\n	Zabbix.log(4, \'[ GCP API ] [ \' + url + \' ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n	if (response !== null) {\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse response received from GCP API. Check debug log for more information.\';\r\n		}\r\n	}\r\n\r\n	if (typeof response !== \'object\' || response === null) {\r\n		throw \'Cannot process response data: received data is not an object. Check debug log for more information.\';\r\n	}\r\n\r\n	if (request.getStatus() !== 200) {\r\n		if (typeof (response.error && response.error.message) !== \'undefined\') {\r\n			throw response.error.message;\r\n		}\r\n		else {\r\n			throw \'Failed to receive data: invalid response status code. Check debug log for more information.\';\r\n		}\r\n	}\r\n	return response;\r\n};\r\n\r\nfunction singleMetrics(tsd) {\r\n	var result = {};\r\n\r\n	for (i in tsd) {\r\n		result[getField(tsd[i], \'labelValues.4.stringValue\')] = getField(tsd[i], \'pointData.0.values.0.int64Value\');\r\n	}\r\n	return result;\r\n}\r\n\r\nvar params = checkParams(JSON.parse(value)),\r\n	filter = \' | within \' + params.time_window + " | filter database_id =\'" + params.database_id + "\'" + " | filter database =\'" + params.database_name + "\'",\r\n	j_filter = filter + \' | join\',\r\n	url = \'https://monitoring.googleapis.com/v3/projects/\' + params.project_id + \'/timeSeries:query\',\r\n	common_paths = [\'deadlock_count\', \'tuples_returned_count\', \'tuples_fetched_count\'],\r\n	common_raw = getHttpData(url, params.token, { query: \'{\' + common_paths.map(function (path) { return base_path + path; }).join(\';\') + \'}\' + j_filter }),\r\n	keys = getField(common_raw, \'timeSeriesDescriptor.pointDescriptors\'),\r\n	values = getField(common_raw, \'timeSeriesData.0.pointData.0.values\'),\r\n	re = /(^t_\\d+\\.value\\.)/g;\r\n\r\nfor (i in keys) {\r\n	var value_types = [\'int64Value\', \'doubleValue\', \'stringValue\', \'boolValue\'];\r\n\r\n	for (v in value_types) {\r\n		if (typeof values[i][value_types[v]] !== \'undefined\') {\r\n			obj[getField(keys[i], \'key\').replace(re, \'\')] = values[i][value_types[v]];\r\n		}\r\n	}\r\n}\r\n\r\nvar single_paths = [\'transaction_count\', \'blocks_read_count\', \'tuples_processed_count\', \'tuple_size\'],\r\n	single_queries = single_paths.map(function (path) { return { query: base_path + path + filter }; });\r\n\r\nfor (q in single_queries) {\r\n	raw = getHttpData(url, params.token, single_queries[q]);\r\n	obj = Object.assign(obj, singleMetrics(getField(raw, \'timeSeriesData\')));\r\n}\r\n\r\nreturn JSON.stringify(obj);','','0','','','','','2',NULL,'PostgreSQL metrics in raw format.','0','30d','0','',NULL,'{$GCP.DATA.TIMEOUT}','','','','200','1','0','','','0','0','0','0','0','0','0','7a1df30ae0c443839fe625142aea61b2','0','2','0'),
('45080','19','','10323','Get databases info','clickhouse.databases','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Get information about databases.','0','30d','0','',NULL,'','{$CLICKHOUSE.SCHEME}://{$CLICKHOUSE.HOST}:{$CLICKHOUSE.PORT}/','[{"query":"select database, sum(bytes) as bytes, count(distinct table) as tables, sum(rows) as rows from system.parts where active = 1 group by database format JSON"}]','','200','1','0','','X-ClickHouse-User: {$CLICKHOUSE.USER}\r\nX-ClickHouse-Key: {$CLICKHOUSE.PASSWORD}','0','0','0','0','0','0','0','b2341064c7624848bfcac198d3b5ffa9','0','2','0'),
('45128','20','walk[1.3.6.1.4.1.9.9.48.1.1.1.2,1.3.6.1.4.1.9.9.48.1.1.1.5,1.3.6.1.4.1.9.9.48.1.1.1.6]','10218','Cisco IOS: SNMP walk memory','vm.memory.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CISCO-MEMORY-POOL-MIB\r\nDiscovery of ciscoMemoryPoolTable, a table of memory pool monitoring entries.\r\nhttp://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed5f0ebd013644adbad71e8b93d481de','0','2','0'),
('45129','20','walk[1.3.6.1.2.1.47.1.1.1.1.5,1.3.6.1.2.1.47.1.1.1.1.7,1.3.6.1.2.1.47.1.1.1.1.11]','10218','Cisco IOS: SNMP walk entity serial numbers','system.hw.serialnumber.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB\r\nEntity Serial Numbers Discovery.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c8c82e3502c46d9b7603812d02ce27b','0','2','0'),
('45130','20','walk[1.3.6.1.4.1.9.9.109.1.1.1.1.5,1.3.6.1.4.1.9.9.109.1.1.1.1.8]','10218','Cisco IOS: SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'If your IOS device has several CPUs, you must use CISCO-PROCESS-MIB and its object cpmCPUTotal5minRev from the table called cpmCPUTotalTable,\r\nindexed with cpmCPUTotalIndex.\r\nThis table allows CISCO-PROCESS-MIB to keep CPU statistics for different physical entities in the router,\r\nlike different CPU chips, group of CPUs, or CPUs in different modules/cards.\r\nIn case of a single CPU, cpmCPUTotalTable has only one entry.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3208aa4fb7c14623bc5129018172e3b9','0','2','0'),
('45131','20','walk[1.3.6.1.4.1.9.9.13.1.3.1.2,1.3.6.1.4.1.9.9.13.1.3.1.3,1.3.6.1.4.1.9.9.13.1.3.1.6]','10218','Cisco IOS: SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of ciscoEnvMonTemperatureTable (ciscoEnvMonTemperatureDescr), a table of ambient temperature status maintained by the environmental monitor.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e64d32fe956f481eb6a3899f8c1e09d9','0','2','0'),
('45132','20','walk[1.3.6.1.4.1.9.9.13.1.5.1.2,1.3.6.1.4.1.9.9.13.1.5.1.3]','10218','Cisco IOS: SNMP walk PSUs','sensor.psu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The table of power supply status maintained by the environmental monitor card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a44183c252e4160837cfd960f755097','0','2','0'),
('45133','20','walk[1.3.6.1.4.1.9.9.13.1.4.1.2,1.3.6.1.4.1.9.9.13.1.4.1.3]','10218','Cisco IOS: SNMP walk fans','sensor.fans.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering system fans.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7eb9bdaf14274e1a99c0ff2ac17f0723','0','2','0'),
('45134','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10218','Cisco IOS: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','58168a9cd5464229a9cbb3fb0c978e85','0','2','0'),
('45135','20','walk[1.3.6.1.2.1.10.7.2.1.19,1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2]','10218','Cisco IOS: SNMP walk EtherLike-MIB interfaces','net.if.duplex.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with `up(1)` Operational Status are discovered.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a8734672a10d41c2ba7c1f00171bb93e','0','2','0'),
('45136','20','walk[1.3.6.1.4.1.9.9.48.1.1.1.2,1.3.6.1.4.1.9.9.48.1.1.1.5,1.3.6.1.4.1.9.9.48.1.1.1.6]','10220','Cisco IOS: SNMP walk memory','vm.memory.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CISCO-MEMORY-POOL-MIB\r\nDiscovery of ciscoMemoryPoolTable, a table of memory pool monitoring entries.\r\nhttp://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','011212452fb0421aa913ceee4f59d17b','0','2','0'),
('45137','20','walk[1.3.6.1.2.1.47.1.1.1.1.5,1.3.6.1.2.1.47.1.1.1.1.7,1.3.6.1.2.1.47.1.1.1.1.11]','10220','Cisco IOS: SNMP walk entity serial numbers','system.hw.serialnumber.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB\r\nEntity Serial Numbers Discovery.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3b92777596e2442991618e5feb47567c','0','2','0'),
('45138','20','walk[1.3.6.1.4.1.9.9.13.1.3.1.2,1.3.6.1.4.1.9.9.13.1.3.1.3,1.3.6.1.4.1.9.9.13.1.3.1.6]','10220','Cisco IOS: SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of ciscoEnvMonTemperatureTable (ciscoEnvMonTemperatureDescr), a table of ambient temperature status maintained by the environmental monitor.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9620c1de761246e1806fda680ede7bba','0','2','0'),
('45139','20','walk[1.3.6.1.4.1.9.9.13.1.5.1.2,1.3.6.1.4.1.9.9.13.1.5.1.3]','10220','Cisco IOS: SNMP walk PSUs','sensor.psu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The table of power supply status maintained by the environmental monitor card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cdb1b03725624ea18071a197b7e7f21e','0','2','0'),
('45140','20','walk[1.3.6.1.4.1.9.9.13.1.4.1.2,1.3.6.1.4.1.9.9.13.1.4.1.3]','10220','Cisco IOS: SNMP walk fans','sensor.fans.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering system fans.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5cabdb91f004235b481de453db637c6','0','2','0'),
('45141','20','walk[1.3.6.1.4.1.9.9.48.1.1.1.2,1.3.6.1.4.1.9.9.48.1.1.1.5,1.3.6.1.4.1.9.9.48.1.1.1.6]','10253','Cisco IOS: SNMP walk memory','vm.memory.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: CISCO-MEMORY-POOL-MIB\r\nDiscovery of ciscoMemoryPoolTable, a table of memory pool monitoring entries.\r\nhttp://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/15216-contiguous-memory.html.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fe26641865204720a592be13d4793c99','0','2','0'),
('45142','20','walk[1.3.6.1.2.1.47.1.1.1.1.5,1.3.6.1.2.1.47.1.1.1.1.7,1.3.6.1.2.1.47.1.1.1.1.11]','10253','Cisco IOS: SNMP walk entity serial numbers','system.hw.serialnumber.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: ENTITY-MIB\r\nEntity Serial Numbers Discovery.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','79968a2e878c45c290f79902e9e1cf37','0','2','0'),
('45143','20','walk[1.3.6.1.4.1.9.9.109.1.1.1.1.5]','10253','Cisco IOS: SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'If your IOS device has several CPUs, you must use CISCO-PROCESS-MIB and its object cpmCPUTotal5minRev from the table called cpmCPUTotalTable,\r\nindexed with cpmCPUTotalIndex.\r\nThis table allows CISCO-PROCESS-MIB to keep CPU statistics for different physical entities in the router,\r\nlike different CPU chips, group of CPUs, or CPUs in different modules/cards.\r\nIn case of a single CPU, cpmCPUTotalTable has only one entry.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d188b4d086734f438c3752bb3d9b1971','0','2','0'),
('45144','20','walk[1.3.6.1.4.1.9.9.13.1.3.1.2,1.3.6.1.4.1.9.9.13.1.3.1.3,1.3.6.1.4.1.9.9.13.1.3.1.6]','10253','Cisco IOS: SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovery of ciscoEnvMonTemperatureTable (ciscoEnvMonTemperatureDescr), a table of ambient temperature status maintained by the environmental monitor.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7568839f76854edca01234fb707e1558','0','2','0'),
('45145','20','walk[1.3.6.1.4.1.9.9.13.1.5.1.2,1.3.6.1.4.1.9.9.13.1.5.1.3]','10253','Cisco IOS: SNMP walk PSUs','sensor.psu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The table of power supply status maintained by the environmental monitor card.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c7987c8fb2748978fd9f3f84b5c96d5','0','2','0'),
('45146','20','walk[1.3.6.1.4.1.9.9.13.1.4.1.2,1.3.6.1.4.1.9.9.13.1.4.1.3]','10253','Cisco IOS: SNMP walk fans','sensor.fans.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering system fans.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa5166db7ce14744817cf098c4be46f7','0','2','0'),
('45147','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10253','Cisco IOS: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb44245cd4224bbdaa8c5546ad483848','0','2','0'),
('45148','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10449','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f40d0ccfccd748128775c7bb3f4d9177','0','2','0'),
('45149','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10449','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fe052ca02fe84ec99dfe01443be4ddf0','0','2','0'),
('45150','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10449','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c396c98fb2f4f4cbd249c3ce9989e60','0','2','0'),
('45151','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10449','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','175a6cc9aab040739f2de2beea503bf5','0','2','0'),
('45152','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10449','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a3790b7f9524491ea12c8fae01ec0121','0','2','0'),
('45153','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10449','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f553b00ae11b448cb29889e1efc171f0','0','2','0'),
('45154','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10450','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b1edf5ca04f4a409ac64670e9cc47d5','0','2','0'),
('45155','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10450','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9499128c1774463bab250708d911a318','0','2','0'),
('45156','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10450','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee1dbf5d8a3d41b18eb5a5752c0212da','0','2','0'),
('45157','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10450','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','932ec15e69ac4660b070371dc318bd72','0','2','0'),
('45158','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10450','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0609a92c671e4d23a17cda1c2f61999d','0','2','0'),
('45159','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10450','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','026dd9264a97421f91194ddc2cea5d6c','0','2','0'),
('45160','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10451','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','263db67af47d40bc9d63639383284fff','0','2','0'),
('45161','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10451','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ea40037cf5048cbbbd791ebf754c473','0','2','0'),
('45162','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10451','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','806f6574f6594dbb95767295b10b708e','0','2','0'),
('45163','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10451','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b6f92b2259c449e8a8fd831dac3777b7','0','2','0'),
('45164','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10451','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8450323925164aa8a98411b526de8178','0','2','0'),
('45165','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10451','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a5e69b0ccb2a498ba287245bf8914985','0','2','0'),
('45166','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10452','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','89c237c439e146af9ff1e84f70330b6c','0','2','0'),
('45167','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10452','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00bc8fe0f076428bb92c8c5cbe2de8b1','0','2','0'),
('45168','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10452','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c793f9cf20094756873a176ff5bc3c9b','0','2','0'),
('45169','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10452','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ff42394b0d348c084328c2c23231772','0','2','0'),
('45170','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10452','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3da4c495d5d0420abeb9612840241097','0','2','0'),
('45171','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10452','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d00e09c5cf7145b59c0c3ee462b5ec10','0','2','0'),
('45172','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10453','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f3db6fc2fa544ee8b7603024016784f3','0','2','0'),
('45173','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10453','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','601c6b5e9f224b8f861bf05a3e2ac0dd','0','2','0'),
('45174','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10453','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cfc777afc1e64d2fb633132ec2dfb4c5','0','2','0'),
('45175','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10453','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ff60f9970db44c5581b54f40dc072209','0','2','0'),
('45176','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10453','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba6810f58e114c5abcb0ff9c1e105d53','0','2','0'),
('45177','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10453','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9c2738cd8cde4634bf406c3fd3da5181','0','2','0'),
('45178','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10454','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ae6075aa924446c8a73be7af098aed96','0','2','0'),
('45179','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10454','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0371d3a8d3ba4977b118a1d2c8a37c71','0','2','0'),
('45180','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10454','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4223debf83904667bb26c0fd4cc1ebd8','0','2','0'),
('45181','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10454','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c85b5bf6f034191a4d4c672ce747df6','0','2','0'),
('45182','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10454','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f7af549a539443eb2ea18383157e818','0','2','0'),
('45183','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10454','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','940603fe2a43458584566823954d7106','0','2','0'),
('45184','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10455','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','757ab436c2aa4500a6800ec367cdd109','0','2','0'),
('45185','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10455','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9dff6be2d3694e84aacf544f3e859790','0','2','0'),
('45186','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10455','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c353567980b4cb19e9bffcaca19d952','0','2','0'),
('45187','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10455','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a630370bc4244a95abd091126e909908','0','2','0'),
('45188','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10455','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','409c178fb90841ffb1f2825c4eb01140','0','2','0'),
('45189','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10455','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2848d2045f9c4a76ac49bee199f622d7','0','2','0'),
('45190','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10456','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1fcdd40fa482412bbd5045c0b453c662','0','2','0'),
('45191','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10456','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','53bc8450cca74b67bde3405684dd26a9','0','2','0'),
('45192','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10456','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9cd871f0a0834e7086892b5f547d9c1b','0','2','0'),
('45193','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10456','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31910197c3514daba7637f77af121e4e','0','2','0'),
('45194','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10456','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a2e6607f1e83434bb1ae4d14727613f1','0','2','0'),
('45195','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10456','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9838b7f90f4242c9abf16e39b7a7da81','0','2','0'),
('45196','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10457','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be26aef4d3d54c5289ecbddd5cf65d49','0','2','0'),
('45197','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10457','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1cd91800dd174e29a159df144a897586','0','2','0'),
('45198','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10457','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e094fb03c0e14a94a7bb211a39321284','0','2','0'),
('45199','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10457','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3c9222d085644cbebb2980cb0609c732','0','2','0'),
('45200','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10457','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3cda334d0ed432781c81d0330f6c449','0','2','0'),
('45201','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10457','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','462a235c5c604d689f2d50bf880d5dee','0','2','0'),
('45202','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10458','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d35b717a39b44521b4cf3c9f66d090cc','0','2','0'),
('45203','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10458','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','84ba58953f8e4ee7ad5c8a3278253136','0','2','0'),
('45204','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10458','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5b277c298eec45e4bd8899ad9c115baf','0','2','0'),
('45205','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10458','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7fb2f2938f64483fafa77389d703e91e','0','2','0'),
('45206','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10458','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d2521940a8b421496c046de602748ad','0','2','0'),
('45207','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10458','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4642df48e6e46ae878f8bbee74bfe1d','0','2','0'),
('45208','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10459','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d427efe6eda4905a4ea8838807a3aec','0','2','0'),
('45209','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10459','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9a83fbe37f80430f986267edf2a52d4f','0','2','0'),
('45210','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10459','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','36ebbb62fdc74ece9e7f2a2a87cd13a2','0','2','0'),
('45211','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10459','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7470843632164f2799cbee63bb55b5c7','0','2','0'),
('45212','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10459','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d11712ab5740403f8ce5172310ce6f46','0','2','0'),
('45213','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10459','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c94d1e5e789f4521bca649ff8106b4ab','0','2','0'),
('45214','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10460','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','040616eaf53849ecbc02a4c7dea5ebd1','0','2','0'),
('45215','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10460','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bfb0d94318e1416ba02a6d691a72e5a9','0','2','0'),
('45216','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10460','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aa2ea8e1ce654e8fa09d400579b18ae5','0','2','0'),
('45217','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10460','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b0b1379e1514b42ba71a4e724fc80f0','0','2','0'),
('45218','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10460','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6704e6cb375f4c1fa6ba5dd0d7cc48b7','0','2','0'),
('45219','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10460','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7eea07e69bb74773b4741a220560dc21','0','2','0'),
('45220','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10461','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa0703e764af4de88dd966d296da4cea','0','2','0'),
('45221','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10461','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2572809e413471fa91f33189f575dc4','0','2','0'),
('45222','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10461','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','68d9bef0cfa64303b2cf857c6cfa534d','0','2','0'),
('45223','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10461','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','22e6499e799b4244ae807523adaa5e36','0','2','0'),
('45224','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10461','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','20bfa7ce2793454a9c6215dc31c1c3a2','0','2','0'),
('45225','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10461','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bdb027dba5ee41ad9213b392a20b42f2','0','2','0'),
('45226','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10462','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ae38813c9984ddd8aae451c727200b3','0','2','0'),
('45227','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10462','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e8edfe1c42b048e69048164c04f24c99','0','2','0'),
('45228','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10462','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','96001f4e8e67454dbf3b73dfa4ff26b6','0','2','0'),
('45229','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10462','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4482b7e83c0349c59ff9a30487b29a2c','0','2','0'),
('45230','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10462','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6cf5e50c19624d41bf53759f0dc10b4b','0','2','0'),
('45231','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10462','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d99f44d8cd946c080edf97cdd666c4e','0','2','0'),
('45232','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10463','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d10f1085341451cba47f63b06a4a06f','0','2','0'),
('45233','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10463','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d012ab84c8d6422cb087607c6d840358','0','2','0'),
('45234','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10463','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ab408cc4df1b45d486bc8d4c751a0780','0','2','0'),
('45235','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10463','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','879cc78834a046d88584314fceb85066','0','2','0'),
('45236','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10463','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b78240b0045d4816a6df23d650063d5e','0','2','0'),
('45237','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10463','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7a119a4a9a8c4da0972b5ce82723d645','0','2','0'),
('45238','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10464','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e70529cb6c5745a688ab44cf3bf4fd79','0','2','0'),
('45239','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10464','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d449d74135b2411bada1c4f861fc471c','0','2','0'),
('45240','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10464','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3f1deeaeb93f41ffbff0aff4a0f3e76b','0','2','0'),
('45241','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10464','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c3ffb77f1654fcf9c8d14aff9fe6c70','0','2','0'),
('45242','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10464','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4776694f7d35412e9269dcda24a9a884','0','2','0'),
('45243','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10464','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6eea8e195ed24eefa9cb2c11df07683b','0','2','0'),
('45244','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10465','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e4aa12d55f344d8e8a2f78ebb2242db8','0','2','0'),
('45245','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10465','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b448f8cfabf640ae9f61470baf2dbab1','0','2','0'),
('45246','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10465','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d2b21f513774e798bd23a63021ccf00','0','2','0'),
('45247','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10465','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8a949a99718b426f8d099e20af54523c','0','2','0'),
('45248','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10465','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0063fa878ba4844b1a81eec31be3a8e','0','2','0'),
('45249','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10465','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5ec4870e9f7c43c3878cf05e1f4dbf09','0','2','0'),
('45250','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10466','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37778f9029cd486fbeedd2db776d7d8f','0','2','0'),
('45251','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10466','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cd348b7d795641c8ba04fa4eab0f312d','0','2','0'),
('45252','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10466','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6349343995e34ffebb442c50527d7217','0','2','0'),
('45253','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10466','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e0e7aa5dd7fb469a907e81dea2699cb5','0','2','0'),
('45254','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10466','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','633c28cb77e345edb42366280afe8b03','0','2','0'),
('45255','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10466','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','beda6c376a0e46ee8558a0084690eeb4','0','2','0'),
('45256','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10467','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1ad2255031b94fd8a344a9436f2154af','0','2','0'),
('45257','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10467','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b555f355a97e4a1998ebb08df62c380e','0','2','0'),
('45258','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10467','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','06fe62b330c14f18b25f383253c2d081','0','2','0'),
('45259','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10467','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94ca803ecfae4566bfe1c4ffe4e4193b','0','2','0'),
('45260','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10467','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8c82a88fd1e84ebc8b364e25cd454b43','0','2','0'),
('45261','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10467','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f5e5336f6421402b8c5b2ea6df651c21','0','2','0'),
('45262','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10468','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bf66ea54f8874cc89bb11a4a3c325d1f','0','2','0'),
('45263','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10468','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','be3ad72bd2164a5cba49bc9423c97595','0','2','0'),
('45264','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10468','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0ff44c2967ba4388b5a815871c60224c','0','2','0'),
('45265','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10468','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d1067090f5a4dfa8a6faa14c584ff2a','0','2','0'),
('45266','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10468','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5776492fa6f4d71a1897a7cfa6b6917','0','2','0'),
('45267','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10468','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','150711267ef340699fe081bb23e7331f','0','2','0'),
('45268','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10469','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4b74f8ee93c742649c4b0b663338befa','0','2','0'),
('45269','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10469','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d3a059306c60489dbf7a7417f3a1e072','0','2','0'),
('45270','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10469','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca91e39d097a4208819aaa2143ba16e1','0','2','0'),
('45271','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10469','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','549f707bce3a41218c26dd86e4c182f7','0','2','0'),
('45272','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10469','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f509a71c40348ba9502fd6eeb795589','0','2','0'),
('45273','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10469','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b6cbc7e31c0454c901e424757751474','0','2','0'),
('45274','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10470','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27b2bb60cd234327bd82b0016d723e32','0','2','0'),
('45275','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10470','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c56b7dd474b64fb59d5088340e0de6c0','0','2','0'),
('45276','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10470','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc5724df54c44e8d96294b174b14220c','0','2','0'),
('45277','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10470','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64da7b5eaeda46d1ab7b49eb28ce958f','0','2','0'),
('45278','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10470','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f4110ec0e7474808a9d0111fe64a9bc8','0','2','0'),
('45279','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10470','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8b36357da06d4185815f5cd6f62bac4a','0','2','0'),
('45280','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10471','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2529412985f84e19a5516eff963a8498','0','2','0'),
('45281','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10471','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3760283279a4405fa74cd33f352731e6','0','2','0'),
('45282','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10471','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa53b0ad0a0445d0bcda92a24fded5bc','0','2','0'),
('45283','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10471','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fa13c585abdf4ce2a0893a106bf87d36','0','2','0'),
('45284','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10471','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3fb9a05330114b8bacbe7f172a782063','0','2','0'),
('45285','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10471','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fddaf4522c1f4d18af49e3bccbc63ee3','0','2','0'),
('45286','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10472','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7ec72049975a4c9d8597414e898055ab','0','2','0'),
('45287','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10472','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9b4fcab963ff43adb954043ac7e310a0','0','2','0'),
('45288','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10472','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','00945b872b634a9bad164f0d77c62e00','0','2','0'),
('45289','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10472','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2cc26ed0f39343579051f3d2c968eed9','0','2','0'),
('45290','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10472','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a352e9a765d441a1ab10e6966fb27dfd','0','2','0'),
('45291','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10472','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','124fa909031144c5b26c91c2f5cb71a1','0','2','0'),
('45292','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10473','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','31743a0c3cb14763a68b81cc715f6658','0','2','0'),
('45293','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10473','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d26a15dbe3bf4358adbc8c423c4387fc','0','2','0'),
('45294','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10473','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b7e0ca77a1c04e50acc04f0cf74e8333','0','2','0'),
('45295','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10473','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1233db7dfb184738ae302ef22472397d','0','2','0'),
('45296','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10473','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ac29915d449346a48c951d4b784e3c5f','0','2','0'),
('45297','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10473','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','27e581ee8e544c2598c03060bb77c087','0','2','0'),
('45298','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10474','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','93c10a76cad8418b874104acf355874c','0','2','0'),
('45299','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10474','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5a818c4ca96d4de5ae22a08f05005619','0','2','0'),
('45300','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10474','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f9d49d3212f3465f8aa75af86e91ae8a','0','2','0'),
('45301','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10474','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b7acd6e55dc945c4ac8febb95852394b','0','2','0'),
('45302','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10474','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0701e676a22f4ef894e4180f4ef3e2e4','0','2','0'),
('45303','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10474','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','352106c95d3f42b39c90b3eb69832ec0','0','2','0'),
('45304','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10475','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d9dad10e76a949bd8447e97f6b566ba8','0','2','0'),
('45305','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10475','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e69894166ce430f8a7bf30e51948684','0','2','0'),
('45306','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10475','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','17da4f6e57cc45ddbd43984d80f9476f','0','2','0'),
('45307','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10475','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e0a44481683949b09a2025399671b205','0','2','0'),
('45308','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10475','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1e02843c30d241f8bcf0dd63715fda44','0','2','0'),
('45309','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10475','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c6d299419b845b99644d879daa6b0e1','0','2','0'),
('45310','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10476','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','85468f79d320417ea0f0e28087c75565','0','2','0'),
('45311','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10476','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','778d3453ddb84b53ac3598bf8ae78286','0','2','0'),
('45312','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10476','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','32f309a4cfb0492695f09573e6fecec2','0','2','0'),
('45313','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10476','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b222b83f47f24fc5b1df42ac960b2293','0','2','0'),
('45314','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10476','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0ca8eb8ed89a4e1eb5f4b40050a3fa7a','0','2','0'),
('45315','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10476','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9ef56761ca344a9a8774ad109bc00834','0','2','0'),
('45316','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10477','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e1fc1f83c9754629ba9c77af9edcaabe','0','2','0'),
('45317','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10477','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eae8e0a3cf144efc8decc672413bf511','0','2','0'),
('45318','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10477','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','686390022e2449d4a41e07f409381f28','0','2','0'),
('45319','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10477','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','958d90a20a5b42aca9858e6ee7e236bb','0','2','0'),
('45320','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10477','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c5ff7db372af4f2b92dfe19d45ee1b9d','0','2','0'),
('45321','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10477','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9aa7461f98fa4a5db662b35466b0b102','0','2','0'),
('45322','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10478','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a7e39d9bd554b578f41eb1c03b14523','0','2','0'),
('45323','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10478','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','56d7791a6ba84e47b5042a035cf9a1ee','0','2','0'),
('45324','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10478','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37d025f8bf754dbb8d15bf1e5426862d','0','2','0'),
('45325','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10478','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3365cd3457cc4e08978363cc173a6cbf','0','2','0'),
('45326','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10478','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2b5526a8b35c4733bbb79606d7818749','0','2','0'),
('45327','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10478','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','afec8f57e23f42b2837fb036952f649c','0','2','0'),
('45328','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10479','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c1e35414044f415fae94d45754fb5c8f','0','2','0'),
('45329','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10479','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','42b758a3d32b46499e2242fb083896f5','0','2','0'),
('45330','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10479','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','74705c203cfb4b539eba822ea63728a2','0','2','0'),
('45331','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10479','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5bfbe0c923c04f5ba51670885ea42b08','0','2','0'),
('45332','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10479','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d09dfb0d4a7141d797d8f48b97564953','0','2','0'),
('45333','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10479','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','65e7c0f418a94507a124ae74e9ba302b','0','2','0'),
('45334','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10480','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0efa7e7c390457b860529cd06839d09','0','2','0'),
('45335','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10480','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eace29d74902498794e0b471d478e42b','0','2','0'),
('45336','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10480','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','07595ee4f64a42faa52c72f4c73f85d3','0','2','0'),
('45337','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10480','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f68a8c2784974448b8d9d45ccbf06585','0','2','0'),
('45338','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10480','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5c2f6f54f1b7498fa4c038a6cd8e1f26','0','2','0'),
('45339','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10480','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cc31d87a9f76429d9063aa89c1e99229','0','2','0'),
('45340','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10481','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','32ee0bad03f64031b06626fd4ad22991','0','2','0'),
('45341','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10481','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cf0b87d2fca34aa0b99d58251f438c27','0','2','0'),
('45342','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10481','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eb03498bdc3b4cd5b7ace2095b20d47c','0','2','0'),
('45343','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10481','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','70a28ac41b0e4747b602c0cdc07f435d','0','2','0'),
('45344','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10481','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f44c6ec36f442b490cac1231bbad884','0','2','0'),
('45345','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10481','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3416ecf2fd304658b724b3c0f5de202e','0','2','0'),
('45346','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10482','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d86496cfc8444af2aabc000e6a80b689','0','2','0'),
('45347','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10482','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1cd88ad46ac74b3cb6da7702f7eade1b','0','2','0'),
('45348','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10482','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f40149e3f53f40c995f618954aa0377c','0','2','0'),
('45349','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10482','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8e939f8794f2497c9d3fa5c2eca030e6','0','2','0'),
('45350','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10482','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b0ae9aa61be043309a13e2675ba8fc3d','0','2','0'),
('45351','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10482','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','315cf9b2115041108a9c509650b4934d','0','2','0'),
('45352','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10483','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c0b8af43957d41bd8b69e6512f6b6a6a','0','2','0'),
('45353','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10483','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f7865bcd7ec419bbf6598b2e8e41c39','0','2','0'),
('45354','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10483','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','311fa7310bbf435cabcf1234855df213','0','2','0'),
('45355','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10483','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e2474a9d9fc543b9a017a88cc6e5d7fd','0','2','0'),
('45356','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10483','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0402d2260bea47fba074bd90e441dd88','0','2','0'),
('45357','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10483','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','63022c75670f4965bf5f9ffe2ae5ce98','0','2','0'),
('45358','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10484','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','37a9d23461a8465a848d0adebbb5e5e1','0','2','0'),
('45359','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10484','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','09408704f52d4a8abd39fc674319a385','0','2','0'),
('45360','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10484','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','108e545868c44c6caa8029221b2dfe42','0','2','0'),
('45361','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10484','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f1a6edc522f740b2bc55eb243112d149','0','2','0'),
('45362','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10484','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8fabcdd6078443f1b27add9103ac8e73','0','2','0'),
('45363','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10484','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','392f67c076ea43bd8fb2e356e0b11ebb','0','2','0'),
('45364','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10485','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2c92b96aea704a1f9d2140e1a69a6e52','0','2','0'),
('45365','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10485','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ff529ff6cb624b9092ab5d06ddfeb6a9','0','2','0'),
('45366','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10485','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a84c0ed258b9498cbc6a1d39d5d34f2e','0','2','0'),
('45367','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10485','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c55338447c8348428a2f3b82c35ba284','0','2','0'),
('45368','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10485','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','22988243945244b0a8170aa3e50f904e','0','2','0'),
('45369','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10485','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ee7ed053257048ffa7edae3b2b0a100f','0','2','0'),
('45370','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10486','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ff6648e94ea41198a454e9fe2c95c83','0','2','0'),
('45371','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10486','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','29d5c318ee4b4a76bed39f0caa1a4ed1','0','2','0'),
('45372','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10486','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8a9cc02b9c0c4da4bc1219f01d1abf32','0','2','0'),
('45373','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10486','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d90e4684c2eb4e149cb1a21ad477c09e','0','2','0'),
('45374','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10486','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','05b58973c1d446fb9093253f30c3478e','0','2','0'),
('45375','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10486','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2e4c6db52cf54c12afcc627a746c56c1','0','2','0'),
('45376','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10487','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d170f05138c34010b66e2bf13a40685d','0','2','0'),
('45377','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10487','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6f7e1d9451304f0788a95297eca8c5a5','0','2','0'),
('45378','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10487','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7fade9792c454210ae37423251f8ab28','0','2','0'),
('45379','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10487','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8bbdb7af27c54aa38d2542daf6e85e8f','0','2','0'),
('45380','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10487','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5f06a59ecc054d609afee34922983993','0','2','0'),
('45381','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10487','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','90beada4eaac4ebe87cceb3b07e4ef54','0','2','0'),
('45382','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10488','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f55f9ec7c2c1456295be98b7e47b3b02','0','2','0'),
('45383','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10488','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','150579efc2dd48c28f7cbc1d2186fa8b','0','2','0'),
('45384','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10488','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','280a8816f8e349288336945461c67d2d','0','2','0'),
('45385','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10488','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','01e7944ad29b4a4a8632aa2518951488','0','2','0'),
('45386','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10488','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','77f78108b48c4d81a922bd23f233466f','0','2','0'),
('45387','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10488','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','77509cb42fce4c169c6057f146a8b79a','0','2','0'),
('45388','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10489','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c654378ae0234392b1526df325125b0a','0','2','0'),
('45389','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10489','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','dd634cc1e804449b90693bf1925dc3d4','0','2','0'),
('45390','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10489','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','89de96cb2feb47e587590ef882d90bff','0','2','0'),
('45391','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10489','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7bde673035aa487fb10ddc79535b4b9a','0','2','0'),
('45392','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10489','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3d2748be91c24dc69202b9fed8ecd8b8','0','2','0'),
('45393','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10489','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','aec4de5980224cb8b4f7e573866ea86d','0','2','0'),
('45394','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10490','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ad95f1d123f54de3a2b06dfa32e25eed','0','2','0'),
('45395','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10490','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ed241d40ab044cb3ade0c7b4b504cade','0','2','0'),
('45396','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10490','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3039020f9ffb48b192fe52524bc9484e','0','2','0'),
('45397','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10490','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f851b846d4f547d8be926dcbbbbb4338','0','2','0'),
('45398','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10490','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','44d98891c0a04a8680fe30331f0e44ac','0','2','0'),
('45399','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10490','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2999403c64bb45cfb237d11fa8392562','0','2','0'),
('45400','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10491','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','376db50b5a4e41cc9e6a2d6e0034639c','0','2','0'),
('45401','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10491','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','50b5f8dc5e3042cdac11d97d7cce14bd','0','2','0'),
('45402','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10491','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1c598bf4903c455bab4441dec3d80b5d','0','2','0'),
('45403','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10491','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7c681185f0ba4de6ac993108a95e696d','0','2','0'),
('45404','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10491','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','debb90a64e164da098f27fe0a44fd18e','0','2','0'),
('45405','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10491','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8f59fcb385c5452f93b3d893522a9917','0','2','0'),
('45406','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10492','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d3a2f07ab8643668864e90203bdaaa1','0','2','0'),
('45407','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10492','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ee3bbf180a749d6ab35bed974677b8d','0','2','0'),
('45408','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10492','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3ac2ad1fc2604a659ca1b5fd8e6885d3','0','2','0'),
('45409','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10492','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c61f8708b1bd499db1ea1da93cc3496f','0','2','0'),
('45410','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10492','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3724f2b9d41d4cb7952734a3f96393a8','0','2','0'),
('45411','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10492','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9d86b3b5ece7456fb4baa3b557bed1c1','0','2','0'),
('45412','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10493','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a1747b98b45d40d8beb2be1806180a86','0','2','0'),
('45413','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10493','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d95cb59429ac4d50845abefc5b0d4a6b','0','2','0'),
('45414','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10493','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','91e27f15b193448196a0feb6ea342ef9','0','2','0'),
('45415','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10493','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6addcc73bb5543e0a0813d3d8685c3c5','0','2','0'),
('45416','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10493','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6ac6276902234fe085ae6fa3afe94c16','0','2','0'),
('45417','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10493','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bcbea364e6264d6a81052e19fb308de9','0','2','0'),
('45418','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10494','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5350a6c911424c839afe59812e0be1e0','0','2','0'),
('45419','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10494','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','6b4efaf2db754ab3a228fa8eaae62c82','0','2','0'),
('45420','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10494','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','967b52cbd49149239d0259114557b358','0','2','0'),
('45421','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10494','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','594b5da7477b4f8d92877da5f5153b11','0','2','0'),
('45422','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10494','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7960fa31620c466b83b333a2045b5763','0','2','0'),
('45423','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10494','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','82e17ef7dc8e4a0eab8cbd22a5debb8b','0','2','0'),
('45424','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10495','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a40f18da3905480aa83619354feb63d3','0','2','0'),
('45425','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10495','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','78849e4286984e72ab462795c2f29b03','0','2','0'),
('45426','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10495','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cba4918183f6475ab73239bdb35c48f7','0','2','0'),
('45427','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10495','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','571eeb8ffa5443c8a4cc5e5eaec6fafc','0','2','0'),
('45428','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10495','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','02b9eb47a0a646ea88c4d8afaa24afd7','0','2','0'),
('45429','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10495','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','15263d03b5bc40eda79495ba51042d7f','0','2','0'),
('45430','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10496','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8756dffb1a514c7c8395783689c774e7','0','2','0'),
('45431','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10496','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','9244bd8596854d6eb586cd7686ec25e6','0','2','0'),
('45432','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10496','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','649c40bd20a84b88857f630d7590ad00','0','2','0'),
('45433','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10496','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eb5daf9f8ad24bdaa82d3a48e104c72f','0','2','0'),
('45434','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10496','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1b22814a8b02449391c1aae1d1f25ceb','0','2','0'),
('45435','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10496','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e5abe1d4af994d86a2aeebf97ebca324','0','2','0'),
('45436','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10497','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','64d260bc3e5240309575d88c93ea8cdf','0','2','0'),
('45437','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10497','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f2d1ab4e84554749ae28567b4031e6fd','0','2','0'),
('45438','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10497','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','472ce76ccd48411980fd43324769b9b5','0','2','0'),
('45439','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10497','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ba3e4ca4ff364dbb9e69cd6e8adceae9','0','2','0'),
('45440','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10497','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c08c6737b99140caa73d2a81cc86f9e9','0','2','0'),
('45441','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10497','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','75214946ec7b4b0bbc8e86f9e83b7f7c','0','2','0'),
('45442','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10498','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','5d66a2c3f54543908039c46cdd3e4f76','0','2','0'),
('45443','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10498','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e1120e04fc1344bebf89ec883fdd0e00','0','2','0'),
('45444','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10498','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','88e721a6db984ea28a83bd10302ce939','0','2','0'),
('45445','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10498','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','88ba9df4944d4b58918e1c5094470b14','0','2','0'),
('45446','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10498','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b3383829ce684182b78dabfa908c00c2','0','2','0'),
('45447','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10498','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','934a7b99f99844ea8fac5c4c3b799898','0','2','0'),
('45448','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10499','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f65b50872b6c4ad59943002667e2fadf','0','2','0'),
('45449','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10499','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','92ff237e1b074d35b47e029168cd9f14','0','2','0'),
('45450','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10499','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cb3ba22a141c4008930d329952673e9e','0','2','0'),
('45451','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10499','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','46e1f84b23824526a448a86cc4880be6','0','2','0'),
('45452','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10499','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','e470f22a8f114567a98d50b0b440dfcd','0','2','0'),
('45453','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10499','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d3667df2f5684e479c579c48f84c8015','0','2','0'),
('45454','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10500','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','cf99345bee674cd3bced77141bb267c3','0','2','0'),
('45455','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10500','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0d8544ddbb6947bbb005cec3304317a1','0','2','0'),
('45456','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10500','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','973f37ef0f184b7286fb921cf49ff01c','0','2','0'),
('45457','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10500','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c3513ebf12544ab0838161cec3d6f6b0','0','2','0'),
('45458','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10500','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','616f1ecdc8fa4f9fbdb4a967ef3148d5','0','2','0'),
('45459','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10500','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94e1ebf58d8d43ba95ab7e6264887dfb','0','2','0'),
('45460','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10501','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','731f08c5f7004052a54842a51b04da2f','0','2','0'),
('45461','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10501','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2eb45102f7ef4abc9ee58548ea98c774','0','2','0'),
('45462','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10501','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8bf1fdcf6c21414da4eb2c225504dec5','0','2','0'),
('45463','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10501','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','77f2e62f37f8421881d3d1ff657b1250','0','2','0'),
('45464','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10501','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','c300402ec1054fea9d51f561ed0a9540','0','2','0'),
('45465','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10501','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2fbbb3ab2ea24c79b2d17d626eb9d9e4','0','2','0'),
('45466','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10502','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','7b4cbeded8984cb881e5502258af4fe4','0','2','0'),
('45467','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10502','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fc274078fc4f4a70b85572e1ebabb681','0','2','0'),
('45468','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10502','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2d60eda2f5f3487fbac7f869f310ce51','0','2','0'),
('45469','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10502','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','d341aac49bf44889bd78622027d1618e','0','2','0'),
('45470','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10502','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','b1acc89ec5a44933aee32f7fce4bef74','0','2','0'),
('45471','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10502','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a7a673b6f0cd4d588828028caba5d8c7','0','2','0'),
('45472','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10233','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering mounted filesystems.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2af6a2f85926468ab8242e4f5c6fb096','0','2','0'),
('45473','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.2.1.25.3.3.1.2]','10233','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','2f9bb0334ae74e22b3ff917dec5fa924','0','2','0'),
('45474','20','walk[1.3.6.1.4.1.14988.1.1.3.10]','10233','SNMP walk temperature sensors','sensor.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','f798e03cc75d48b2b6a8e7633e213601','0','2','0'),
('45475','20','walk[1.3.6.1.4.1.14988.1.1.3.11]','10233','SNMP walk CPU temperature sensors','sensor.cpu.temp.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: MIKROTIK-MIB\r\nDiscovering CPU temperature sensors.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','1fa6a6ee638946d086a69dacf166ebe2','0','2','0'),
('45476','20','walk[1.3.6.1.4.1.14988.1.1.14.1.1.2,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.7,1.3.6.1.4.1.14988.1.1.16.1.1.2,1.3.6.1.4.1.14988.1.1.16.1.1.4,1.3.6.1.4.1.14988.1.1.16.1.1.3,1.3.6.1.4.1.14988.1.1.16.1.1.7,1.3.6.1.4.1.14988.1.1.1.3.1.4,1.3.6.1.4.1.14988.1.1.1.3.1.8,1.3.6.1.4.1.14988.1.1.1.3.1.9,1.3.6.1.4.1.14988.1.1.1.3.1.6,1.3.6.1.4.1.14988.1.1.1.3.1.11,1.3.6.1.4.1.14988.1.1.1.7.1.5,1.3.6.1.4.1.14988.1.1.1.7.1.4,1.3.6.1.4.1.14988.1.1.1.7.1.2,1.3.6.1.4.1.14988.1.1.1.7.1.3]','10233','SNMP walk wireless interfaces','net.if.wireless.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a23fdffc346b4adb833924d9975542c2','0','2','0'),
('45477','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10233','Mikrotik: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','3eaa90d933914ba18663ebf21c4675bb','0','2','0'),
('45478','20','walk[1.3.6.1.4.1.11863.6.4.1.2.1.1.1,1.3.6.1.4.1.11863.6.4.1.2.1.1.2]','10236','SNMP walk memory','vm.memory.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering TPLINK-SYSMONITOR-MIB::tpSysMonitorMemoryTable, displays the memory utilization of all UNITs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','4ac2fe58877e4a8ab1dedb38fe41ef3e','0','2','0'),
('45479','20','walk[1.3.6.1.4.1.11863.6.4.1.1.1.1.1,1.3.6.1.4.1.11863.6.4.1.1.1.1.3]','10236','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering TPLINK-SYSMONITOR-MIB::tpSysMonitorCpuTable, displays the CPU utilization of all UNITs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ae66a99ae15d4fe98e513745978c2ce4','0','2','0'),
('45480','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.10,1.3.6.1.2.1.2.2.1.16,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.2.2.1.5]','10236','TP-LINK: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0cf11e0dfd3b47f1a0a5d8f011e6517b','0','2','0'),
('45481','20','walk[1.3.6.1.4.1.2021.9.1.1,1.3.6.1.4.1.2021.9.1.2,1.3.6.1.4.1.2021.9.1.3,1.3.6.1.4.1.2021.9.1.10,1.3.6.1.4.1.2021.9.1.11,1.3.6.1.4.1.2021.9.1.12,1.3.6.1.4.1.2021.9.1.13,1.3.6.1.4.1.2021.9.1.14,1.3.6.1.4.1.2021.9.1.15,1.3.6.1.4.1.2021.9.1.16]','10248','SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: UCD-SNMP-MIB\r\nSnmp walk through dskEntry table. Collected data used in filesystem lld and dependent item prototypes.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8ad72047f03a452f9698254fe6b4ffd2','0','2','0'),
('45482','20','walk[1.3.6.1.4.1.2021.13.15.1.1.2,1.3.6.1.4.1.2021.13.15.1.1.5,1.3.6.1.4.1.2021.13.15.1.1.6,1.3.6.1.4.1.2021.13.15.1.1.9]','10248','SNMP walk block devices','vfs.dev.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable).','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','94c5ede90a50467989a4559e51c0bcef','0','2','0'),
('45483','20','walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.4.1.2021.11.53.0,1.3.6.1.4.1.2021.11.52.0,1.3.6.1.4.1.2021.11.50.0,1.3.6.1.4.1.2021.11.64.0,1.3.6.1.4.1.2021.11.61.0,1.3.6.1.4.1.2021.11.51.0,1.3.6.1.4.1.2021.11.54.0,1.3.6.1.4.1.2021.11.56.0,1.3.6.1.4.1.2021.11.65.0,1.3.6.1.4.1.2021.11.66.0]','10248','SNMP walk system CPUs','system.cpu.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'MIB: HOST-RESOURCES-MIB\r\nDiscovering system CPUs.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','fb2a968ed48f4c6287da2b06bc3b95f3','0','2','0'),
('45484','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]','10248','Linux: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','661b9bbeb1f146da9c0d9bfa8e5f26d5','0','2','0'),
('45485','20','walk[1.3.6.1.2.1.10.7.2.1.19,1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2]','10248','Linux: SNMP walk EtherLike-MIB interfaces','net.if.duplex.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with `up(1)` Operational Status are discovered.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','da392895de1c447eb5d3f1f950360639','0','2','0'),
('45486','20','walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.10,1.3.6.1.2.1.2.2.1.16,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.31.1.1.1.15,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20]','10249','Windows: SNMP walk network interfaces','net.if.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'Discovering interfaces from IF-MIB.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','649fb89829c04fe9bec44e942aeb2b42','0','2','0'),
('45487','20','walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]','10249','Windows: SNMP walk mounted filesystems','vfs.fs.walk','1m','0','0','0','4','','','','',NULL,NULL,'','','0','','','','','0',NULL,'HOST-RESOURCES-MIB::hrStorage discovery.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','bab2a178a60c4dddae8f11f8be344339','0','2','0'),
('45488','5','','10048','Discovery queue','zabbix[discovery_queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The count of values enqueued in the discovery queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','ca8a1cafec6e44a4b31f9ec5a6ed00cb','0','2','0'),
('45489','5','','10048','Utilization of discovery manager internal processes, in %','zabbix[process,discovery manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the discovery manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','930bf9db6c754a17ab5026961d6369ba','0','2','0'),
('45490','5','','10048','Utilization of discovery worker internal processes, in %','zabbix[process,discovery worker,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the discovery worker processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','eeee7e927a854b61b166a13b8eb98f28','0','2','0'),
('45494','5','','10047','Discovery queue','zabbix[discovery_queue]','1m','31d','365d','0','3','','','','',NULL,NULL,'','','0','','','','','0',NULL,'The count of values enqueued in the discovery queue.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','8e02b4a9afbb4ae994f2210aac8aab83','0','2','0'),
('45495','5','','10047','Utilization of discovery manager internal processes, in %','zabbix[process,discovery manager,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the discovery manager processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','0a06a1b172c14e068cfc4ecee1511ffc','0','2','0'),
('45496','5','','10047','Utilization of discovery worker internal processes, in %','zabbix[process,discovery worker,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the discovery worker processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','a88bad7225d3417da697220615252226','0','2','0'),
('45511','5','','10048','Utilization of agent poller data collector processes, in %','zabbix[process,agent poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the agent poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','998df832cf58436ea7707331338d5f3b','0','2','0'),
('45512','5','','10048','Utilization of http agent poller data collector processes, in %','zabbix[process,http agent poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the http agent poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','584c5ee90cff40e2befc38061ce8e7e7','0','2','0'),
('45515','5','','10047','Utilization of agent poller data collector processes, in %','zabbix[process,agent poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the agent poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','47f983079b064558976fb3cf5d50d742','0','2','0'),
('45516','5','','10047','Utilization of http agent poller data collector processes, in %','zabbix[process,http agent poller,avg,busy]','1m','31d','365d','0','0','','%','','',NULL,NULL,'','','0','','','','','0',NULL,'The average percentage of the time during which the http agent poller processes have been busy for the last minute.','0','30d','0','',NULL,'','','','','200','1','0','','','0','0','0','0','0','0','0','71934ae835034df5b9ce97eeb859b96b','0','2','0'),
('45521','21','','10582','Get daily costs','aws.get.daily.costs','0s;h/6','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.params[\'auth_type\'] = \'role_base\';\r\n				var request = new HttpRequest();\r\n				if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n					request.setProxy(AWS.params.proxy);\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n				var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n				if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n					throw \'Error getting IMDSv2 session token.\';\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n				var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n				if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n					throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n				}\r\n\r\n				credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n				if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n					throw \'Error getting security credentials from instance metadata.\';\r\n				}\r\n\r\n				try {\r\n					credentials = JSON.parse(credentials);\r\n				}\r\n				catch (error) {\r\n					throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n				}\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			case \'assume_role\':\r\n				AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n\r\n				role_arn_regex = /role\\/(.+)$/;\r\n\r\n				var payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': AWS.params.role_arn.match(role_arn_regex)[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'POST\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'region\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n\r\n		today = new Date();\r\n		AWS.params.end_date = today.toDateString();\r\n		today.setDate(today.getDate() - 1);\r\n		AWS.params.start_time = today.toDateString();\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n\r\n	},\r\n\r\n	request: function (method, region, service, params, data, target) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n		else {\r\n			data = JSON.stringify(data);\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\'),\r\n			canonical_uri = \'/\',\r\n			host = service + \'.\' + region + \'.amazonaws.com\',\r\n			canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n			signed_headers = \'content-encoding;host;x-amz-date\',\r\n			canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/x-amz-json-1.1\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'X-Amz-Target: \' + target);\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS Billing ] Sending request: \' + url);\r\n		response = request.post(url, data);\r\n		Zabbix.log(4, \'[ AWS Billing ] Received response with the status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with the status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse the response received from AWS API. Check debug log for more information.\';\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	getDimensionValues: function () {\r\n		var body_raw_dimension = {\r\n			\'TimePeriod\': {\r\n				\'Start\': AWS.params.start_time,\r\n				\'End\': AWS.params.end_date\r\n			},\r\n			\'Dimension\': \'SERVICE\'\r\n		};\r\n		return AWS.getField(AWS.request(\'POST\', AWS.params.region, \'ce\', \'\', body_raw_dimension, \'AWSInsightsIndexService.GetDimensionValues\'), \'DimensionValues\');\r\n\r\n	},\r\n\r\n	getCostAndUsage: function () {\r\n		var body_raw_cost = {\r\n\r\n			\'TimePeriod\': {\r\n				\'Start\': AWS.params.start_time,\r\n				\'End\': AWS.params.end_date\r\n			},\r\n			\'Granularity\': \'DAILY\',\r\n			\'DimensionValues\': AWS.getDimensionValues(),\r\n			\'GroupBy\': [\r\n				{\r\n					\'Type\': \'DIMENSION\',\r\n					\'Key\': \'SERVICE\'\r\n				}\r\n			],\r\n			\'Metrics\': [\'BlendedCost\']\r\n		};\r\n\r\n		return AWS.getField(AWS.request(\'POST\', AWS.params.region, \'ce\', \'\', body_raw_cost, \'AWSInsightsIndexService.GetCostAndUsage\'), \'ResultsByTime\');\r\n\r\n	}\r\n\r\n};\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n\r\n	return JSON.stringify(AWS.getCostAndUsage());\r\n\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS Billing ] ERROR: \' + error);\r\n\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get raw data on the daily costs by service.','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','5bfda2617dfc43edbe524a5c44b39f18','0','2','0'),
('45522','21','','10582','Get monthly costs','aws.get.monthly.costs','0s;h9','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.params[\'auth_type\'] = \'role_base\';\r\n				var request = new HttpRequest();\r\n				if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n					request.setProxy(AWS.params.proxy);\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n				var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n				if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n					throw \'Error getting IMDSv2 session token.\';\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n				var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n				if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n					throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n				}\r\n\r\n				credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n				if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n					throw \'Error getting security credentials from instance metadata.\';\r\n				}\r\n\r\n				try {\r\n					credentials = JSON.parse(credentials);\r\n				}\r\n				catch (error) {\r\n					throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n				}\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			case \'assume_role\':\r\n				AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n\r\n				role_arn_regex = /role\\/(.+)$/;\r\n\r\n				var payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': AWS.params.role_arn.match(role_arn_regex)[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'POST\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'region\', \'month\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n\r\n		today = new Date();\r\n		AWS.params.end_date = today.toDateString();\r\n		month = today.getMonth();\r\n		today.setMonth(month - params.month);\r\n		AWS.params.start_time = new Date(today.getFullYear(), today.getMonth()).toDateString();\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n\r\n	},\r\n\r\n	request: function (method, region, service, params, data, target) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n		else {\r\n			data = JSON.stringify(data);\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\'),\r\n			canonical_uri = \'/\',\r\n			host = service + \'.\' + region + \'.amazonaws.com\',\r\n			canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n			signed_headers = \'content-encoding;host;x-amz-date\',\r\n			canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/x-amz-json-1.1\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'X-Amz-Target: \' + target);\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS Billing ] Sending request: \' + url);\r\n		response = request.post(url, data);\r\n		Zabbix.log(4, \'[ AWS Billing ] Received response with the status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with the status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			throw \'Failed to parse the response received from AWS API. Check debug log for more information.\';\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	getDimensionValues: function () {\r\n		var body_raw_dimension = {\r\n			\'TimePeriod\': {\r\n				\'Start\': AWS.params.start_time,\r\n				\'End\': AWS.params.end_date\r\n			},\r\n			\'Dimension\': \'SERVICE\'\r\n		};\r\n		return AWS.getField(AWS.request(\'POST\', AWS.params.region, \'ce\', \'\', body_raw_dimension, \'AWSInsightsIndexService.GetDimensionValues\'), \'DimensionValues\');\r\n\r\n	},\r\n\r\n	getCostMonth: function () {\r\n		var body_raw_cost = {\r\n			\'TimePeriod\': {\r\n				\'Start\': AWS.params.start_time,\r\n				\'End\': AWS.params.end_date\r\n			},\r\n			\'Granularity\': \'MONTHLY\',\r\n			\'Metrics\': [\'BlendedCost\']\r\n		};\r\n		result = AWS.getField(AWS.request(\'POST\', AWS.params.region, \'ce\', \'\', body_raw_cost, \'AWSInsightsIndexService.GetCostAndUsage\'), \'ResultsByTime\');\r\n\r\n		return result.map(function (data) {\r\n			return {\r\n				\'amount\': AWS.getField(data, \'Total.BlendedCost.Amount\'),\r\n				\'unit\': AWS.getField(data, \'Total.BlendedCost.Unit\'),\r\n				\'month\': AWS.getField(data, \'TimePeriod.Start\').slice(0, 7)\r\n			};\r\n		});\r\n	},\r\n\r\n	getCostMonthService: function () {\r\n		var body_raw_cost = {\r\n			\'TimePeriod\': {\r\n				\'Start\': AWS.params.start_time,\r\n				\'End\': AWS.params.end_date\r\n			},\r\n			\'DimensionValues\': AWS.getDimensionValues(),\r\n			\'GroupBy\': [\r\n				{\r\n					\'Type\': \'DIMENSION\',\r\n					\'Key\': \'SERVICE\'\r\n				}\r\n			],\r\n			\'Granularity\': \'MONTHLY\',\r\n			\'Metrics\': [\'BlendedCost\']\r\n		};\r\n		MetricData = AWS.getField(AWS.request(\'POST\', AWS.params.region, \'ce\', \'\', body_raw_cost, \'AWSInsightsIndexService.GetCostAndUsage\'), \'ResultsByTime\');\r\n		var services = [];\r\n		MetricData.forEach(function (data) {\r\n			month = AWS.getField(data, \'TimePeriod.Start\').slice(0, 7);\r\n			groups = AWS.getField(data, \'Groups\');\r\n			groups.forEach(function (group) {\r\n				group.month = month;\r\n				services.push(group);\r\n			})\r\n		});\r\n\r\n		return services;\r\n\r\n	}\r\n\r\n};\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n\r\n	monthly_costs = AWS.getCostMonth();\r\n	monthly_service_costs = AWS.getCostMonthService();\r\n\r\n	return JSON.stringify({ monthly_costs, monthly_service_costs });\r\n\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS Billing ] ERROR: \' + error);\r\n\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get raw data on the monthly costs by service.','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','7139ce562d3c439e9686ad5b17ed0f1c','0','2','0'),
('45529','21','','10583','Get alarms data','aws.ecs.get_alarms','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.params[\'auth_type\'] = \'role_base\';\r\n				var request = new HttpRequest();\r\n				if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n					request.setProxy(AWS.params.proxy);\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n				var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n				if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n					throw \'Error getting IMDSv2 session token.\';\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n				var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n				if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n					throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n				}\r\n\r\n				credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n				if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n					throw \'Error getting security credentials from instance metadata.\';\r\n				}\r\n\r\n				try {\r\n					credentials = JSON.parse(credentials);\r\n				}\r\n				catch (error) {\r\n					throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n				}\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			case \'assume_role\':\r\n				AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n\r\n				role_arn_regex = /role\\/(.+)$/;\r\n\r\n				var payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': AWS.params.role_arn.match(role_arn_regex)[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'region\', \'cluster_name\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	request: function (method, region, service, params, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\'),\r\n			host = service + \'.\' + region + \'.amazonaws.com\',\r\n			canonical_uri = \'/\',\r\n			canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n			signed_headers = \'content-encoding;host;x-amz-date\',\r\n			canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS ECS ] Sending request: \' + url);\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ AWS ECS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			try {\r\n				response = JSON.parse(XML.toJson(response));\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	getAlarms: function () {\r\n		var payload = {\r\n			\'Action\': \'DescribeAlarms\',\r\n			\'Version\': \'2010-08-01\',\r\n			\'MaxRecords\': 100\r\n		},\r\n			result = [];\r\n\r\n		while (payload.NextToken !== \'\') {\r\n			var alarms = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload)), \'DescribeAlarmsResponse.DescribeAlarmsResult\');\r\n			payload.NextToken = alarms.NextToken || \'\';\r\n			alarms_list = AWS.getField(alarms, \'MetricAlarms\');\r\n\r\n			if (!Array.isArray(alarms_list))\r\n				alarms_list = [alarms_list];\r\n			alarms_list.forEach(function (alarm) {\r\n				var dimensions = alarm.Dimensions;\r\n\r\n				Zabbix.log(4, \'[ AWS ECS ] dimensions: \' + JSON.stringify(dimensions));\r\n				if (Array.isArray(alarm.Metrics)) {\r\n					alarm.Metrics.forEach(function (metric) {\r\n						if (typeof metric.MetricStat === \'object\' && metric.MetricStat !== null\r\n							&& typeof metric.MetricStat.Metric === \'object\' && metric.MetricStat.Metric !== null\r\n							&& Array.isArray(metric.MetricStat.Metric.Dimensions)) {\r\n							dimensions = dimensions.concat(metric.MetricStat.Metric.Dimensions);\r\n						}\r\n					});\r\n				}\r\n				for (var i in dimensions) {\r\n					if (dimensions[i].Name === \'ClusterName\' && dimensions[i].Value === AWS.params.cluster_name) {\r\n						result.push(alarm);\r\n						break;\r\n					}\r\n				}\r\n			});\r\n		}\r\n\r\n		return result;\r\n	}\r\n}\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n\r\n	return JSON.stringify(AWS.getAlarms());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS ECS ] ERROR: \' + error);\r\n\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get alarms data.\r\nDescribeAlarms API method: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','9aefed8b23ee41a7941e41f33fc95ebe','0','2','0'),
('45530','21','','10583','Get cluster services','aws.ecs.get_cluster_services','5m','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.params[\'auth_type\'] = \'role_base\';\r\n				var request = new HttpRequest();\r\n				if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n					request.setProxy(AWS.params.proxy);\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n				var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n				if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n					throw \'Error getting IMDSv2 session token.\';\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n				var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n				if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n					throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n				}\r\n\r\n				credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n				if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n					throw \'Error getting security credentials from instance metadata.\';\r\n				}\r\n\r\n				try {\r\n					credentials = JSON.parse(credentials);\r\n				}\r\n				catch (error) {\r\n					throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n				}\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			case \'assume_role\':\r\n				AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n\r\n				role_arn_regex = /role\\/(.+)$/;\r\n\r\n				var payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': AWS.params.role_arn.match(role_arn_regex)[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload)), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'region\', \'cluster_name\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n	},\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	request: function (method, region, service, params, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\'),\r\n			canonical_uri = \'/\',\r\n			host = service + \'.\' + region + \'.amazonaws.com\',\r\n			canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n			signed_headers = \'content-encoding;host;x-amz-date\',\r\n			canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'x-amz-content-sha256:\' + sha256(data));\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/x-www-form-urlencoded\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS ECS ] Sending request: \' + url);\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ AWS ECS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			try {\r\n				response = JSON.parse(XML.toJson(response));\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	listServices: function () {\r\n		var payload = {\r\n			\'Action\': \'ListServices\',\r\n			\'Version\': \'2014-11-13\',\r\n			\'cluster\': AWS.params.cluster_name\r\n		},\r\n			services = [];\r\n\r\n		ECSClusters_Services = AWS.getField(AWS.request(\'GET\', AWS.params.region, \'ecs\', AWS.prepareParams(payload)), \'ListServicesResponse.ListServicesResult.serviceArns\');\r\n\r\n		for (k in ECSClusters_Services) {\r\n			id = ECSClusters_Services[k];\r\n\r\n			json = {};\r\n			input = id.split(AWS.params.cluster_name + \'/\');\r\n			for (var i = 1; i < input.length; i += 2) {\r\n				json[input[i]] = input[i + 1];\r\n			}\r\n			services.push({\r\n				\'service_name\': input[1],\r\n			});\r\n		}\r\n\r\n		if (Array.isArray(services))\r\n			return services;\r\n		else\r\n			return [services];\r\n	}\r\n};\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n	return JSON.stringify(AWS.listServices());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS ECS ] ERROR: \' + error);\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get cluster services.\r\nFull metrics list related to ECS: https://docs.aws.amazon.com/AmazonECS/latest/userguide/metrics-dimensions.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','fa8f1dc24615438e98cbad686d40eaf7','0','2','0'),
('45531','21','','10583','Get cluster metrics','aws.ecs.get_metrics','0s;m/1','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	request_period: 600,\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.params[\'auth_type\'] = \'role_base\';\r\n				var request = new HttpRequest();\r\n				if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n					request.setProxy(AWS.params.proxy);\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n				var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n				if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n					throw \'Error getting IMDSv2 session token.\';\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n				var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n				if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n					throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n				}\r\n\r\n				credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n				if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n					throw \'Error getting security credentials from instance metadata.\';\r\n				}\r\n\r\n				try {\r\n					credentials = JSON.parse(credentials);\r\n				}\r\n				catch (error) {\r\n					throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n				}\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			case \'assume_role\':\r\n				AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n\r\n				role_arn_regex = /role\\/(.+)$/;\r\n\r\n				var payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': AWS.params.role_arn.match(role_arn_regex)[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'region\', \'cluster_name\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n	},\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareRecursive: function (prefix, param) {\r\n		var result = {};\r\n\r\n		if (typeof param === \'object\') {\r\n			if (Array.isArray(param)) {\r\n				param.forEach(function (value, index) {\r\n					var nested = AWS.prepareRecursive(prefix + \'.member.\' + (index + 1), value);\r\n					Object.keys(nested).forEach(function (key) {\r\n						result[key] = nested[key];\r\n					});\r\n				});\r\n			}\r\n			else {\r\n				Object.keys(param).forEach(function (k) {\r\n					var nested = AWS.prepareRecursive(prefix + \'.\' + k, param[k]);\r\n					Object.keys(nested).forEach(function (key) {\r\n						result[key] = nested[key];\r\n					});\r\n				});\r\n			}\r\n		}\r\n		else {\r\n			result[prefix] = param;\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	renderPayload: function (period, cluster_name) {\r\n		var metrics_list = [\r\n			\'ContainerInstanceCount:Count\',\r\n			\'ServiceCount:Count\',\r\n			\'CpuReserved:None\',\r\n			\'CpuUtilized:None\',\r\n			\'MemoryReserved:Megabytes\',\r\n			\'MemoryUtilized:Megabytes\',\r\n			\'NetworkRxBytes:Bytes/Second\',\r\n			\'NetworkTxBytes:Bytes/Second\',\r\n			\'StorageReadBytes:Bytes\',\r\n			\'StorageWriteBytes:Bytes\',\r\n			\'TaskCount:Count\'\r\n		];\r\n\r\n		var metric_payload = [];\r\n		metrics_list.forEach(function (metric) {\r\n			var parts = metric.split(\':\', 2);\r\n			var name = parts[0].replace(/[^a-zA-Z0-9]/g, \'\');\r\n			metric_payload.push({\r\n				\'Id\': name.charAt(0).toLowerCase() + name.slice(1),\r\n				\'MetricStat\': {\r\n					\'Metric\': {\r\n						\'MetricName\': parts[0],\r\n						\'Namespace\': \'ECS/ContainerInsights\',\r\n						\'Dimensions\': [\r\n							{\r\n								\'Name\': \'ClusterName\',\r\n								\'Value\': cluster_name\r\n							}\r\n						]\r\n					},\r\n					\'Period\': period,\r\n					\'Stat\': \'Average\',\r\n					\'Unit\': parts[1]\r\n				}\r\n			});\r\n		});\r\n\r\n		return metric_payload;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	request: function (method, region, service, params, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\'),\r\n			host = service + \'.\' + region + \'.amazonaws.com\',\r\n			canonical_uri = \'/\',\r\n			canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n			signed_headers = \'content-encoding;host;x-amz-date\',\r\n			canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS ECS  ] Sending request: \' + url);\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ AWS ECS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			try {\r\n				response = JSON.parse(XML.toJson(response));\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	getMetricsData: function () {\r\n		var timestamp = new Date().getTime(),\r\n			MetricData = [],\r\n			CPUUtilization,\r\n			MemoryUtilization,\r\n			DiskUtilization,\r\n			obj = {},\r\n			metrics = [\'CpuReserved\', \'CpuUtilized\', \'MemoryReserved\', \'MemoryUtilized\'],\r\n			end_time = new Date(timestamp).toISOString().replace(/\\.\\d+Z/, \'Z\'),\r\n			start_time = new Date(timestamp - AWS.request_period * 1000).toISOString().replace(/\\.\\d+Z/, \'Z\'),\r\n			payload = AWS.prepareRecursive(\'MetricDataQueries\', AWS.renderPayload(AWS.request_period, AWS.params.cluster_name));\r\n\r\n		payload[\'Action\'] = \'GetMetricData\';\r\n		payload[\'Version\'] = \'2010-08-01\';\r\n		payload[\'StartTime\'] = start_time;\r\n		payload[\'EndTime\'] = end_time;\r\n		payload[\'ScanBy\'] = \'TimestampDescending\';\r\n\r\n		result = AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload));\r\n		MetricData = AWS.getField(result, \'GetMetricDataResponse.GetMetricDataResult.MetricDataResults\')\r\n\r\n		MetricData.forEach(function (id) {\r\n			for (i in metrics) {\r\n				if (AWS.getField(id, \'Label\') === metrics[i]) {\r\n					obj[metrics[i]] = AWS.getField(id, \'Values\');\r\n				}\r\n			}\r\n		});\r\n		CPUUtilization = Math.abs(obj.CpuUtilized * 100 / obj.CpuReserved);\r\n		MemoryUtilization = Math.abs(obj.MemoryUtilized * 100 / obj.MemoryReserved);\r\n		return ({ MetricData, MemoryUtilization, CPUUtilization, DiskUtilization });\r\n	}\r\n};\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n\r\n	return JSON.stringify(AWS.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS ECS ] ERROR: \' + error);\r\n\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','0',NULL,'Get cluster metrics.\r\nFull metrics list related to ECS: https://docs.aws.amazon.com/AmazonECS/latest/userguide/metrics-dimensions.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','f45389a638c645f8905dc69d6cafb8b3','0','2','0'),
('45544','21','','10583','[{#AWS.ECS.SERVICE.NAME}]: Get metrics','aws.ecs.services.get_metrics["{#AWS.ECS.SERVICE.NAME}"]','0s;m/5','0','0','0','4','','','','',NULL,NULL,'var AWS = {\r\n	params: {},\r\n	request_period: 600,\r\n	metadata: \'http://169.254.169.254/latest/\',\r\n\r\n	setParams: function (params) {\r\n		AWS.params[\'proxy\'] = params.proxy;\r\n		switch (AWS.getField(params, \'auth_type\')) {\r\n			case \'role_base\':\r\n				AWS.params[\'auth_type\'] = \'role_base\';\r\n				var request = new HttpRequest();\r\n				if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n					request.setProxy(AWS.params.proxy);\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token-ttl-seconds: 21600\');\r\n				var token = request.put(AWS.metadata + \'api/token\');\r\n\r\n				if (request.getStatus() !== 200 || token === null || token === \'\') {\r\n					throw \'Error getting IMDSv2 session token.\';\r\n				}\r\n				request.addHeader(\'X-aws-ec2-metadata-token: \' + token);\r\n				var IamRoleName = request.get(AWS.metadata + \'meta-data/iam/security-credentials\');\r\n\r\n				if (request.getStatus() !== 200 || IamRoleName === null || IamRoleName === \'\') {\r\n					throw \'Error getting security credentials from instance metadata. Role not found.\';\r\n				}\r\n\r\n				credentials = request.get(AWS.metadata + \'meta-data/iam/security-credentials/\' + encodeURI(IamRoleName));\r\n\r\n				if (request.getStatus() !== 200 || credentials === null || credentials === \'\') {\r\n					throw \'Error getting security credentials from instance metadata.\';\r\n				}\r\n\r\n				try {\r\n					credentials = JSON.parse(credentials);\r\n				}\r\n				catch (error) {\r\n					throw \'Failed to parse response received from instance metadata. Check debug log for more information.\';\r\n				}\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'Token\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			case \'assume_role\':\r\n				AWS.params[\'auth_type\'] = \'assume_role\';\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'sts_region\', \'role_arn\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n\r\n				role_arn_regex = /role\\/(.+)$/;\r\n\r\n				var payload = {\r\n					\'Action\': \'AssumeRole\',\r\n					\'Version\': \'2011-06-15\',\r\n					\'RoleArn\': AWS.params.role_arn,\r\n					\'RoleSessionName\': AWS.params.role_arn.match(role_arn_regex)[1] + \'Session\',\r\n				};\r\n\r\n				credentials = AWS.getField(AWS.request(\'GET\', AWS.params.sts_region, \'sts\', AWS.prepareParams(payload), \'\'), \'AssumeRoleResponse.AssumeRoleResult.Credentials\');\r\n\r\n				[\'AccessKeyId\', \'SecretAccessKey\', \'SessionToken\'].forEach(function (field) {\r\n					if (typeof credentials !== \'object\' || typeof credentials[field] === \'undefined\' || credentials[field] === \'\') {\r\n						throw \'Required credentials are not set: "\' + field + \'".\';\r\n					};\r\n					AWS.params[field] = credentials[field];\r\n				});\r\n				break;\r\n			default:\r\n				AWS.params[\'auth_type\'] = \'access_key\';\r\n				[\'AccessKeyId\', \'SecretAccessKey\'].forEach(function (field) {\r\n					if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n						throw \'Required param is not set: "\' + field + \'".\';\r\n					}\r\n					AWS.params[field] = params[field];\r\n				});\r\n		}\r\n		[\'region\', \'cluster_name\', \'service_name\'].forEach(function (field) {\r\n			if (typeof params !== \'object\' || typeof params[field] === \'undefined\' || params[field] === \'\') {\r\n				throw \'Required param is not set: "\' + field + \'".\';\r\n			}\r\n			AWS.params[field] = params[field];\r\n		});\r\n	},\r\n\r\n	getField: function (data, path) {\r\n		var steps = path.split(\'.\');\r\n		for (var i = 0; i < steps.length; i++) {\r\n			var step = steps[i];\r\n			if (typeof data !== \'object\' || typeof data[step] === \'undefined\') {\r\n				throw \'Required field was not found: \' + path;\r\n			}\r\n\r\n			data = data[step];\r\n		}\r\n\r\n		return data;\r\n	},\r\n\r\n	sign: function (key, message) {\r\n		var hex = hmac(\'sha256\', key, message);\r\n\r\n		if ((hex.length % 2) === 1) {\r\n			throw \'Invalid length of a hex string!\';\r\n		}\r\n\r\n		var result = new Int8Array(hex.length / 2);\r\n		for (var i = 0, b = 0; i < hex.length; i += 2, b++) {\r\n			result[b] = parseInt(hex.substring(i, i + 2), 16);\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	prepareRecursive: function (prefix, param) {\r\n		var result = {};\r\n\r\n		if (typeof param === \'object\') {\r\n			if (Array.isArray(param)) {\r\n				param.forEach(function (value, index) {\r\n					var nested = AWS.prepareRecursive(prefix + \'.member.\' + (index + 1), value);\r\n					Object.keys(nested).forEach(function (key) {\r\n						result[key] = nested[key];\r\n					});\r\n				});\r\n			}\r\n			else {\r\n				Object.keys(param).forEach(function (k) {\r\n					var nested = AWS.prepareRecursive(prefix + \'.\' + k, param[k]);\r\n					Object.keys(nested).forEach(function (key) {\r\n						result[key] = nested[key];\r\n					});\r\n				});\r\n			}\r\n		}\r\n		else {\r\n			result[prefix] = param;\r\n		}\r\n\r\n		return result;\r\n	},\r\n\r\n	renderPayload: function (period, cluster_name, service_name) {\r\n		var metrics_list = [\r\n			\'CpuReserved:None:ECS/ContainerInsights\',\r\n			\'CpuUtilized:None:ECS/ContainerInsights\',\r\n			\'CPUUtilization:Percent:AWS/ECS\',\r\n			\'MemoryUtilization:Percent:AWS/ECS\',\r\n			\'MemoryReserved:Megabytes:ECS/ContainerInsights\',\r\n			\'MemoryUtilized:Megabytes:ECS/ContainerInsights\',\r\n			\'NetworkRxBytes:Bytes/Second:ECS/ContainerInsights\',\r\n			\'NetworkTxBytes:Bytes/Second:ECS/ContainerInsights\',\r\n			\'StorageReadBytes:Bytes:ECS/ContainerInsights\',\r\n			\'StorageWriteBytes:Bytes:ECS/ContainerInsights\',\r\n			\'DeploymentCount:Count:ECS/ContainerInsights\',\r\n			\'TaskSetCount:Count:ECS/ContainerInsights\',\r\n			\'DesiredTaskCount:Count:ECS/ContainerInsights\',\r\n			\'PendingTaskCount:Count:ECS/ContainerInsights\',\r\n			\'RunningTaskCount:Count:ECS/ContainerInsights\',\r\n			\'EphemeralStorageReserved:Gigabytes:ECS/ContainerInsights\',\r\n			\'EphemeralStorageUtilized:Gigabytes:ECS/ContainerInsights\'\r\n		];\r\n\r\n		var metric_payload = [];\r\n		metrics_list.forEach(function (metric) {\r\n			var parts = metric.split(\':\', 3);\r\n			var name = parts[0].replace(/[^a-zA-Z0-9]/g, \'\');\r\n			metric_payload.push({\r\n				\'Id\': name.charAt(0).toLowerCase() + name.slice(1),\r\n				\'MetricStat\': {\r\n					\'Metric\': {\r\n						\'MetricName\': parts[0],\r\n						\'Namespace\': parts[2],\r\n						\'Dimensions\': [\r\n							{\r\n								\'Name\': \'ClusterName\',\r\n								\'Value\': cluster_name\r\n							}\r\n							,\r\n							{\r\n								\'Name\': \'ServiceName\',\r\n								\'Value\': service_name\r\n							}\r\n						]\r\n					},\r\n					\'Period\': period,\r\n					\'Stat\': \'Average\',\r\n					\'Unit\': parts[1]\r\n				}\r\n			});\r\n		});\r\n\r\n		return metric_payload;\r\n	},\r\n\r\n	prepareParams: function (params) {\r\n		var result = [];\r\n\r\n		Object.keys(params).sort().forEach(function (key) {\r\n			if (typeof params[key] !== \'object\') {\r\n				result.push(key + \'=\' + encodeURIComponent(params[key]));\r\n			}\r\n			else {\r\n				result.push(prepareObject(key, params[key]));\r\n			}\r\n		});\r\n\r\n		return result.join(\'&\');\r\n	},\r\n\r\n	request: function (method, region, service, params, data) {\r\n		if (typeof data === \'undefined\' || data === null) {\r\n			data = \'\';\r\n		}\r\n\r\n		var amzdate = (new Date()).toISOString().replace(/\\.\\d+Z/, \'Z\').replace(/[-:]/g, \'\'),\r\n			date = amzdate.replace(/T\\d+Z/, \'\'),\r\n			host = service + \'.\' + region + \'.amazonaws.com\',\r\n			canonical_uri = \'/\',\r\n			canonical_headers = \'content-encoding:amz-1.0\\n\' + \'host:\' + host + \'\\n\' + \'x-amz-date:\' + amzdate + \'\\n\',\r\n			signed_headers = \'content-encoding;host;x-amz-date\',\r\n			canonical_request = method + \'\\n\' + canonical_uri + \'\\n\' + params + \'\\n\' + canonical_headers + \'\\n\' + signed_headers + \'\\n\' + sha256(data),\r\n			credential_scope = date + \'/\' + region + \'/\' + service + \'/\' + \'aws4_request\',\r\n			request_string = \'AWS4-HMAC-SHA256\' + \'\\n\' + amzdate + \'\\n\' + credential_scope + \'\\n\' + sha256(canonical_request),\r\n			key = AWS.sign(\'AWS4\' + AWS.params.SecretAccessKey, date),\r\n			key = AWS.sign(key, region),\r\n			key = AWS.sign(key, service),\r\n			key = AWS.sign(key, \'aws4_request\'),\r\n			request = new HttpRequest(),\r\n			url = \'https://\' + host + canonical_uri + \'?\' + params;\r\n\r\n		if (typeof AWS.params.proxy !== \'undefined\' && AWS.params.proxy !== \'\') {\r\n			request.setProxy(AWS.params.proxy);\r\n		}\r\n		request.addHeader(\'x-amz-date: \' + amzdate);\r\n		request.addHeader(\'Accept: application/json\');\r\n		request.addHeader(\'Content-Type: application/json\');\r\n		request.addHeader(\'Content-Encoding: amz-1.0\');\r\n		request.addHeader(\'Authorization: \' + \'AWS4-HMAC-SHA256 Credential=\' + AWS.params.AccessKeyId + \'/\' + credential_scope + \', \' + \'SignedHeaders=\' + signed_headers + \', \' + \'Signature=\' + hmac(\'sha256\', key, request_string));\r\n		if (AWS.params.auth_type === \'role_base\' || (AWS.params.auth_type === \'assume_role\' & !params.includes(\'AssumeRole\'))) {\r\n			request.addHeader(\'X-Amz-Security-Token: \' + (AWS.params.auth_type === \'role_base\' ? AWS.params.Token : AWS.params.SessionToken));\r\n		}\r\n\r\n		Zabbix.log(4, \'[ AWS ECS  ] Sending request: \' + url);\r\n		response = request.get(url);\r\n		Zabbix.log(4, \'[ AWS ECS ] Received response with status code \' + request.getStatus() + \': \' + response);\r\n\r\n		if (request.getStatus() !== 200) {\r\n			throw \'Request failed with status code \' + request.getStatus() + \': \' + response;\r\n		}\r\n\r\n		try {\r\n			response = JSON.parse(response);\r\n		}\r\n		catch (error) {\r\n			try {\r\n				response = JSON.parse(XML.toJson(response));\r\n			}\r\n			catch (error) {\r\n				throw \'Failed to parse response received from AWS CloudWatch API. Check debug log for more information.\';\r\n			}\r\n		}\r\n\r\n		return response;\r\n	},\r\n\r\n	getMetricsData: function () {\r\n		var timestamp = new Date().getTime(),\r\n			end_time = new Date(timestamp).toISOString().replace(/\\.\\d+Z/, \'Z\'),\r\n			start_time = new Date(timestamp - AWS.request_period * 1000).toISOString().replace(/\\.\\d+Z/, \'Z\'),\r\n			payload = AWS.prepareRecursive(\'MetricDataQueries\', AWS.renderPayload(AWS.request_period, AWS.params.cluster_name, AWS.params.service_name));\r\n\r\n		payload[\'Action\'] = \'GetMetricData\';\r\n		payload[\'Version\'] = \'2010-08-01\';\r\n		payload[\'StartTime\'] = start_time;\r\n		payload[\'EndTime\'] = end_time;\r\n		payload[\'ScanBy\'] = \'TimestampDescending\';\r\n\r\n		result = AWS.request(\'GET\', AWS.params.region, \'monitoring\', AWS.prepareParams(payload));\r\n		MetricData = AWS.getField(result, \'GetMetricDataResponse.GetMetricDataResult.MetricDataResults\')\r\n\r\n		return MetricData;\r\n	}\r\n};\r\n\r\ntry {\r\n	AWS.setParams(JSON.parse(value));\r\n\r\n	return JSON.stringify(AWS.getMetricsData());\r\n}\r\ncatch (error) {\r\n	error += (String(error).endsWith(\'.\')) ? \'\' : \'.\';\r\n	Zabbix.log(3, \'[ AWS ECS ] ERROR: \' + error);\r\n\r\n	return JSON.stringify({ \'error\': error });\r\n}','','0','','','','','2',NULL,'Get metrics of ESC services.\r\nFull metrics list related to ECS : https://docs.aws.amazon.com/ecs/index.html','0','30d','0','',NULL,'15s','','','','200','1','0','','','0','0','0','0','0','0','0','d12aae43f0f3446d96e2141a0bf303b8','0','2','0'),
