Hello Armando,
the distance is not a problem and you shouldn't need to use an attenuator.
Are there any log messages that could be related to to the troubled link ?
try to disable the interface keepalive some IOS versions have issues with them that lead to errdisable.
Do you see incrementing errors in the interfaces during the day ?
use
show interface gi0/x
If available have someone test attenuation with an optical TDR when a loop is made on the other side.
Verify also to use GBICs/SFPs that are of the same vendor because using different can sometimes lead to problems.
Hope to help
Giuseppe