This is a great leadership question. The answer? Put the Soldier in charge. Make them responsible for the solution. One of two things could happen:
They might actually do a good job, solving the problem. In this scenario, everyone wins. Now you just need to have discussion with the Soldier about how their constant complaining is bad for morale, creates friction, and will no longer be tolerated. If they have suggestions that contribute to the unit in a meaningful way, listen to them. If they have nothing positive to contribute towards solving the issue then they needs to remain silent or be able to voice their concerns in a positive and professional manner.