Linux Requirements


Platform OwnerDeanna Burns (Unlicensed)
Document status
WORK IN PROGRESS
Tech leadAllena Kendrick (Unlicensed)
Technical writersVandana Bansal
CI OwnerNancy Braen
CMDB ManagerChristopher Abbott (Unlicensed)
Project ManagerDavid Swanson (Unlicensed)

Files 

Report metrics (Must Configure CMDB View for Linux)




Technical Requirements

#RequirementUser Story
Importance
ChallengeNotes
1

Mid Server


When Discovery runs dmidecode | cat, it returns garbage.
{"related_data":{"tDataObj":{}}}

This article:
https://community.servicenow.com/community?id=community_question&sys_id=21e8e0b4db903f04fece0b55ca961926
states that a user running London had a very similar issue and resolved it by adding the mid server property “mid.property.ssh.use_snc”When Discovery runs dmidecode | cat, it returns garbage.
{"related_data":{"tDataObj":{}}}

This article:
https://community.servicenow.com/community?id=community_question&sys_id=21e8e0b4db903f04fece0b55ca961926
states that a user running London had a very similar issue and resolved it by adding the mid server property “mid.property.ssh.use_snc”





2Linux Change

On the linux side, we made the following changes which are applicable to our entire environment, not just for the ServiceNow sandbox:


Allowed the linux ServiceNow credential – s_svcnow_mid – to run the following commands as sudo without a password:

              '/usr/sbin/dmidecode',

              '/sbin/dmidecode',

              '/usr/sbin/lsof',

              '/sbin/lsof',

              '/usr/bin/fdisk -l',

              '/usr/bin/multipath -ll',

              '/usr/sbin/dmsetup table *',

              '/usr/sbin/dmsetup table',

              '/usr/sbin/dmsetup ls',

              '/usr/bin/ls',

              '/usr/bin/cat',

              '/bin/stat',

              '/usr/bin/netstat'


Changed /etc/hostname to reflect the fqdn instead of just the short name.







3
To resolved the host name/dns domain/name for new Linux CI. Nancy will be implementing automatic fully qualified domain automatically updated without rebooting the linux server




*

PROBES


PROBES

  • Horizontal discovery probe: launches patterns
  • Linux - Installed Software^
  • Unix - ADM^
  • Linux - Identity*
  • Linux - CPU*
  • Linux - Distribution*
  • Linux - Find FQDN*
  • Linux - Memory*
  • Linux - Memory Modules*
  • Linux - Network ARP Tables*
  • Linux - Storage*
  • Linux - Amazon EC2*
  • Unix - OS Uptime*
  • UNIX - OS Filesystems*
  • UNIX - Find FQDN*
  • Unix - ADM Enhanced*


PATTERNS

Pattern

Linux Server


 Linux Discovery Data Attributes Collections

https://docs.servicenow.com/bundle/london-it-operations-management/page/product/discovery/reference/r_DataCollDiscoLinuxComputers.html

