SlideShare a Scribd company logo
UEMB200: Next Generation of Endpoint
Management Architecture and Discovery Services
Rex McMillan & Lester Memmott
Agenda
§ Discovery Services Overview
§ Install & Configuration
§ Data Object Model
§ API Overview
§ API Security
§ Inserting Data
§ Retrieving Data
§ Misc
§ Configuration Settings
§ Logs
§ Script Scheduler
§ Performance Stats
Discovery Framework
Discovery
Providers
Discovery Service Discovery
Consumers
LDMS Inventory
iQuate
AD
SNMP
ARP/WAP
nmap
File Import
B2B Connectors
Others…
REST
API
REST
API
Reconciliation
and
Normalization
Shared
DB
LDMS
Importer
ITxM
Importer
LDMS
DB
CMDB
Concorde
Importer Concorde
*Not all components implemented yet.
Workspaces
(config)
NoSQL vs SQL
https://azure.microsoft.com/en-us/documentation/articles/documentdb-nosql-vs-sql/
NoSQL
Wins
§ Enterprise Visibility
§ Reconciliation of different sources
§ Data normalization
§ Trend data
Uses of Discovery Services in LDMS 2017.1
1. Ivanti License Optimizer
§ Requires the purchase of License Optimizer
§ Concorde Core Control Agent installed separately
2. ServiceDesk Adhoc Queries (Windows Console)
3. ServiceDesk Importer (Windows Console)
4. ServiceDesk Adhoc Queries (Workspaces, disable by default)
5. …Also, write your own app to the Discovery Services odata API
LDMS & Discovery Services Architecture
LDMS
DB
( M S S Q L
C o m p u t e r
T a b l e s )
ldinv32
I n v e n t o r y
S c a n s
API
Reconciler
Normalizer D i s c o v e r y
D B
( J S O N i n
E l a s t i c S e a r c h )
Workspaces
SCNinqueue
(ldlscan)
scn2json
JSONinqueue
N o d e . j s
ldinv32,postcgi
IISorother
l d a p i ( I I S )
Windows
Console
W e b S e r v i c e s
( I I S ) & D B
D r i v e r s
DataServRESTAPI
SCANSinqueue
(DiscoveryStorage)
W o r k s p a c e s
D B
( M S S Q L )
Configuration
*Installed as sibling folder to ManagementSuite.
readme.txt has helpful notes.
Config Center
Discovery Web Api Url
Configuration
DataRetentionSettings
Note: Leave these blank.
It connects to localhost.
CollectorSettings
Only top item is enabled by default. You may
want to enable others to use discovery services.
SchedulerSettings
SchedulerSettings-Details
SchedulerSettings-Details
SchedulerSettings-Details
SchedulerSettings-Details
SchedulerSettings-Details
Logs
Logs
Logs
PerformanceStats
DiscoveryReconciliationRules
ManageConnectors
ActiveDirectoryDataCollector
ActiveDirectoryDataCollector
ActiveDirectoryDataCollector
ActiveDirectoryDataCollector
ActiveDirectoryDataCollector
IQuateDataCollector
IQuateDataCollector
Configure Inventory Service
On Core Server: Configure Services -> Inventory -> Advanced settings -> Discovery Storage
Data Object Model
§ Data is entered and retrieved as JSON documents
§ Includes: device info, system configuration, scheduler, etc
§ Nesting of objects is allowed
§ Can dynamically extend the schema at any time
§ Once a type is assigned to a property, it is fixed
§ Exception is metadata which is XML in OASIS format
§ XML Namespace Document for OData Version 4.0
§ http://docs.oasis-open.org/odata/ns/edm
§ https://localhost/discovery/api/v1/$metadata
§ In the system, information is maintained indicting where the data
came from and changes over time.
Minimal Device Data Example
{
"DeviceID": "{E54E1391-2BB8-0E48-B54D-BE99497358C5}",
"DiscoveryId": "AVgwRZjJCN2US9MUJEy8",
"DeviceName": "XPCOMP2",
"OS": {
"Version": "5.1",
"Name": "Microsoft Windows XP Professional"
},
"Network": {
"TCPIP": {
"Address": "10.16.227.239"
}
},
"System": {
"Model": "VMware Virtual Platform"
}
}
Logging Configuration Data Example
{
"level": "info",
"maxsize": 650000,
"maxFiles": 5,
"timestamp": true,
"consoleFormat": "%level%t%mainScript%->%source%: %message%",
"fileFormat": "%level%t%time% %pid% %source%: %message%",
"json": false,
"tailable": true,
"filename": "%AllUsersProfile%/LANDESK/Discovery/log/%scriptname%.log"
}
API Overview
§ Follows the LANDESK RESTful API Specification
§ RESTful Web API + OData
§ In production environments:
§ HTTPS Only, no HTTP
§ Authentication required
§ Compatible with any client that can GET/POST HTTPS
§ OAuth 2.0 Authentication
§ Postman for Chrome recommended for instructive &
troubleshooting purposes
Example URIs
§ https://localhost/discovery/api/v1/
§ https://localhost/discovery/api/v1/ping
§ https://localhost/discovery/api/v1/$metadata
§ https://localhost/discovery/api/v1/device
§ https://localhost/discovery/api/v1/redoc (From a web browser)
§ https://localhost/discovery/api/v1/reconrules
§ https://localhost/discovery/api/v1/reconrules/selected
§ https://localhost/discovery/api/v1/columnsets
§ https://localhost/discovery/api/v1/history/device
§ https://localhost/discovery/api/v1/config
§ https://localhost/discovery/api/v1/resources
§ https://localhost/discovery/api/v1/logs
§ https://localhost/discovery/api/v1/scheduledjobs
API Security
§ All requests done via HTTPS
§ Types of authentication
§ STS SAML (Old Method – Not Recommended)
§ Retrieve SAML token from: https://localhost/sts/isstoken
§ Use a JSON Viewer / formatter to “unescape” string
§ Include in Authorization header
§ Identity Server JWT (New Method – Recommended)
§ OAuth 2.0 Authentication
§ Include in Authorization header
§ Developer Mode (i.e. No authentication)
§ Authorization header still required but can be any string
§ Suggest use for lab or developer use, NOT production.
API Security - OAuth 2.0 Example in Postman
Show token details: https://jwt.io/
*Use with Caution. Not for
production environments.
Inserting Data
§ All data added has specified:
§ Type
§ Provider origin
§ POST https://localhost/discovery/api/v1/[type]/[provider]
§ type: type of data provided. e.g. device
§ provider: name of the provider posting data.
§ e.g. LDMS-hardware, LDMS-software
§ Body formatted as JSON document
Inserting Data (Cont)
§ Built-in LDMS Inventory Data Collectors
§ runCollectFromCore: Pull from LDMS DB
§ runCollectFromDiscoveryStorage: Pull from LDMS folder
§ runCollectFromSCN: Read SCN files from any folder
Inserting Data - POST Example
§ POST https://localhost/discovery/api/v1/device/providerexample
§ Body:
{
"DeviceID": "{2E08D59B-57C6-664F-8B2A-7302BC400C23}",
"Name": "LMEMMOTT-WIN7B",
"Type": "Workstation",
"Network": {
"TCPIP": {
"Address": "010.016.228.249"
}
}
}
Inserting Data - Another POST Example
§ POST https://localhost/discovery/api/v1/pizza/mypizzaprov
§ Body:
{
"Type": "Chicago",
"Size": "Large",
"Topping": "Pepperoni",
"Cheese": "Regular"
}
Inserting Data (Cont)
§ Data Normalization
§ Left-hand Rules: Change schema
§ Right-hand Rules: Format values
§ Data Reconciliation
§ Purpose: Is this a device the system has seen before?
§ If so, merge or replace
§ If not, add
§ If not enough data, reject
§ Rules based that are run in priority order
Retrieving Data
§ Data returned as JSON documents using HTTP GET
§ https://localhost/discovery/api/v1/device
§ Query interface supports:
§ Metadata
§ Select, Column Sets & Count
§ Filters
§ Pagination
§ Order By & Group By
§ Aggregation
§ Provider Priority Order
§ Historical Data
Retrieving Data (cont)
§ Data returned as JSON documents using HTTP GET
§ https://localhost/discovery/api/v1/device
§ Metadata
§ https://localhost/discovery/api/v1/$metadata
§ Select & Expand
§ https://localhost/discovery/api/v1/device?$select=DiscoveryId
§ https://localhost/discovery/api/v1/device?$select=Network
§ https://localhost/discovery/api/v1/device?$select=Network,OS
§ https://localhost/discovery/api/v1/device?$expand=Network,OS
§ Column Sets
§ https://localhost/discovery/api/v1/device?$colset=default
§ https://localhost/discovery/api/v1/device?$colset=all
§ https://localhost/discovery/api/v1/device?$colset=abc
Retrieving Data (cont)
§ Filters
§ https://localhost/discovery/api/v1/device?$filter=DiscoveryId eq
'AViTEQOgycQLu_owMy8S'
§ Also: eq, ne, lt, le, gt, ge
§ https://localhost/discovery/api/v1/device?$filter=endswith(DeviceID,'dd0}')
§ Also: endswith(), startswith(), contains()
§ Pagination: Top & Skip
§ https://localhost/discovery/api/v1/device?$top=1&$skip=1
§ Order by
§ https://localhost/discovery/api/v1/device?$orderby=DisplayName asc
§ Aggregation
§ https://localhost/discovery/api/v1/device?$apply=aggregate(Processor.Speed
with max as SpeedMax)
§ Includes: sum, countdistinct, average, min, max, count
Retrieving Data (cont)
§ Group by
§ https://localhost/discovery/api/v1/device?$apply=groupby((Processor.Typ
e))
§ Count
§ https://localhost/discovery/api/v1/device/$count
§ Provider Priority order
§ https://localhost/discovery/api/v1/device?$providerOrder=LDMS-
hardware,LDMS-software,iQuate
Retrieving Data (cont)
§ Changes over Time Recorded in the system
§ Deltas
§ https://localhost/discovery/api/v1/history/device/removed
§ https://localhost/discovery/api/v1/history/device/added
§ https://localhost/discovery/api/v1/history/device/changedTo
§ https://localhost/discovery/api/v1/history/device/changedFrom
§ https://localhost/discovery/api/v1/history/device/added,changedTo
§ …also combine with filter criteria
§ Snapshots
§ WIP
Misc: Configuration Settings
§ Configuration settings installed via JSON files, imported to the DB
and then available through the API
§ https://localhost/discovery/api/v1/config
§ https://localhost/discovery/api/v1/config/logger.config/
§ https://localhost/discovery/api/v1/config/logger.config/level
§ Use runImportConfigFiles.js to import from files system
§ Also, post updates through API
Misc: Logs
§ Log info available through the API
§ https://localhost/discovery/api/v1/logs
§ https://localhost/discovery/api/v1/logs/runCollectFromCore
Misc: Script Scheduler
§ JS Script scheduler built into the system as a Windows Service
called “LANDESK Script Scheduler”
§ Uses cron notation for the schedule
§ Configured Tasks:
§ https://localhost/discovery/api/v1/config/scheduler.config/
§ Current task status:
§ https://localhost/discovery/api/v1/scheduledjobs
Performance Stats
§ Performance stats available for tasks
§ Examples:
§ https://localhost/discovery/api/v1/resources?$filter=stats*
§ https://localhost/discovery/api/v1/resources/stats/runCollectFromC
ore.lmcore101vm.latest.stats.json
§ https://localhost/discovery/api/v1/resources/stats/runCollectFromC
oreDiscoveryStorage.lmcore101vm.latest.stats.json
Other Related Sessions at Interchange 2017
§ AMB130 - Discovery – The Foundation of Any Asset Management
Solution (Wednesday at 10:45 AM)
§ AMB50 - State of the Union: Ivanti IT Asset Management (Tuesday
at 3:15 PM and 4:30 PM)
Thank You!

