## Template logic. # Set to true to enable the template source information # coming from config context instead of a custom field. templates_config_context = False # Set to true to give config context templates a # higher priority then custom field templates templates_config_context_overrule = False # Set template and device NetBox "custom field" names # Template_cf is not used when templates_config_context is enabled template_cf = "zabbix_template" device_cf = "zabbix_hostid" ## Enable clustering of devices with virtual chassis setup clustering = False ## Enable hostgroup generation. Requires permissions in Zabbix create_hostgroups = True ## Create journal entries create_journal = False ## Virtual machine sync # Set sync_vms to True in order to use this new feature # Use the hostgroup vm_hostgroup_format mapper for specific # hostgroup atributes of VM's such as cluster_type and cluster sync_vms = False # Check the README documentation for values to use in the VM hostgroup format. vm_hostgroup_format = "cluster_type/cluster/role" ## Proxy Sync # Set to true to enable removal of proxy's under hosts. Use with caution and make sure that you specified # all the required proxy's in the device config context before enabeling this option. # With this option disabled proxy's will only be added and modified for Zabbix hosts. full_proxy_sync = False ## NetBox to Zabbix device state convertion zabbix_device_removal = ["Decommissioning", "Inventory"] zabbix_device_disable = ["Offline", "Planned", "Staged", "Failed"] ## Hostgroup mapping # See the README documentation for available options # You can also use CF (custom field) names under the device. The CF content will be used for the hostgroup generation. # # When using region in the group name, the default behaviour is to use name of the directly assigned region. # By setting traverse_regions to True the full path of all parent regions will be used in the hostgroup, e.g.: # # 'Global/Europe/Netherlands/Amsterdam' instead of just 'Amsterdam'. # # traverse_site_groups controls the same behaviour for any assigned site_groups. hostgroup_format = "site/manufacturer/role" traverse_regions = False traverse_site_groups = False ## Filtering # Custom device filter, variable must be present but can be left empty with no filtering. # A couple of examples: # nb_device_filter = {} #No filter # nb_device_filter = {"tag": "zabbix"} #Use a tag # nb_device_filter = {"site": "HQ-AMS"} #Use a site name # nb_device_filter = {"site": ["HQ-AMS", "HQ-FRA"]} #Device must be in either one of these sites # nb_device_filter = {"site": "HQ-AMS", "tag": "zabbix", "role__n": ["PDU", "console-server"]} #Device must be in site HQ-AMS, have the tag zabbix and must not be part of the PDU or console-server role # Default device filter, only get devices which have a name in NetBox: nb_device_filter = {"name__n": "null"} # Default filter for VMs nb_vm_filter = {"name__n": "null"} ## Inventory # See https://www.zabbix.com/documentation/current/en/manual/config/hosts/inventory#building-inventory # Choice between disabled, manual or automatic. # Make sure to select at least manual or automatic in use with the inventory_sync function. inventory_mode = "disabled" # To allow syncing of NetBox device properties, set inventory_sync to True inventory_sync = False # inventory_map is used to map NetBox properties to Zabbix Inventory fields. # For nested properties, you can use the '/' seperator. # For example, the following map will assign the custom field 'mycustomfield' to the 'alias' Zabbix inventory field: # # device_inventory_map = { "custom_fields/mycustomfield/name": "alias"} # # The following maps should provide some nice defaults: device_inventory_map = { "asset_tag": "asset_tag", "virtual_chassis/name": "chassis", "status/label": "deployment_status", "location/name": "location", "latitude": "location_lat", "longitude": "location_lon", "comments": "notes", "name": "name", "rack/name": "site_rack", "serial": "serialno_a", "device_type/model": "type", "device_type/manufacturer/name": "vendor", "oob_ip/address": "oob_ip" } # We also support inventory mapping on Virtual Machines. vm_inventory_map = { "status/label": "deployment_status", "comments": "notes", "name": "name" } # To allow syncing of usermacros from NetBox, set to True. # this will enable both field mapping and config context usermacros. # # If set to "full", it will force the update of secret usermacros every run. # Please see the README.md for more information. usermacro_sync = False # device usermacro_map to map NetBox fields to usermacros. device_usermacro_map = {"serial": "{$HW_SERIAL}", "role/name": "{$DEV_ROLE}", "url": "{$NB_URL}", "id": "{$NB_ID}"} # virtual machine usermacro_map to map NetBox fields to usermacros. vm_usermacro_map = {"memory": "{$TOTAL_MEMORY}", "role/name": "{$DEV_ROLE}", "url": "{$NB_URL}", "id": "{$NB_ID}"} # To sync host tags to Zabbix, set to True. tag_sync = False # Setting tag_lower to True will lower capital letters ain tag names and values # This is more inline with the Zabbix way of working with tags. # # You can however set this to False to ensure capital letters are synced to Zabbix tags. tag_lower = True # We can sync NetBox device/VM tags to Zabbix, but as NetBox tags don't follow the key/value # pattern, we need to specify a tag name to register the NetBox tags in Zabbix. # # # # If tag_name is set to False, we won't sync NetBox device/VM tags to Zabbix. tag_name = 'NetBox' # We can choose to use 'name', 'slug' or 'display' NetBox tag properties as a value in Zabbix. # 'name'is used by default. tag_value = "name" # device tag_map to map NetBox fields to host tags. device_tag_map = {"site/name": "site", "rack/name": "rack", "platform/name": "target"} # Virtual machine tag_map to map NetBox fields to host tags. vm_tag_map = {"site/name": "site", "cluster/name": "cluster", "platform/name": "target"}