Enable Any Service (snmp) in centos 7 firewall (firewalld)

I am only discuss the safest way here in very short steps.

    1. Add a profile for SNMP to firewalld.
      nano /etc/firewalld/services/snmp.xml

      Contents of the file is as following (Please mind the using of udp port 161)

      <?xml version="1.0" encoding="utf-8"?>
      <service>
      <short>SNMP</short>
      <description>SNMP protocol</description>
      <port protocol="udp" port="161"/>
      </service>
    2. Reload your firewall for checking any error
      firewall-cmd --reload
    3. Add the service to your public zone
      firewall-cmd --zone=public --add-service snmp --permanent
    4. Reload your firewall again
      firewall-cmd --reload

Now Test Snmp Status from another server

snmpwalk -v 2c -c public IP.of.target.server