A Graylog server is a Java application that uses MongoDB as its database, and stores all the logs it receives into Elasticsearch. Needless to say, a Graylog stack has quite a lot of moving parts that are hard to set up and administrate, and you will need some dedicated people if you deploy it yourself.
A typical production setup will use a dedicated Elastic Search cluster and several Graylog nodes with a MondoDB instance on each. You can have a look at Graylog architecture documentation (http://docs.graylog.org/en/latest/pages/architecture.html) for more details.
An excellent way to try out Graylog is to use its Docker (https://docs.docker.com) image, as described here in http://docs.graylog.org/en/latest/pages/installation/docker.html ...