Another approach to somehow complement some of the other answers, is to use an approach like so:
Just make it extremely easy for posting comments. So don't make it too difficult to leave comments (eg no complicated captcha-style of solutions). And combine it with a module which does not punish/hurt regular visitors who have no spam intentions, such as (quotes are from their project pages):
Honeypot uses both the honeypot and timestamp methods of deterring spam bots from completing forms on a Drupal site. These methods are effective against many spam bots, and are not as intrusive as CAPTCHAs or other methods which punish the user.
Invisible antispam without CAPTCHA, questions, puzzles, counting animals, math and etc. Just install and forget.
CleanTalk is a SaaS spam protection service for Web-sites.
CleanTalk uses protection methods which are invisible for site visitors.
Using CleanTalk eliminates needs in CAPTCHA, questions and answers, and other methods of protection, complicating the exchange of information on the site.
Leave it to your "trusted" website users to be involved in "flagging" any flavors of comments that you don't want to keep (eg spam).
Get flagged comments removed automatically (and as soon as there are enough flags, which are like votes for doing so), or periodically via a bulk operation.
Optionally you may also want to add the Comment Trust module to this mix. Here are some details about it (from its project page):
... auto-approves comments by users with previously-approved comments. It rewards trusted commenters with immediate approvals, while requiring you to approve the comments by new visitors. Works for both anonymous and authenticated users.
You can configure the threshold of approved comments an email address has to first achieve before gaining auto-approval. You can also provide a list of email addresses (or patterns of email addresses) to always exclude from auto-approval.
Compare it to the "review" process on sites like Drupal.SE: questions can be asked by mostly anybody, but if they don't fit the rules, then the reviewers will take care of getting them removed, closed, etc. So your comments could be like the "questions", and your trusted users could be like the reviewers.
To actually implement this concept/approach in any Drupal, you basically only need 2 or 3 modules (which should be used on mostly any site anyway, similar to the Views module that most sites use already):
- Use the Flag module to create one or more non-GLOBAL flags to be used by authenticated users.
For any comment for which such flag is turned on by "X" users (x=1, or 2, or ...? Pick what fits best), you even have (at least) 2 approaches to select from for processing them:
- let the Rules module "process" such comments. Typically just delete the comments that were flagged as inappropriate by X users.
- use Views and Views Bulk Operations to periodically perform a cleanup.
To continue the review process analogy on Drupal.SE, there are 4 types of reviews (= queues), i.e.:
- First Posts.
- Late Answers.
- Low Quality Posts.
- Suggested Edits.
So for these 4 review queues you would need 4 of such flags.
To process (approve or reject) these queues (= items that are "flagged" with one of those 4 flags), 2 of them can be processed by users with a rep of 2K, while the 2 other ones require a rep of 3K.
Your imagination is the limit
What I like most of all in using this Flag/Rules combination, is that your own imagination is the limit of all sorts of business logic you want to implement in your site (you don't really depend on whatever business logic that some other modules might have hardcoded included in them).
To continue the review process analogy on Drupal.SE, with those 4 reviews queues (2 of them require 2K, but 2 others require 3K): you could add some rule so that those who do not have 3K yet, can VIEW those queues already, though they do not have some option to approve or reject anything in such queue. One could argue if that is what you'd really want (some say yes, others say no), but the beauty of it (I think) is that you can leave that decission to whoever wants to be able to decide on that. And even if later on you change your mind, it's a 1 min rule modification ... done!
Referring to your "I want to configure my Drupal site ...": it's all a matter of just some site building techniques (and integrations between popular modules). Moreover upgrading to new releases of Drupal (like D8) should be straight forward ...
Message: Pretty sure that the Message module should come in handy also to further enhance this Views/Rules/Flag based approach (that there will be numerous situations where you'll want to take advantage of various features that this module offers on top of the other 3 modules). Even if it was only for notifications about new comments.
User Points: the Rules module integrates very well with the User Points module also! That might be worth considering for scenarios such as using Rules so that when a comment is flagged then the flagging user earns X points for doing so.
User preferences: you could add a flag that each user could use to yes/no be notified about comments to nodes that their userid is the author of. And combine that flag with a rule that will only notify a user after a comment is made on condition that the flag (= user preference) is set to indicate the author is interested in receiving such notifies.
Learn more about Rules/Flag
If you're not familiar with Rules, checkout the video tutorials Learn the Rules framework. And/or the similar set of 8 video tutorials about the Flag module. Especially these video tutorials:
The Session API module is required (a prereq) to make the Flag module functionality available for anonymous users (even with page caching enabled), Refer to the great article about Enhancing the Anonymous User Experience: Adventures with Flags to get this to work.