LabelTable NameField NameSource
Operating Systemcmdb_ci_linux_serverosuname
OS Versioncmdb_ci_computeros_versionuname -a or cat /etc/*release
Short descriptioncmdb_ci_linux_servershort_descriptionuname
Namecmdb_ci_linux_servernameDNS, NBT
Hostnamecmdb_ci_linux_serverhost_nameDNS, NBT
DNS domaincmdb_ci_linux_serverdns_domainDNS
Start datecmdb_ci_linux_serverstart_dateuptime
Manufacturercmdb_ci_computermanufacturerdmidecode
Serial numbercmdb_ci_computerserial_numberdmidecode
CPU typecmdb_ci_linux_servercpu_type/proc/cpuinfo
CPU speed (MHz)cmdb_ci_linux_servercpu_speed/proc/cpuinfo
CPU countcmdb_ci_linux_servercpu_count/proc/cpuinfo
CPU core countcmdb_ci_computercpu_core_count/proc/cpuinfo
CPU core threadcmdb_ci_computercpu_core_thread/proc/cpuinfo
CPU manufacturercmdb_ci_linux_servercpu_manufacturer/proc/cpuinfo
Model numbercmdb_ci_computermodel_numberdmidecode
Model IDcmdb_ci_computermodel_iddmidecode
RAM (MB)cmdb_ci_linux_serverrammeminfo
Disk space (GB)*cmdb_ci_linux_serverdisk_space/proc/ide, /proc/scsi, /var/log/dmesg
Typecmdb_ci_disktype/proc/ide, /proc/scsi, /var/log/dmesg
Model IDcmdb_ci_diskmodel_id/proc/ide, /proc/scsi, /var/log/dmesg
Disk space (GB)cmdb_ci_diskdisk_space/proc/ide, /proc/scsi, /var/log/dmesg
Namecmdb_ci_diskname/proc/ide, /proc/scsi, /var/log/dmesg
Namecmdb_ci_file_systemnamedf
Capacity (MB)cmdb_ci_file_systemcapacitydf
Available Space (MB)cmdb_ci_file_systemavailable_spacedf
Mount pointcmdb_ci_file_systemmount_pointdf
Namecmdb_running_processnameps
Commandcmdb_running_processcommandps
Typecmdb_running_processtypeps
PIDcmdb_running_processpidps
Parameterscmdb_running_processparametersps
Namecmdb_ci_network_adapternameifconfig
IP addresscmdb_ci_network_adapterip_addressifconfig
MAC addresscmdb_ci_network_adaptermac_addressifconfig
Netmaskcmdb_ci_network_adapternetmaskifconfig
Default gatewaycmdb_ci_hardwaredefault_gatewayroute


TABLE COLUMNS

 Note: u_ = added Data attributes


Data attributes in pink = Required fields

Data attributes in blue = Ownership fields

Data attributes in green = Data collected by Discovery


ColumnsContains unpopulated mandatory fieldsControlsContains unpopulated mandatory fieldsApplication AccessContains unpopulated mandatory fields
Table Columns table. Currently in read mode
Column labelSort in ascending orderColumn nameSort in ascending orderMandatorySort in ascending orderTypeSort in ascending orderReferenceSort in ascending orderMax lengthSort in ascending orderDefault valueSort in ascending orderDisplaySort in ascending order
Sys IDsys_idtrueSys ID (GUID)(empty)32
false
NamenametrueString(empty)255
true
Kernel Releasekernel_releasefalseString(empty)40
false
PagerDuty webhookx_pd_integration_pagerduty_webhookfalseString(empty)40
false
PagerDuty servicex_pd_integration_pagerduty_servicefalseString(empty)40
false
COAu_coafalseString(empty)100
false
CPU namecpu_namefalseString(empty)100
false
Most recent discoverylast_discoveredfalseDate/Time(empty)40
false
Domainsys_domainfalseDomain ID(empty)32globalfalse
OS Versionos_versionfalseString(empty)40
false
Correlation IDcorrelation_idfalseString(empty)512
false
ClassificationclassificationfalseString(empty)40Productionfalse
Assignment groupassignment_groupfalseReferenceGroup32
false
Lease expiration dateu_lease_expiration_datefalseDate(empty)40
false
Discovery sourcediscovery_sourcefalseString(empty)40
false
MonitormonitorfalseTrue/False(empty)40falsefalse
OS Address Width (bits)os_address_widthfalseInteger(empty)40
false
Asset tagasset_tagfalseString(empty)40
false
CPU speed (MHz)cpu_speedfalseDecimal(empty)15
false
Maintenance schedulemaintenance_schedulefalseReferenceSchedule32
false
DR Plan Next Testing Dateu_dr_plan_next_testfalseDate(empty)40
false
JustificationjustificationfalseString(empty)80
false
First discoveredfirst_discoveredfalseDate/Time(empty)40
false
Order receiveddelivery_datefalseDate/Time(empty)40
false
Checked inchecked_infalseDate/Time(empty)40
false
Descriptionshort_descriptionfalseString(empty)1,000
false
Is a Disaster Recovery Plan Required?u_dr_plan_requiredfalseString(empty)40Nofalse
AssignedassignedfalseDate/Time(empty)40
false
CategorycategoryfalseString(empty)40javascript:gs.include("CMDBItem");var it...false
Assigned toassigned_tofalseReferenceUser32
false
DNS Domaindns_domainfalseString(empty)255
false
CD Speedcd_speedfalseInteger(empty)40
false
Support groupsupport_groupfalseReferenceGroup32
false
Supported bysupported_byfalseReferenceUser32
false
Statusinstall_statusfalseInteger(empty)40
false
CommentscommentsfalseString(empty)4,000
false
DepartmentdepartmentfalseReferenceDepartment32
false
CPU typecpu_typefalseString(empty)40
false
Purchasedpurchase_datefalseDate(empty)40
false
ManufacturermanufacturerfalseReferenceCompany32
false
Start datestart_datefalseDate/Time(empty)40
false
FloppyfloppyfalseString(empty)40
false
Model IDmodel_idfalseReferenceProduct Model32
false
Form factorform_factorfalseString(empty)40
false
Chassis typechassis_typefalseString(empty)40
false
Substatushardware_substatusfalseString(empty)40
false
Disk space (GB)disk_spacefalseDecimal(empty)15
false
Is VirtualvirtualfalseTrue/False(empty)40falsefalse
Display nameu_display_namefalseString(empty)255
false
Orderedorder_datefalseDate/Time(empty)40
false
Data Centeru_reference_1falseReferenceData Center32bac72b5137130200f212cc028e41f1b8false
sys_class_pathsys_class_pathfalseSystem Class path(empty)255javascript:GlideDBObjectManager.get().ge...false
Disaster backupdr_backupfalseReferenceServer32
false
Aliasu_aliasfalseString(empty)100
false
Object IDobject_idfalseString(empty)512
false
License metricmetric_typefalseListSoftware License Calculation1,024
false
Owned byowned_byfalseReferenceUser32
false
Updated bysys_updated_byfalseString(empty)40
false
CDcd_romfalseTrue/False(empty)40
false
GL accountgl_accountfalseString(empty)40
false
Virus Protectionu_virus_protectionfalseTrue/False(empty)40
false
DR Plan Last Approvedu_dr_plan_last_approvalfalseDate(empty)40
false
Operational statusoperational_statusfalseInteger(empty)1001false
Cost currencycost_ccfalseString(empty)3USDfalse
Updatedsys_updated_onfalseDate/Time(empty)40
false
Createdsys_created_onfalseDate/Time(empty)40
false
Lease contractlease_idfalseString(empty)40
false
Backupu_backupfalseString(empty)40
false
Warranty expirationwarranty_expirationfalseDate(empty)40
false
OS Domainos_domainfalseString(empty)40
false
Used forused_forfalseString(empty)40Productionfalse
CPU manufacturercpu_manufacturerfalseReferenceCompany32
false
Installedinstall_datefalseDate/Time(empty)40
false
Approval groupchange_controlfalseReferenceGroup32
false
ScheduleschedulefalseReferenceSchedule32
false
CostcostfalseFloating Point Number(empty)40
false
Classsys_class_namefalseSystem Class Name(empty)80javascript:current.getTableName();false
Hardware Statushardware_statusfalseString(empty)40installedfalse
ProcessorprocessorfalseReferenceProcessor Definition32
false
Management IP Addressip_addressfalseString(empty)255
false
Skip syncskip_syncfalseTrue/False(empty)40falsefalse
Fault countfault_countfalseInteger(empty)400false
AttributesattributesfalseString(empty)65,000
false
Created bysys_created_byfalseString(empty)40
false
CompanycompanyfalseReferenceCompany32
false
DR Plan Last Tested Dateu_dr_plan_last_testfalseDate(empty)40
false
AssetassetfalseReferenceAsset32
false
Default Gatewaydefault_gatewayfalseString(empty)40
false
Can Printcan_printfalseTrue/False(empty)40falsefalse
Maintenance URLu_maintenance_urlfalseURL(empty)1,024
false
Operating SystemosfalseString(empty)50
false
DR Plan Next Approval Dateu_dr_plan_next_approvalfalseDate(empty)40
false
VendorvendorfalseReferenceCompany32
false
LocationlocationfalseReferenceLocation32
false
Serial numberserial_numberfalseString(empty)255
false
CPU countcpu_countfalseInteger(empty)401false
Domain Pathsys_domain_pathfalse(empty)(empty)255
false
Model numbermodel_numberfalseString(empty)255
false
Bomgar Jumpointu_bomgar_jumpointfalseReferenceBomgar Jumpoint32
false
Invoice numberinvoice_numberfalseString(empty)40
false
MandatorySort in ascending orderTypeSort in ascending orderReferenceSort in ascending orderMax lengthSort in ascending orderDefault valueSort in ascending orderDisplaySort in ascending order
CPU core threadcpu_core_threadfalseInteger(empty)40
false
Updatessys_mod_countfalseInteger(empty)40
false
Host namehost_namefalseString(empty)255
false
MAC Addressmac_addressfalseString(empty)40
false
SubcategorysubcategoryfalseString(empty)40
false
OS Service Packos_service_packfalseString(empty)40
false
Monitoringu_monitoringfalseTrue/False(empty)40
false
DueduefalseDate/Time(empty)40
false
Checked outchecked_outfalseDate/Time(empty)40
false
Cost centercost_centerfalseReferenceCost Center32
false
CPU core countcpu_core_countfalseInteger(empty)401false
Requires verificationunverifiedfalseTrue/False(empty)40
false
Due indue_infalseString(empty)40
false
Functional Contactmanaged_byfalseReferenceUser32
false
DR Plan ID #u_dr_plan_idfalseString(empty)40
false
RAM (MB)ramfalseInteger(empty)40
false
Firewall statusfirewall_statusfalseString(empty)40Intranetfalse
Fully qualified domain namefqdnfalseString(empty)255
false
PO numberpo_numberfalseString(empty)40
false
Warranty Expiration Dateu_warranty_expiration_datefalseDate(empty)40
false

User Interface


 Main Form


Related Items



Network Adapters

Storage Devices

  File Systems

Software Installations


Network Adapters

  Serial Numbers

CI IPs

  DNS Names for CI

Memory Modules

Disk Partitions

Disks


User Interface Requirements

  1. Main Form:
    1. Owned By should be a required field. Tells who to contact if something is not working.
    2. Requirement was to discover Backup field automatically. However, this cannot be done automatically and will need to be entered manually.
    3. COA should be a required field, in order to know the charging information for the CI.
    4. Hide - Virus Protection, Monitoring and Warranty Expiration Date. Not used by the team.
    5. Cost Center should be required. Although it is part of COA it does not really spell it out. Having Cost Center populated makes it easier.

Relationships



Validation Steps


Open Questions

QuestionAnswerDate Answered

Out of Scope