More Related Content

What's hot

Akka and AngularJS – Reactive Applications in Practice
Akka and AngularJS – Reactive Applications in PracticeAkka and AngularJS – Reactive Applications in Practice
Akka and AngularJS – Reactive Applications in Practice
Roland Kuhn
 
THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
 THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
Markus Eisele
 
Apache Kafka® Security Overview
Apache Kafka® Security OverviewApache Kafka® Security Overview
Apache Kafka® Security Overview
confluent
 
SQL in the Hybrid World
SQL in the Hybrid WorldSQL in the Hybrid World
SQL in the Hybrid World
Tanel Poder
 
Google Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with ZabbixGoogle Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with Zabbix
Max Kuzkin
 
Consul and Complex Networks
Consul and Complex NetworksConsul and Complex Networks
Consul and Complex Networks
slackpad
 
Managing your secrets in a cloud environment
Managing your secrets in a cloud environmentManaging your secrets in a cloud environment
Managing your secrets in a cloud environment
Taswar Bhatti
 
Load Balancing and Scaling with NGINX
Load Balancing and Scaling with NGINXLoad Balancing and Scaling with NGINX
Load Balancing and Scaling with NGINX
NGINX, Inc.
 
Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)
Ryan Cuprak
 
Programming Azure Active Directory (DevLink 2014)
Programming Azure Active Directory (DevLink 2014)Programming Azure Active Directory (DevLink 2014)
Programming Azure Active Directory (DevLink 2014)
Michael Collier
 
