Mongodb cluster issue
Mongodb recommended to have an odd number of servers in the cluster
  but I would like to ask whether or not it's mandatory for the cluster
  to function properly or would it be ok to make a cluster only with 2
  servers?


3 members (or a higher odd number) is really best, though. Replica sets go read only if a majority of the set isn't available, so if you lose a member in a two-member set the remaining member becomes read only.

You can run two full members plus an "voting-only" member (called an arbiter) as well. This is the smallest reasonably safe option for a replica set.

As per graylog documentation here We recommend to  deploy a MongoDB replica set.

MongoDB doesn’t have to run on dedicated servers for the workload generated by Graylog, but you should follow the recommendations given in the MongoDB documentation about architecture. Most important is that you have an odd number of MongoDB servers in the replica set.

In most setups, each Graylog server will also host an instance of MongoDB which is part of the same replica set and shares the data with all other nodes in the cluster.

As MongoDB Documentation here A secondary maintains a copy of the primary’s data set. To replicate data, a secondary applies operations from the primary’s oplog to its own data set in an asynchronous process. A replica set can have one or more secondaries.

The clients cannot write data to secondaries, clients can read data from secondary members

For your further ref here, here