Ad Widget

Collapse

Custom host inventory

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Audrius13
    Junior Member
    • Jun 2016
    • 3

    #1

    Custom host inventory

    Hi all,

    Is there posible in any way to custom host inventory fields globaly? it's to much fields. We want have just 5 fields in host inventory.
  • asteroidyorkton
    Member
    • Aug 2016
    • 53

    #2
    I may not be right but I think you can achieve this just by modifying host_inventory table on database and creating items for those specific field I don't know how to link a item to that field though. If you have a test environment, backup and try it and let us know Maybe make a clone if its a VM.
    Don't think any frontend php needs to be modified.

    Just remove/modify all unwanted tables and see if everything works fine. Debug logs.
    Name and OS are linked to Host name and System Information item respectively.
    For SNMP device, Name and Hardware details automatically populated, so you might wanna leave that too. Or delete item specific to that (sysDescr for Hardware)

    Code:
    CREATE TABLE `host_inventory` (
    	`hostid` BIGINT(20) UNSIGNED NOT NULL,
    	`inventory_mode` INT(11) NOT NULL DEFAULT '0',
    	`type` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`type_full` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`name` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`alias` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`os` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`os_full` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`os_short` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`serialno_a` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`serialno_b` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`tag` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`asset_tag` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`macaddress_a` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`macaddress_b` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`hardware` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`hardware_full` TEXT NOT NULL COLLATE 'utf8_bin',
    	`software` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`software_full` TEXT NOT NULL COLLATE 'utf8_bin',
    	`software_app_a` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`software_app_b` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`software_app_c` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`software_app_d` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`software_app_e` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`contact` TEXT NOT NULL COLLATE 'utf8_bin',
    	`location` TEXT NOT NULL COLLATE 'utf8_bin',
    	`location_lat` VARCHAR(16) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`location_lon` VARCHAR(16) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`notes` TEXT NOT NULL COLLATE 'utf8_bin',
    	`chassis` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`model` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`hw_arch` VARCHAR(32) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`vendor` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`contract_number` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`installer_name` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`deployment_status` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`url_a` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`url_b` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`url_c` VARCHAR(255) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`host_networks` TEXT NOT NULL COLLATE 'utf8_bin',
    	`host_netmask` VARCHAR(39) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`host_router` VARCHAR(39) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`oob_ip` VARCHAR(39) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`oob_netmask` VARCHAR(39) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`oob_router` VARCHAR(39) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`date_hw_purchase` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`date_hw_install` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`date_hw_expiry` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`date_hw_decomm` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`site_address_a` VARCHAR(128) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`site_address_b` VARCHAR(128) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`site_address_c` VARCHAR(128) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`site_city` VARCHAR(128) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`site_state` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`site_country` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`site_zip` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`site_rack` VARCHAR(128) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`site_notes` TEXT NOT NULL COLLATE 'utf8_bin',
    	`poc_1_name` VARCHAR(128) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`poc_1_email` VARCHAR(128) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`poc_1_phone_a` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`poc_1_phone_b` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`poc_1_cell` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`poc_1_screen` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`poc_1_notes` TEXT NOT NULL COLLATE 'utf8_bin',
    	`poc_2_name` VARCHAR(128) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`poc_2_email` VARCHAR(128) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`poc_2_phone_a` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`poc_2_phone_b` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`poc_2_cell` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`poc_2_screen` VARCHAR(64) NOT NULL DEFAULT '' COLLATE 'utf8_bin',
    	`poc_2_notes` TEXT NOT NULL COLLATE 'utf8_bin',
    	PRIMARY KEY (`hostid`),
    	CONSTRAINT `c_host_inventory_1` FOREIGN KEY (`hostid`) REFERENCES `hosts` (`hostid`) ON DELETE CASCADE
    )
    COLLATE='utf8_bin'
    ENGINE=InnoDB
    ;
    Last edited by asteroidyorkton; 18-09-2016, 10:50.

    Comment

    • kloczek
      Senior Member
      • Jun 2006
      • 1771

      #3
      Best would be just move from static host_inventory table to something like host_inventory{,_str,_uint} three tables and where each record will have inventoryid pointing to host_inventory_ids which will hold name and type of inventory data. Each record from host_inventory{,_str,_uint} tables would need have reference to necessary hostid.

      Above will allow have fully customizable list of per per host inventories entries.

      It would be good to have description of inventories in template layer, so some other changes in tables describing templates will be necessary as well (if anyone have some thoughts about necessary about minimal set of changes in database scheme please add some comment).

      Above needs to be synchronized with API and C code changes as well.
      Last part will be necessary web fromtend changes allowing changes allowing to manage create and/or map existing items to inventories.

      For now it would be only good to prepare some high level description of necessary changes. With this will be possible to start on implementation of each part.

      Another thought: each inventory field should be possible describe as manual or automatic so on host/global disable automatic inventory would only stop populating data from items to mapped inventories.
      http://uk.linkedin.com/pub/tomasz-k%...zko/6/940/430/
      https://kloczek.wordpress.com/
      zapish - Zabbix API SHell binding https://github.com/kloczek/zapish
      My zabbix templates https://github.com/kloczek/zabbix-templates

      Comment

      Working...