Iac d.damyanov 4.pptx
Iac d.damyanov 4.pptxIac d.damyanov 4.pptx
Iac d.damyanov 4.pptx
Dimitar Damyanov
 
8 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 20188 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 2018
Taswar Bhatti
 
Aura Framework Overview
Aura Framework OverviewAura Framework Overview
Aura Framework Overview
rajdeep
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
C4Media
 
Contract-oriented PLSQL Programming
Contract-oriented PLSQL ProgrammingContract-oriented PLSQL Programming
Contract-oriented PLSQL Programming
John Beresniewicz
 
Be DevOps Ready
Be DevOps ReadyBe DevOps Ready
Be DevOps Ready
Malinda Kapuruge
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
Engine Yard
 
10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websitesoazabir
 
Scale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App FabricScale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App Fabric
Chris Dufour
 
JPA and Coherence with TopLink Grid
JPA and Coherence with TopLink GridJPA and Coherence with TopLink Grid
JPA and Coherence with TopLink GridJames Bayer
 

What's hot (20)

Akka and AngularJS – Reactive Applications in Practice
Akka and AngularJS – Reactive Applications in PracticeAkka and AngularJS – Reactive Applications in Practice
Akka and AngularJS – Reactive Applications in Practice
 
THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
 THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
THEFT-PROOF JAVA EE - SECURING YOUR JAVA EE APPLICATIONS
 
Apache Kafka® Security Overview
Apache Kafka® Security OverviewApache Kafka® Security Overview
Apache Kafka® Security Overview
 
