sonic-buildimage/dockers/docker-dhcp-relay/base_image_files/monit_dhcp_relay.j2

37 lines
1.8 KiB
Plaintext
Raw Normal View History

{# This template file is used to generate Monit configuration file of dhcp_relay container -#}
################################################################################
## Monit configuration file for dhcp_relay container
## process list:
## dhcrelay
################################################################################
{# If our configuration has VLANs... #}
{%- if VLAN_INTERFACE -%}
{# Count how may VLANs require a DHCP relay agent... #}
{%- set num_relays = namespace(count=0) -%}
{%- for vlan_name in VLAN_INTERFACE -%}
{%- if VLAN and vlan_name in VLAN and 'dhcp_servers' in VLAN[vlan_name] and VLAN[vlan_name]['dhcp_servers']|length > 0 -%}
{%- set num_relays.count = num_relays.count + 1 -%}
{%- endif -%}
{%- endfor -%}
{# if one or more VLANs require DHCP relay agent #}
{%- if num_relays.count > 0 -%}
{%- set relay_for_ipv4 = namespace(flag=False) -%}
{%- for vlan_name in VLAN_INTERFACE -%}
{%- if VLAN and vlan_name in VLAN and 'dhcp_servers' in VLAN[vlan_name] and VLAN[vlan_name]['dhcp_servers']|length >0 -%}
{%- for dhcp_server in VLAN[vlan_name]['dhcp_servers'] -%}
{%- if dhcp_server | ipv4 -%}
{%- set relay_for_ipv4.flag = True -%}
{%- endif -%}
{%- endfor -%}
{%- if relay_for_ipv4.flag -%}
{%- set relay_for_ipv4 = False -%}
{# Check the running status of each DHCP relay agent instance #}
check program dhcp_relay|dhcrelay_{{ vlan_name }} with path "/usr/bin/process_checker dhcp_relay /usr/sbin/dhcrelay -d -m discard -a %h:%p %P --name-alias-map-file /tmp/port-name-alias-map.txt -id {{ vlan_name }}"
if status != 0 for 5 times within 5 cycles then alert repeat every 1 cycles
{%- endif -%}
{%- endif -%}
{%- endfor -%}
{%- endif -%}
{%- endif -%}