Featured Content
Recent Content
Principal Engineer, Test
We are looking for The Principal Engineer, Test responsible for leading the test strategy, automation, and validation efforts to ensure the highest quality standards. Role is based in Hyderabad, India. To apply clink on this link; https://sciencelogic.com/job-listing?id=67774845Views0likes0CommentsPlease anyone can help with DB2 HADR credentials - how to ?
Please as there is no documentation does anyone successfully use DB2 HADR powerpack ? For interconnection, do I need ssh + db2 credentials combination ? Should I define some DB2 credential and then mapped to SSH credential within new Soap credential ? how to map ? Or do I need only Soap with mapped ssh id header ? Thank you very much.63Views0likes8CommentsHow to select specific series in a dashboard graph for AIX Network Stats
We are showing the "Output Packets" metric from the "AIX: Network Stats" DA in a dashboard but we want to only show the network interface named "en1" (and not en0 etc), is this possible in a dashboard widget ? From the Device page if you look at this metric you can tick/select which interface you want to see or select the interface via "Options -> Series Selection" and we want to do the same from the Dashboard widget. Any advice really appreciated as I am struggling to find how to do this, it works ok from a Linux DA using context driven dashboard as the metrics are stored under "Interfaces" rather than "Devices" but for AIX this is not the case.14Views0likes1CommentSQL Server discovery issue
I'm trying to get a SQL Server instance discovered by SL1 which refuses to even determine SQL Server is installed. All the discovery does is return this message: SQL Server discovery returned empty from SqlAppCollectionInstance data collector The Windows device seems to have no issues. SQLPS is installed and working. SQL Server permissions have been granted as required (but it doesn't appear to be getting as far as logging in to the instance - it simply doesn't recognize SQL Server is installed). I've tried rerunning winrm_configuration_wizard_v3.4.ps1, which worked for another machine that was returning the same sort of error. I've tried removing the SQL DAs and realigning via pre-defined template & credentials (which work perfectly fine for other servers in the domain). I'd rather not have to delete the Windows device and perform complete discovery from scratch; this shouldn't be necessary. Ideas? Full log from discovery session: 1. Collector Task session registered... 2. Collector is working... 3. Collector is working... 4. Collector is working... 5. Collector is working... 6. Collector is working... 7. Collector is working... 8. Process Started on Collector 9. Collecting for App ID: 1270 from Device ID: 192379 on Collector ID: 359 10. Python version 3.6.8 (default, May 24 2024, 06:39:46) 11. [GCC 8.5.0 20210514 (Red Hat 8.5.0-21.0.1)] 12. Assigned collector: 359; Root collector: None; This collector: 359 13. Collector affinity: [4] Root device collector affinity mode specified, device does not have a DCM root device. Using assigned collector. 14. Skipping scheduling of non-collectable Discovery and Label (Config Group) objects: [12550, 12551] 15. Object 12549 is enabled for collection 16. Object 12552 is enabled for collection 17. Using credential: 1216 18. Created an app object: AID: 1270 [SNIPPET CONFIG] / DID: 192379 19. Created a device object: 192379 20. Will use 10.155.210.18 as IP for device 21. Precollect for app returned True 22. Oids to collect: 23. GROUP: 1 obj_id: 12549 OID: name NAME: Name 24. GROUP: 1 obj_id: 12552 OID: unique_id NAME: ID 25. Starting collect 26. Running Snippet 1458 27. /opt/em7/lib/python3/requests/__init__.py:104: RequestsDependencyWarning: urllib3 (1.26.6) or chardet (5.0.0)/charset_normalizer (2.0.4) doesn't match a supported version! 28. RequestsDependencyWarning) 29. Reading config as a prod env 30. Reading config as a prod env 31. powershell_pywinrm_transport.connect: service: HTTP, target device: 10.155.210.18 32. callPywinrmFunction: processing output and error for Python 3 33. SqlAppCollectionInstance:_collect_data: No SQL Server instances found (standalone or clustered) 34. Snippet 1458 ran successfully 35. collected objects: {1: {12549: {'object_type': 'DynamicAppObject', 'enum': '', 'error_msg': '', 'factor': '', 'monitor_config': 0, 'name': 'Name', 'oid': 'name', 'oid_time': '0', 'oid_type': 1458, 'class': 10, 'prime': 0, 'result': [], 'std_enable': 0, 'std_min': 0, 'string_type': 0, 'trend_col': '', 'wm_walk_length': '', 'formula': ''}, 12552: {'object_type': 'DynamicAppObject', 'enum': '', 'error_msg': '', 'factor': '', 'monitor_config': 0, 'name': 'ID', 'oid': 'unique_id', 'oid_time': '0', 'oid_type': 1458, 'class': 10, 'prime': 0, 'result': [], 'std_enable': 0, 'std_min': 0, 'string_type': 0, 'trend_col': '', 'wm_walk_length': '', 'formula': ''}}} 36. AID: 1270 [SNIPPET CONFIG] / DID: 192379 thinks it was collected properly 37. AID: 1270 [SNIPPET CONFIG] / DID: 192379 had 0 bad oids (out of 1): [] 38. ================================================================================ 39. Ingestion Metadata 40. ================================================================================ 41. Collected: True 42. Collection time: 2.165022611618042 seconds 43. Found Collection Objects: [] 44. Number of Bad OIDS: [] 45. Error Message: N/A 46. Internal Alert 518: did: 192379, message: "[App ID 1270]: SQL Server discovery returned empty from SqlAppCollectionInstance data collector." 47. ================================================================================ 48. Raw Ingested Data: 49. ================================================================================ 50. Group RawIndex ObjID ObjName RawValue ElapsedTime(ms) 51. ------- ---------- ------- --------- ------------- ----------------- 52. 1 N/A 12552 ID -- NO DATA -- N/A 53. 1 N/A 12549 Name -- NO DATA -- N/A 54. ================================================================================ 55. Configuration Data for Storage: 56. ================================================================================ 57. Group Index ObjID ObjName Value PrevValue Added Changed Removed 58. ------- ------- ------- --------- ------------- --------------- ------- --------- --------- 59. 1 N/A 12552 ID -- NO DATA -- -- UNCHANGED -- 60. 1 N/A 12549 Name -- NO DATA -- -- UNCHANGED -- 61. ================================================================================ 62. Configuration Change Alerts: 63. ================================================================================ 64. -- NO CHANGE ALERTS -- 65. ================================================================================ 66. Processing app alerts... 67. ================================================================================ 68. Triggered alerts: 69. 0 triggered 70. ================================================================================ 71. DCM Component Records extracted from Configuration Data: 72. ================================================================================ 73. ======================================== 74. Discovered component records: 75. ======================================== 76. device_name unique_identifier distinguished_name uuid guid previous_unique_ids organization class_identifier_1 class_identifier_2 mac_address availability 77. ------------- ------------------- -------------------- ------ ------ --------------------- -------------- -------------------- -------------------- ------------- -------------- 78. ======================================== 79. Vanished components (by unique_id): 80. ======================================== 81. --NO VANISHED DEVICES-- 82. Dynamic App Execution Complete 83. /opt/em7/lib/python3/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography and will be removed in a future release. 84. from cryptography.hazmat.backends import default_backend 85. /opt/em7/lib/python3/requests/__init__.py:104: RequestsDependencyWarning: urllib3 (1.26.6) or chardet (5.0.0)/charset_normalizer (2.0.4) doesn't match a supported version! 86. RequestsDependencyWarning) 87. Process Completed on CollectorSolved35Views0likes2CommentsAP2 Dashboarding for "Web Content"
Hi All, I have a Web Content monitor that is aligned to a blank Virtual Device. I want to chart the metrics that are in the Web Content monitor (availability, page size, download speed) in an AP2 dashboard. I'm just trying to get an initial table setup, but will probably setup a line graph later. Right now no matter what I search for in "Metrics and Properties" on the left column, I can't seem to find the Web Content metrics. Does anyone have any tips? Dashboard metric naming seems to be all over the place for some out of the box things. On top of that, just using the basic "Vitals > Availability" doesn't return any data.17Views1like1CommentSNMP Performance OID parsing
We recently onboarded some Ubiquiti switches which ScienceLogic does not have a default pack for. I discovered that the "EdgeSwitch" mibs have relevant OIDs for performance metrics for these devices. One OID that we're interested in is "CPU Process Percent Utilization" (1.3.6.1.4.1.4413.1.1.1.1.4.8.1.3). The out of the box SNMP Performance Dynamic App Presentation is not able to parse the output of this OID, here's a sample: agentSwitchCpuProcessPercentageUtilization u'5 Sec ( 0.00%) 60 Sec ( 0.08%) 300 Sec ( 0.04%)' Is there any way to easily get this to display in an SNMP Performance DA chart, or do I have to use a Snippet DA and custom code to parse this output into an integer for display? Ideally I'd be able to use the 300 second average as this DA runs on a 5 minute polling cycle.21Views0likes1CommentChange collector for Dynamic App in device
We have this kind of issue Device is monitored with SNMP and also by Juniper Mist system. So actually there is first two separate devices in SL1. Because that device is a switch stack of for physical switches which also need to be discovered. The stacked devices discovery is pretty simple for us, we create component device for each physical device and get serials and firmware versions etc (CMDB requirements). But when we merge then this goes a bit messy. SNMP monitoring is done from a CUG in customer network, Mist connection is done from separate CUG which has access to Internet. All basic stuff is fine, but the component devices (those physical switches) will have interesting situation: the component device it self is mapped correctly to customer CUG, which is needed to get snmp access to that network DA will be aligned to backend CUG, the one which is used for connecting to Mist, and which of course does not have access to customer CUG/collector where the cache is stored. So, is there any way to force that DA to use same CUG/Collector that is seen in device? Logically in UI is shown the default, but DA alignment will choose the other one.43Views0likes4Comments12.3.0 GraphQL UI change broke GQL GET requests
Hi, I have made an RBA action that gets devices in a specific collector group, and then modifies the custom attribute information of those devices. In version 12.1.2, before our 12.3.0 upgrade, the action worked well. But after the upgrade my GQL GET query that retrieves the devices in the CUG has stopped working. Here is a snippet of the code: def getGQL(gql_get): json_data = json.dumps(gql_get) connection.request("GET", "/gql", json_data, headers) response = connection.getresponse() gql_data = json.loads(response.read().decode()) logger.debug("gql_data: %s" % gql_data) # Returns: gql_data: {'errors': [{'message': 'Must provide query string.'}]} return gql_data # Get devices that are in Retire CUG query_ret_template = """query retiredDevices($deviceCount:Int, $cursor:String){ devices(first: $deviceCount, after: $cursor, search: {collectorGroup: {has: {name: {eq: "Retired"}}}}) { pageInfo {hasNextPage matchCount} edges {node {id} cursor}}}""" operation = "retiredDevices" cursor = "" pages_remaining = True while pages_remaining == True: variables = json.dumps({"deviceCount": 500, "cursor": cursor}) query_ret = {"query": query_ret_template, "operationName": operation, "variables": variables} gql_ret_dev_data = getGQL(query_ret) gql_ret_data = gql_ret_dev_data["data"] # Returns: An Exception has been raised on line 81: 'data'; Exception Type: <class 'KeyError'> # Add device IDs to a list [ret_dev_list.append(node.get("node",{}).get("id")) for node in gql_ret_data["devices"]["edges"]] if gql_ret_data["devices"]["pageInfo"]["hasNextPage"] == True: cursor = gql_ret_data["devices"]["edges"][-1]["cursor"] logger.debug("Continue loop. Retired device pages remaining: True") else: pages_remaining = False logger.debug("Stop loop. Pages remaining: False") The problem seems to be the getGQL function. After the 12.3.0 upgrade this doesn't seem to execute the query at all, and is just returning errors. The query is working fine when executing it from the GraphQL UI side. Any ideas on how to get this working again?Solved30Views1like1Comment