SQL in the Hybrid World
SQL in the Hybrid WorldSQL in the Hybrid World
SQL in the Hybrid World
 
Google Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with ZabbixGoogle Cloud Platform monitoring with Zabbix
Google Cloud Platform monitoring with Zabbix
 
Consul and Complex Networks
Consul and Complex NetworksConsul and Complex Networks
Consul and Complex Networks
 
Managing your secrets in a cloud environment
Managing your secrets in a cloud environmentManaging your secrets in a cloud environment
Managing your secrets in a cloud environment
 
Load Balancing and Scaling with NGINX
Load Balancing and Scaling with NGINXLoad Balancing and Scaling with NGINX
Load Balancing and Scaling with NGINX
 
Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)Batching and Java EE (jdk.io)
Batching and Java EE (jdk.io)
 
Programming Azure Active Directory (DevLink 2014)
Programming Azure Active Directory (DevLink 2014)Programming Azure Active Directory (DevLink 2014)
Programming Azure Active Directory (DevLink 2014)
 
Iac d.damyanov 4.pptx
Iac d.damyanov 4.pptxIac d.damyanov 4.pptx
Iac d.damyanov 4.pptx
 
8 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 20188 cloud design patterns you ought to know - Update Conference 2018
8 cloud design patterns you ought to know - Update Conference 2018
 
Aura Framework Overview
Aura Framework OverviewAura Framework Overview
Aura Framework Overview
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
Contract-oriented PLSQL Programming
Contract-oriented PLSQL ProgrammingContract-oriented PLSQL Programming
Contract-oriented PLSQL Programming
 
Be DevOps Ready
Be DevOps ReadyBe DevOps Ready
Be DevOps Ready
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 
10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites10 performance and scalability secrets of ASP.NET websites
10 performance and scalability secrets of ASP.NET websites
 
Scale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App FabricScale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App Fabric
 
JPA and Coherence with TopLink Grid
JPA and Coherence with TopLink GridJPA and Coherence with TopLink Grid
JPA and Coherence with TopLink Grid
 

Similar to UEMB200: Next Generation of Endpoint Management Architecture and Discovery Services

Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
Ben Hall
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAkshaya Mahapatra
 
Play Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and ScalaPlay Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and Scala
Yevgeniy Brikman
 
Monitoring infrastructure with prometheus
Monitoring infrastructure with prometheusMonitoring infrastructure with prometheus
Monitoring infrastructure with prometheus
Shahnawaz Saifi
 
Nginx A High Performance Load Balancer, Web Server & Reverse Proxy
Nginx A High Performance Load Balancer, Web Server & Reverse ProxyNginx A High Performance Load Balancer, Web Server & Reverse Proxy
Nginx A High Performance Load Balancer, Web Server & Reverse Proxy
Amit Aggarwal
 
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systemsDEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
Felipe Prado
 
Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)Gunith Devasurendra
 
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdfdokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
Appster1
 
dokumen.tips_rediscovering-spring-with-spring-boot1.pdf
dokumen.tips_rediscovering-spring-with-spring-boot1.pdfdokumen.tips_rediscovering-spring-with-spring-boot1.pdf
dokumen.tips_rediscovering-spring-with-spring-boot1.pdf
Appster1
 
Migration Station at SAS - DevOps for Fusion with Version Control and Continu...
Migration Station at SAS - DevOps for Fusion with Version Control and Continu...Migration Station at SAS - DevOps for Fusion with Version Control and Continu...
Migration Station at SAS - DevOps for Fusion with Version Control and Continu...
Lucidworks
 
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty ProfileAAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
WASdev Community
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Nathen Harvey
 
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and Kubernetes
Sreenivas Makam
 
Managing Your Security Logs with Elasticsearch
Managing Your Security Logs with ElasticsearchManaging Your Security Logs with Elasticsearch
Managing Your Security Logs with Elasticsearch
Vic Hargrave
 
StackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStackStackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStack
Chiradeep Vittal
 
ITB2019 NGINX Overview and Technical Aspects - Kevin Jones
ITB2019 NGINX Overview and Technical Aspects - Kevin JonesITB2019 NGINX Overview and Technical Aspects - Kevin Jones
ITB2019 NGINX Overview and Technical Aspects - Kevin Jones
Ortus Solutions, Corp
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
07.pallav
 
On Prem Container Cloud - Lessons Learned
On Prem Container Cloud - Lessons LearnedOn Prem Container Cloud - Lessons Learned
On Prem Container Cloud - Lessons Learned
CodeOps Technologies LLP
 
Orchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Orchestration Tool Roundup - Arthur Berezin & Trammell ScruggsOrchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Orchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Cloud Native Day Tel Aviv
 
Microsoft Windows Azure - Diagnostics Presentation
Microsoft Windows Azure - Diagnostics PresentationMicrosoft Windows Azure - Diagnostics Presentation
Microsoft Windows Azure - Diagnostics PresentationMicrosoft Private Cloud
 

Similar to UEMB200: Next Generation of Endpoint Management Architecture and Discovery Services (20)

Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
 
Automating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps ApproachAutomating Software Development Life Cycle - A DevOps Approach
Automating Software Development Life Cycle - A DevOps Approach
 
