It is very common things in my world failing FAN on Cisco 2800 series router. You could buy FAN module thru ebay, but temperature is in operation range and no desire to replace it, then here is way to stop sending SNMP trap message.
SNMP trap Message
Jul 30 16:45:56: %ENVMON-4-FAN_LOW_RPM: Fan 1 service recommended
Jul 30 16:45:56: %ENVMON-4-FAN_LOW_RPM: Fan 2 service recommended
Jul 30 16:46:26: %ENVMON-4-FAN_LOW_RPM: Fan 1 service recommended
Jul 30 16:46:26: %ENVMON-4-FAN_LOW_RPM: Fan 2 service recommended
Probably, easiest way would be filtering message body. In this case "Fan 1 service recommended"
Cisco_Router(conf t)# logging discriminator ENV msg-body drops Fan
Cisco_Router(conf t)# logging console discriminator ENV
Cisco_Router(conf t)# logging monitor discriminator ENV
Cisco_Router(conf t)# logging buffered discriminator ENV 64000
Also, you can filter out the message from syslog messages are being sent.
Cisco_Router(conf t)# logging host xx.xx.xx.xx discriminator ENV
Cisco_Router# sh logging
Syslog logging: enabled (0 messages dropped, 3 messages rate-limited, 0 flushes, 0 overruns, xml disabled, filtering disabled)
Active Message Discriminator:
ENV msg-body drops Fan
No Inactive Message Discriminator.
Console logging: level debugging, 1185 messages logged, xml disabled,
filtering disabled, discriminator(ENV),
0 messages rate-limited, 116 messages dropped-by-MD
Monitor logging: level debugging, 54 messages logged, xml disabled,
filtering disabled, discriminator(ENV),
0 messages rate-limited, 24 messages dropped-by-MD
Logging to: vty515(41)
Buffer logging: level debugging, 2 messages logged, xml disabled,
filtering disabled, discriminator(ENV),
0 messages rate-limited, 24 messages dropped-by-MD
Exception Logging: size (4096 bytes)
Count and timestamp logging messages: disabled
Persistent logging: disabled
Trap logging: level informational, 1324 message lines logged
Logging to 192.168.99.15 (udp port 514, audit disabled,
link up),
1324 message lines logged,
0 message lines rate-limited,
0 message lines dropped-by-MD,
xml disabled, sequence number disabled
filtering enabled, discriminator (ENV)
Logging Source-Interface: VRF Name:
Log Buffer (64000 bytes):
I hope it is informative for you