Couchbase.IO.SendTimeoutExpiredException: The operation has timed out

Looking at your log files it is exactly 5 minutes between when the connection is started until it is disconnected.
(i.e. connection 58e60e3a-4c0d-4114-b8af-ea95e5c89519)

[DEBUG][2018-03-17 14:45:19,933] Couchbase.Authentication.SASL.ScramShaMechanism [8]
Client First Message 10.38.110.11:11210 - 58e60e3a-4c0d-4114-b8af-ea95e5c89519: n,n=cachedata,r=CfPttq8ZOx5epGtpC1E18o8nucvR [U:cachedata|P:

[WARN][2018-03-17 14:50:19,938] Couchbase.IO.ConnectionBase [49]
Handling disconnect for connection 58e60e3a-4c0d-4114-b8af-ea95e5c89519: Couchbase.IO.RemoteHostClosedException: The remote host (10.38.110.11:11210) has gracefully closed this connection.

If you have a multi-node Couchbase cluster I would suggest looking at the log files on those for cluster comms, you might find that node-to-node connections are also being dropped.

As a work to keep the connections active you could set the TCP keep alive to 60 seconds.