Play Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and ScalaPlay Framework: async I/O with Java and Scala
Play Framework: async I/O with Java and Scala
 
Monitoring infrastructure with prometheus
Monitoring infrastructure with prometheusMonitoring infrastructure with prometheus
Monitoring infrastructure with prometheus
 
Nginx A High Performance Load Balancer, Web Server & Reverse Proxy
Nginx A High Performance Load Balancer, Web Server & Reverse ProxyNginx A High Performance Load Balancer, Web Server & Reverse Proxy
Nginx A High Performance Load Balancer, Web Server & Reverse Proxy
 
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systemsDEF CON 24 - workshop - Craig Young - brainwashing embedded systems
DEF CON 24 - workshop - Craig Young - brainwashing embedded systems
 
Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)Rediscovering Spring with Spring Boot(1)
Rediscovering Spring with Spring Boot(1)
 
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdfdokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
dokumen.tips_rediscovering-spring-with-spring-boot1 (1).pdf
 
dokumen.tips_rediscovering-spring-with-spring-boot1.pdf
dokumen.tips_rediscovering-spring-with-spring-boot1.pdfdokumen.tips_rediscovering-spring-with-spring-boot1.pdf
dokumen.tips_rediscovering-spring-with-spring-boot1.pdf
 
Migration Station at SAS - DevOps for Fusion with Version Control and Continu...
Migration Station at SAS - DevOps for Fusion with Version Control and Continu...Migration Station at SAS - DevOps for Fusion with Version Control and Continu...
Migration Station at SAS - DevOps for Fusion with Version Control and Continu...
 
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty ProfileAAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
AAI-3218 Production Deployment Best Practices for WebSphere Liberty Profile
 
Introduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to ChefIntroduction to Infrastructure as Code & Automation / Introduction to Chef
Introduction to Infrastructure as Code & Automation / Introduction to Chef
 
Service Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and KubernetesService Discovery using etcd, Consul and Kubernetes
Service Discovery using etcd, Consul and Kubernetes
 
Managing Your Security Logs with Elasticsearch
Managing Your Security Logs with ElasticsearchManaging Your Security Logs with Elasticsearch
Managing Your Security Logs with Elasticsearch
 
StackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStackStackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStack
 
ITB2019 NGINX Overview and Technical Aspects - Kevin Jones
ITB2019 NGINX Overview and Technical Aspects - Kevin JonesITB2019 NGINX Overview and Technical Aspects - Kevin Jones
ITB2019 NGINX Overview and Technical Aspects - Kevin Jones
 
Spring Boot and REST API
Spring Boot and REST APISpring Boot and REST API
Spring Boot and REST API
 
On Prem Container Cloud - Lessons Learned
On Prem Container Cloud - Lessons LearnedOn Prem Container Cloud - Lessons Learned
On Prem Container Cloud - Lessons Learned
 
Orchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Orchestration Tool Roundup - Arthur Berezin & Trammell ScruggsOrchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
Orchestration Tool Roundup - Arthur Berezin & Trammell Scruggs
 
Microsoft Windows Azure - Diagnostics Presentation
Microsoft Windows Azure - Diagnostics PresentationMicrosoft Windows Azure - Diagnostics Presentation
Microsoft Windows Azure - Diagnostics Presentation
 

More from Ivanti

Français Patch Tuesday - Mai
Français Patch Tuesday - MaiFrançais Patch Tuesday - Mai
Français Patch Tuesday - Mai
Ivanti
 
Patch Tuesday de Mayo
Patch Tuesday de MayoPatch Tuesday de Mayo
Patch Tuesday de Mayo
Ivanti
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
Ivanti
 
Patch Tuesday Italia Maggio
Patch Tuesday Italia MaggioPatch Tuesday Italia Maggio
Patch Tuesday Italia Maggio
Ivanti
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
Ivanti
 
Patch Tuesday de Abril
Patch Tuesday de AbrilPatch Tuesday de Abril
Patch Tuesday de Abril
Ivanti
 
Français Patch Tuesday - Avril
Français Patch Tuesday - AvrilFrançais Patch Tuesday - Avril
Français Patch Tuesday - Avril
Ivanti
 
Patch Tuesday Italia Aprile
Patch Tuesday Italia AprilePatch Tuesday Italia Aprile
Patch Tuesday Italia Aprile
Ivanti
 
Français Patch Tuesday - Mars
Français Patch Tuesday - MarsFrançais Patch Tuesday - Mars
Français Patch Tuesday - Mars
Ivanti
 
Patch Tuesday de Marzo
Patch Tuesday de MarzoPatch Tuesday de Marzo
Patch Tuesday de Marzo
Ivanti
 
Patch Tuesday Italia Marzo
Patch Tuesday Italia MarzoPatch Tuesday Italia Marzo
Patch Tuesday Italia Marzo
Ivanti
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch Tuesday
Ivanti
 
Patch Tuesday de Febrero
Patch Tuesday de FebreroPatch Tuesday de Febrero
Patch Tuesday de Febrero
Ivanti
 
2024 Français Patch Tuesday - Février
2024 Français Patch Tuesday - Février2024 Français Patch Tuesday - Février
2024 Français Patch Tuesday - Février
Ivanti
 
Patch Tuesday Italia Febbraio
Patch Tuesday Italia FebbraioPatch Tuesday Italia Febbraio
Patch Tuesday Italia Febbraio
Ivanti
 
2024 February Patch Tuesday
2024 February Patch Tuesday2024 February Patch Tuesday
2024 February Patch Tuesday
Ivanti
 
2024 Enero Patch Tuesday
2024 Enero Patch Tuesday2024 Enero Patch Tuesday
2024 Enero Patch Tuesday
Ivanti
 
2024 Janvier Patch Tuesday
2024 Janvier Patch Tuesday2024 Janvier Patch Tuesday
2024 Janvier Patch Tuesday
Ivanti
 
2024 Gennaio Patch Tuesday
2024 Gennaio Patch Tuesday2024 Gennaio Patch Tuesday
2024 Gennaio Patch Tuesday
Ivanti
 
Patch Tuesday de Enero
Patch Tuesday de EneroPatch Tuesday de Enero
Patch Tuesday de Enero
Ivanti
 

More from Ivanti (20)

Français Patch Tuesday - Mai
Français Patch Tuesday - MaiFrançais Patch Tuesday - Mai
Français Patch Tuesday - Mai
 
Patch Tuesday de Mayo
Patch Tuesday de MayoPatch Tuesday de Mayo
Patch Tuesday de Mayo
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
Patch Tuesday Italia Maggio
Patch Tuesday Italia MaggioPatch Tuesday Italia Maggio
Patch Tuesday Italia Maggio
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Patch Tuesday de Abril
Patch Tuesday de AbrilPatch Tuesday de Abril
Patch Tuesday de Abril
 
Français Patch Tuesday - Avril
Français Patch Tuesday - AvrilFrançais Patch Tuesday - Avril
Français Patch Tuesday - Avril
 
Patch Tuesday Italia Aprile
Patch Tuesday Italia AprilePatch Tuesday Italia Aprile
Patch Tuesday Italia Aprile
 
Français Patch Tuesday - Mars
Français Patch Tuesday - MarsFrançais Patch Tuesday - Mars
Français Patch Tuesday - Mars
 
Patch Tuesday de Marzo
Patch Tuesday de MarzoPatch Tuesday de Marzo
Patch Tuesday de Marzo
 
Patch Tuesday Italia Marzo
Patch Tuesday Italia MarzoPatch Tuesday Italia Marzo
Patch Tuesday Italia Marzo
 
March Patch Tuesday
March Patch TuesdayMarch Patch Tuesday
March Patch Tuesday
 
Patch Tuesday de Febrero
Patch Tuesday de FebreroPatch Tuesday de Febrero
Patch Tuesday de Febrero
 
2024 Français Patch Tuesday - Février
2024 Français Patch Tuesday - Février2024 Français Patch Tuesday - Février
2024 Français Patch Tuesday - Février
 
Patch Tuesday Italia Febbraio
Patch Tuesday Italia FebbraioPatch Tuesday Italia Febbraio
Patch Tuesday Italia Febbraio
 
2024 February Patch Tuesday
2024 February Patch Tuesday2024 February Patch Tuesday
2024 February Patch Tuesday
 
2024 Enero Patch Tuesday
2024 Enero Patch Tuesday2024 Enero Patch Tuesday
2024 Enero Patch Tuesday
 
2024 Janvier Patch Tuesday
2024 Janvier Patch Tuesday2024 Janvier Patch Tuesday
2024 Janvier Patch Tuesday
 
2024 Gennaio Patch Tuesday
2024 Gennaio Patch Tuesday2024 Gennaio Patch Tuesday
2024 Gennaio Patch Tuesday
 
Patch Tuesday de Enero
Patch Tuesday de EneroPatch Tuesday de Enero
Patch Tuesday de Enero
 

Recently uploaded

Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
abdulrafaychaudhry
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 

Recently uploaded (20)

Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Game Development with Unity3D (Game Development lecture 3)
Game Development  with Unity3D (Game Development lecture 3)Game Development  with Unity3D (Game Development lecture 3)
Game Development with Unity3D (Game Development lecture 3)
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 

UEMB200: Next Generation of Endpoint Management Architecture and Discovery Services

  • 1. UEMB200: Next Generation of Endpoint Management Architecture and Discovery Services Rex McMillan & Lester Memmott
  • 2. Agenda § Discovery Services Overview § Install & Configuration § Data Object Model § API Overview § API Security § Inserting Data § Retrieving Data § Misc § Configuration Settings § Logs § Script Scheduler § Performance Stats
  • 4. Discovery Providers Discovery Service Discovery Consumers LDMS Inventory iQuate AD SNMP ARP/WAP nmap File Import B2B Connectors Others… REST API REST API Reconciliation and Normalization Shared DB LDMS Importer ITxM Importer LDMS DB CMDB Concorde Importer Concorde *Not all components implemented yet. Workspaces (config)
  • 7.
  • 8. Wins § Enterprise Visibility § Reconciliation of different sources § Data normalization § Trend data
  • 9. Uses of Discovery Services in LDMS 2017.1 1. Ivanti License Optimizer § Requires the purchase of License Optimizer § Concorde Core Control Agent installed separately 2. ServiceDesk Adhoc Queries (Windows Console) 3. ServiceDesk Importer (Windows Console) 4. ServiceDesk Adhoc Queries (Workspaces, disable by default) 5. …Also, write your own app to the Discovery Services odata API
  • 10. LDMS & Discovery Services Architecture LDMS DB ( M S S Q L C o m p u t e r T a b l e s ) ldinv32 I n v e n t o r y S c a n s API Reconciler Normalizer D i s c o v e r y D B ( J S O N i n E l a s t i c S e a r c h ) Workspaces SCNinqueue (ldlscan) scn2json JSONinqueue N o d e . j s ldinv32,postcgi IISorother l d a p i ( I I S ) Windows Console W e b S e r v i c e s ( I I S ) & D B D r i v e r s DataServRESTAPI SCANSinqueue (DiscoveryStorage) W o r k s p a c e s D B ( M S S Q L )
  • 11. Configuration *Installed as sibling folder to ManagementSuite. readme.txt has helpful notes.
  • 12. Config Center Discovery Web Api Url Configuration
  • 14. Note: Leave these blank. It connects to localhost. CollectorSettings
  • 15. Only top item is enabled by default. You may want to enable others to use discovery services. SchedulerSettings
  • 21. Logs
  • 22. Logs
  • 23. Logs
  • 34. Configure Inventory Service On Core Server: Configure Services -> Inventory -> Advanced settings -> Discovery Storage
  • 35. Data Object Model § Data is entered and retrieved as JSON documents § Includes: device info, system configuration, scheduler, etc § Nesting of objects is allowed § Can dynamically extend the schema at any time § Once a type is assigned to a property, it is fixed § Exception is metadata which is XML in OASIS format § XML Namespace Document for OData Version 4.0 § http://docs.oasis-open.org/odata/ns/edm § https://localhost/discovery/api/v1/$metadata § In the system, information is maintained indicting where the data came from and changes over time.
  • 36. Minimal Device Data Example { "DeviceID": "{E54E1391-2BB8-0E48-B54D-BE99497358C5}", "DiscoveryId": "AVgwRZjJCN2US9MUJEy8", "DeviceName": "XPCOMP2", "OS": { "Version": "5.1", "Name": "Microsoft Windows XP Professional" }, "Network": { "TCPIP": { "Address": "10.16.227.239" } }, "System": { "Model": "VMware Virtual Platform" } }
  • 37. Logging Configuration Data Example { "level": "info", "maxsize": 650000, "maxFiles": 5, "timestamp": true, "consoleFormat": "%level%t%mainScript%->%source%: %message%", "fileFormat": "%level%t%time% %pid% %source%: %message%", "json": false, "tailable": true, "filename": "%AllUsersProfile%/LANDESK/Discovery/log/%scriptname%.log" }
  • 38. API Overview § Follows the LANDESK RESTful API Specification § RESTful Web API + OData § In production environments: § HTTPS Only, no HTTP § Authentication required § Compatible with any client that can GET/POST HTTPS § OAuth 2.0 Authentication § Postman for Chrome recommended for instructive & troubleshooting purposes
  • 39. Example URIs § https://localhost/discovery/api/v1/ § https://localhost/discovery/api/v1/ping § https://localhost/discovery/api/v1/$metadata § https://localhost/discovery/api/v1/device § https://localhost/discovery/api/v1/redoc (From a web browser) § https://localhost/discovery/api/v1/reconrules § https://localhost/discovery/api/v1/reconrules/selected § https://localhost/discovery/api/v1/columnsets § https://localhost/discovery/api/v1/history/device § https://localhost/discovery/api/v1/config § https://localhost/discovery/api/v1/resources § https://localhost/discovery/api/v1/logs § https://localhost/discovery/api/v1/scheduledjobs
  • 40. API Security § All requests done via HTTPS § Types of authentication § STS SAML (Old Method – Not Recommended) § Retrieve SAML token from: https://localhost/sts/isstoken § Use a JSON Viewer / formatter to “unescape” string § Include in Authorization header § Identity Server JWT (New Method – Recommended) § OAuth 2.0 Authentication § Include in Authorization header § Developer Mode (i.e. No authentication) § Authorization header still required but can be any string § Suggest use for lab or developer use, NOT production.
  • 41. API Security - OAuth 2.0 Example in Postman Show token details: https://jwt.io/ *Use with Caution. Not for production environments.
  • 42. Inserting Data § All data added has specified: § Type § Provider origin § POST https://localhost/discovery/api/v1/[type]/[provider] § type: type of data provided. e.g. device § provider: name of the provider posting data. § e.g. LDMS-hardware, LDMS-software § Body formatted as JSON document
  • 43. Inserting Data (Cont) § Built-in LDMS Inventory Data Collectors § runCollectFromCore: Pull from LDMS DB § runCollectFromDiscoveryStorage: Pull from LDMS folder § runCollectFromSCN: Read SCN files from any folder
  • 44. Inserting Data - POST Example § POST https://localhost/discovery/api/v1/device/providerexample § Body: { "DeviceID": "{2E08D59B-57C6-664F-8B2A-7302BC400C23}", "Name": "LMEMMOTT-WIN7B", "Type": "Workstation", "Network": { "TCPIP": { "Address": "010.016.228.249" } } }
  • 45. Inserting Data - Another POST Example § POST https://localhost/discovery/api/v1/pizza/mypizzaprov § Body: { "Type": "Chicago", "Size": "Large", "Topping": "Pepperoni", "Cheese": "Regular" }
  • 46. Inserting Data (Cont) § Data Normalization § Left-hand Rules: Change schema § Right-hand Rules: Format values § Data Reconciliation § Purpose: Is this a device the system has seen before? § If so, merge or replace § If not, add § If not enough data, reject § Rules based that are run in priority order
  • 47. Retrieving Data § Data returned as JSON documents using HTTP GET § https://localhost/discovery/api/v1/device § Query interface supports: § Metadata § Select, Column Sets & Count § Filters § Pagination § Order By & Group By § Aggregation § Provider Priority Order § Historical Data
  • 48. Retrieving Data (cont) § Data returned as JSON documents using HTTP GET § https://localhost/discovery/api/v1/device § Metadata § https://localhost/discovery/api/v1/$metadata § Select & Expand § https://localhost/discovery/api/v1/device?$select=DiscoveryId § https://localhost/discovery/api/v1/device?$select=Network § https://localhost/discovery/api/v1/device?$select=Network,OS § https://localhost/discovery/api/v1/device?$expand=Network,OS § Column Sets § https://localhost/discovery/api/v1/device?$colset=default § https://localhost/discovery/api/v1/device?$colset=all § https://localhost/discovery/api/v1/device?$colset=abc
  • 49. Retrieving Data (cont) § Filters § https://localhost/discovery/api/v1/device?$filter=DiscoveryId eq 'AViTEQOgycQLu_owMy8S' § Also: eq, ne, lt, le, gt, ge § https://localhost/discovery/api/v1/device?$filter=endswith(DeviceID,'dd0}') § Also: endswith(), startswith(), contains() § Pagination: Top & Skip § https://localhost/discovery/api/v1/device?$top=1&$skip=1 § Order by § https://localhost/discovery/api/v1/device?$orderby=DisplayName asc § Aggregation § https://localhost/discovery/api/v1/device?$apply=aggregate(Processor.Speed with max as SpeedMax) § Includes: sum, countdistinct, average, min, max, count
  • 50. Retrieving Data (cont) § Group by § https://localhost/discovery/api/v1/device?$apply=groupby((Processor.Typ e)) § Count § https://localhost/discovery/api/v1/device/$count § Provider Priority order § https://localhost/discovery/api/v1/device?$providerOrder=LDMS- hardware,LDMS-software,iQuate
  • 51. Retrieving Data (cont) § Changes over Time Recorded in the system § Deltas § https://localhost/discovery/api/v1/history/device/removed § https://localhost/discovery/api/v1/history/device/added § https://localhost/discovery/api/v1/history/device/changedTo § https://localhost/discovery/api/v1/history/device/changedFrom § https://localhost/discovery/api/v1/history/device/added,changedTo § …also combine with filter criteria § Snapshots § WIP
  • 52. Misc: Configuration Settings § Configuration settings installed via JSON files, imported to the DB and then available through the API § https://localhost/discovery/api/v1/config § https://localhost/discovery/api/v1/config/logger.config/ § https://localhost/discovery/api/v1/config/logger.config/level § Use runImportConfigFiles.js to import from files system § Also, post updates through API
  • 53. Misc: Logs § Log info available through the API § https://localhost/discovery/api/v1/logs § https://localhost/discovery/api/v1/logs/runCollectFromCore
  • 54. Misc: Script Scheduler § JS Script scheduler built into the system as a Windows Service called “LANDESK Script Scheduler” § Uses cron notation for the schedule § Configured Tasks: § https://localhost/discovery/api/v1/config/scheduler.config/ § Current task status: § https://localhost/discovery/api/v1/scheduledjobs
  • 55. Performance Stats § Performance stats available for tasks § Examples: § https://localhost/discovery/api/v1/resources?$filter=stats* § https://localhost/discovery/api/v1/resources/stats/runCollectFromC ore.lmcore101vm.latest.stats.json § https://localhost/discovery/api/v1/resources/stats/runCollectFromC oreDiscoveryStorage.lmcore101vm.latest.stats.json
  • 56. Other Related Sessions at Interchange 2017 § AMB130 - Discovery – The Foundation of Any Asset Management Solution (Wednesday at 10:45 AM) § AMB50 - State of the Union: Ivanti IT Asset Management (Tuesday at 3:15 PM and 4:30 PM)