I just installed Graylog on my Ubuntu 16.04.2 LTS Digital Ocean droplet and everything went somewhat smooth, except I get an invalid credentials error. Funny thing is, logs just say Connection Refused.
I did open up a bunch of ports in ufw, which helped:
username:~$ sudo netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1755/master
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 1402/mongod
tcp6 0 0 127.0.0.1:9200 :::* LISTEN 2022/java
tcp6 0 0 :::80 :::* LISTEN 1932/apache2
tcp6 0 0 :::2000 :::* LISTEN 1399/sshd
tcp6 0 0 127.0.0.1:9300 :::* LISTEN 2022/java
tcp6 0 0 :::25 :::* LISTEN 1755/master
tcp6 0 0 :::443 :::* LISTEN 1932/apache2
tcp6 0 0 127.0.0.1:12900 :::* LISTEN 1351/java
tcp6 0 0 :::9350 :::* LISTEN 1351/java
tcp6 0 0 :::9000 :::* LISTEN 1365/java
(snipped a few from above)
I used this walk through:
It is for the wrong version of ubuntu, but didn’t see any apparent issues during process.
.config
# If you are running more than one instances of graylog2-server you have to select one of these
# instances as master. The master will perform some periodical tasks that non-masters won't perform.
is_master = true
# The auto-generated node ID will be stored in this file and read after restarts. It is a good idea
# to use an absolute file path here if you are starting graylog2-server from init scripts or similar.
node_id_file = /etc/graylog/server/node-id
# You MUST set a secret to secure/pepper the stored user passwords here. Use at least 64 characters.
# Generate one by using for example: pwgen -N 1 -s 96
password_secret = Vqab1CRQ4k83oNL0y1JVvC5CN9tDtG2KejxC4ISNdn10bywAu1pZJig3fqIL12Q4ReRAzoHqACxizvRyBEZ9g25Tdt7O3jLl
# The default root user is named 'admin'
#root_username = admin
# You MUST specify a hash password for the root user (which you only need to initially set up the
# system and in case you lose connectivity to your authentication backend)
# This password cannot be changed using the API or via the web interface. If you need to change it,
# modify it in this file.
# Create one by using for example: echo -n yourpassword | shasum -a 256
# and put the resulting hash value into the following line
root_password_sha2 = ***secrethash ;p***
# The email address of the root user.
# Default is empty
root_email = ""
# The time zone setting of the root user.
# The configured time zone must be parseable by http://www.joda.org/joda-time/apidocs/org/joda/time/DateTimeZone.html#forID-java.lang.String-
# Default is UTC
root_timezone = EST
# Set plugin directory here (relative or absolute)
plugin_dir = /usr/share/graylog-server/plugin
# REST API listen URI. Must be reachable by other graylog2-server nodes if you run a cluster.
rest_listen_uri = http://127.0.0.1:12900/
# Enable CORS headers for REST API. This is necessary for JS-clients accessing the server directly.
# If these are disabled, modern browsers will not be able to retrieve resources from the server.
# This is disabled by default. Uncomment the next line to enable it.
#rest_enable_cors = true
# Enable GZIP support for REST API. This compresses API responses and therefore helps to reduce
# overall round trip times. This is disabled by default. Uncomment the next line to enable it.
#rest_enable_gzip = true
# Enable HTTPS support for the REST API. This secures the communication with the REST API with
# TLS to prevent request forgery and eavesdropping. This is disabled by default. Uncomment the
# next line to enable it.
#rest_enable_tls = true
# The X.509 certificate file to use for securing the REST API.
#rest_tls_cert_file = /path/to/graylog2.crt
# The private key to use for securing the REST API.
#rest_tls_key_file = /path/to/graylog2.key
# The password to unlock the private key used for securing the REST API.
#rest_tls_key_password = secret
# The maximum size of a single HTTP chunk in bytes.
#rest_max_chunk_size = 8192
# The maximum size of the HTTP request headers in bytes.
#rest_max_header_size = 8192
# The maximal length of the initial HTTP/1.1 line in bytes.
#rest_max_initial_line_length = 4096
# The size of the execution handler thread pool used exclusively for serving the REST API.
#rest_thread_pool_size = 16
# The size of the worker thread pool used exclusively for serving the REST API.
#rest_worker_threads_max_pool_size = 16
# Embedded Elasticsearch configuration file
# pay attention to the working directory of the server, maybe use an absolute path here
#elasticsearch_config_file = /etc/graylog/server/elasticsearch.yml
# Graylog will use multiple indices to store documents in. You can configured the strategy it uses to determine
# when to rotate the currently active write index.
# It supports multiple rotation strategies:
# - "count" of messages per index, use elasticsearch_max_docs_per_index below to configure
# - "size" per index, use elasticsearch_max_size_per_index below to configure
# valid values are "count", "size" and "time", default is "count"
rotation_strategy = count
# (Approximate) maximum size in bytes per Elasticsearch index on disk before a new index is being created, also see
# no_retention and elasticsearch_max_number_of_indices. Default is 1GB.
# Configure this if you used 'rotation_strategy = size' above.
#elasticsearch_max_size_per_index = 1073741824
# (Approximate) maximum time before a new Elasticsearch index is being created, also see
# no_retention and elasticsearch_max_number_of_indices. Default is 1 day.
# Configure this if you used 'rotation_strategy = time' above.
# Please note that this rotation period does not look at the time specified in the received messages, but is
# using the real clock value to decide when to rotate the index!
# Specify the time using a duration and a suffix indicating which unit you want:
# 1w = 1 week
# 1d = 1 day
# 12h = 12 hours
# Permitted suffixes are: d for day, h for hour, m for minute, s for second.
#elasticsearch_max_time_per_index = 1d
# Disable checking the version of Elasticsearch for being compatible with this Graylog release.
# WARNING: Using Graylog with unsupported and untested versions of Elasticsearch may lead to data loss!
#elasticsearch_disable_version_check = true
# Disable message retention on this node, i. e. disable Elasticsearch index rotation.
#no_retention = false
# How many indices do you want to keep?
elasticsearch_max_number_of_indices = 20
# Decide what happens with the oldest indices when the maximum number of indices is reached.
# The following strategies are availble:
# - delete # Deletes the index completely (Default)
# - close # Closes the index and hides it from the system. Can be re-opened later.
retention_strategy = delete
# How many Elasticsearch shards and replicas should be used per index? Note that this only applies to newly created indices.
elasticsearch_shards = 1
elasticsearch_replicas = 0
# Prefix for all Elasticsearch indices and index aliases managed by Graylog.
elasticsearch_index_prefix = graylog2
# Name of the Elasticsearch index template used by Graylog to apply the mandatory index mapping.
# # Default: graylog-internal
#elasticsearch_template_name = graylog-internal
# Do you want to allow searches with leading wildcards? This can be extremely resource hungry and should only
# be enabled with care. See also: https://www.graylog.org/documentation/general/queries/
allow_leading_wildcard_searches = false
# Do you want to allow searches to be highlighted? Depending on the size of your messages this can be memory hungry and
# should only be enabled after making sure your Elasticsearch cluster has enough memory.
allow_highlighting = false
# settings to be passed to elasticsearch's client (overriding those in the provided elasticsearch_config_file)
# all these
# this must be the same as for your Elasticsearch cluster
elasticsearch_cluster_name = graylog-development
# you could also leave this out, but makes it easier to identify the graylog2 client instance
#elasticsearch_node_name = graylog2-server
# we don't want the graylog2 server to store any data, or be master node
#elasticsearch_node_master = false
#elasticsearch_node_data = false
# use a different port if you run multiple Elasticsearch nodes on one machine
#elasticsearch_transport_tcp_port = 9350
# we don't need to run the embedded HTTP server here
#elasticsearch_http_enabled = false
elasticsearch_discovery_zen_ping_multicast_enabled = false
elasticsearch_discovery_zen_ping_unicast_hosts = 127.0.0.1:9300
# Change the following setting if you are running into problems with timeouts during Elasticsearch cluster discovery.
# The setting is specified in milliseconds, the default is 5000ms (5 seconds).
#elasticsearch_cluster_discovery_timeout = 5000
# the following settings allow to change the bind addresses for the Elasticsearch client in graylog2
# these settings are empty by default, letting Elasticsearch choose automatically,
# override them here or in the 'elasticsearch_config_file' if you need to bind to a special address
# refer to http://www.elasticsearch.org/guide/en/elasticsearch/reference/0.90/modules-network.html
# for special values here
#elasticsearch_network_host =
#elasticsearch_network_bind_host =
#elasticsearch_network_publish_host =
# The total amount of time discovery will look for other Elasticsearch nodes in the cluster
# before giving up and declaring the current node master.
#elasticsearch_discovery_initial_state_timeout = 3s
# Analyzer (tokenizer) to use for message and full_message field. The "standard" filter usually is a good idea.
# All supported analyzers are: standard, simple, whitespace, stop, keyword, pattern, language, snowball, custom
# Elasticsearch documentation: http://www.elasticsearch.org/guide/reference/index-modules/analysis/
# Note that this setting only takes effect on newly created indices.
elasticsearch_analyzer = standard
# Global request timeout for Elasticsearch requests (e. g. during search, index creation, or index time-range
# calculations) based on a best-effort to restrict the runtime of Elasticsearch operations.
# Default: 1m
#elasticsearch_request_timeout = 1m
# Time interval for index range information cleanups. This setting defines how often stale index range information
# is being purged from the database.
# Default: 1h
#index_ranges_cleanup_interval = 1h
# Batch size for the Elasticsearch output. This is the maximum (!) number of messages the Elasticsearch output
# module will get at once and write to Elasticsearch in a batch call. If the configured batch size has not been
# reached within output_flush_interval seconds, everything that is available will be flushed at once. Remember
# that every outputbuffer processor manages its own batch and performs its own batch write calls.
# ("outputbuffer_processors" variable)
output_batch_size = 500
# Flush interval (in seconds) for the Elasticsearch output. This is the maximum amount of time between two
# batches of messages written to Elasticsearch. It is only effective at all if your minimum number of messages
# for this time period is less than output_batch_size * outputbuffer_processors.
output_flush_interval = 1
# As stream outputs are loaded only on demand, an output which is failing to initialize will be tried over and
# over again. To prevent this, the following configuration options define after how many faults an output will
# not be tried again for an also configurable amount of seconds.
output_fault_count_threshold = 5
output_fault_penalty_seconds = 30
# The number of parallel running processors.
# Raise this number if your buffers are filling up.
processbuffer_processors = 5
outputbuffer_processors = 3
#outputbuffer_processor_keep_alive_time = 5000
#outputbuffer_processor_threads_core_pool_size = 3
#outputbuffer_processor_threads_max_pool_size = 30
# UDP receive buffer size for all message inputs (e. g. SyslogUDPInput).
#udp_recvbuffer_sizes = 1048576
# Wait strategy describing how buffer processors wait on a cursor sequence. (default: sleeping)
# Possible types:
# - yielding
# Compromise between performance and CPU usage.
# - sleeping
# Compromise between performance and CPU usage. Latency spikes can occur after quiet periods.
# - blocking
# High throughput, low latency, higher CPU usage.
# - busy_spinning
# Avoids syscalls which could introduce latency jitter. Best when threads can be bound to specific CPU cores.
processor_wait_strategy = blocking
# Size of internal ring buffers. Raise this if raising outputbuffer_processors does not help anymore.
# For optimum performance your LogMessage objects in the ring buffer should fit in your CPU L3 cache.
# Start server with --statistics flag to see buffer utilization.
# Must be a power of 2. (512, 1024, 2048, ...)
ring_size = 65536
inputbuffer_ring_size = 65536
inputbuffer_processors = 2
inputbuffer_wait_strategy = blocking
# Enable the disk based message journal.
message_journal_enabled = true
# The directory which will be used to store the message journal. The directory must me exclusively used by Graylog and
# must not contain any other files than the ones created by Graylog itself.
message_journal_dir = /var/lib/graylog-server/journal
# Journal hold messages before they could be written to Elasticsearch.
# For a maximum of 12 hours or 5 GB whichever happens first.
# During normal operation the journal will be smaller.
#message_journal_max_age = 12h
#message_journal_max_size = 5gb
#message_journal_flush_age = 1m
#message_journal_flush_interval = 1000000
#message_journal_segment_age = 1h
#message_journal_segment_size = 100mb
etc... etc...
graylog-web log:
2017-07-13T02:40:40.950-04:00 - [ERROR] - from org.graylog2.restclient.lib.ApiClient in servernodes-refresh-0
Connection refused: /127.0.0.1:12900
2017-07-13T02:40:45.954-04:00 - [ERROR] - from org.graylog2.restclient.lib.ApiClient in servernodes-refresh-0
Connection refused: /127.0.0.1:12900
2017-07-13T02:50:35.819-04:00 - [ERROR] - from org.graylog2.restclient.lib.ApiClient in main
Connection refused: /127.0.0.1:12900
2017-07-13T02:50:35.897-04:00 - [ERROR] - from org.graylog2.restclient.lib.ApiClient in servernodes-refresh-0
Connection refused: /127.0.0.1:12900
2017-07-13T02:50:36.119-04:00 - [INFO] - from play in main
Application started (Prod)
2017-07-13T02:50:36.494-04:00 - [INFO] - from play in main
Listening for HTTP on /0:0:0:0:0:0:0:0:9000
2017-07-13T02:50:40.907-04:00 - [ERROR] - from org.graylog2.restclient.lib.ApiClient in servernodes-refresh-0
Connection refused: /127.0.0.1:12900
2017-07-13T02:50:45.911-04:00 - [ERROR] - from org.graylog2.restclient.lib.ApiClient in servernodes-refresh-0
Connection refused: /127.0.0.1:12900
2017-07-13T02:50:50.917-04:00 - [ERROR] - from org.graylog2.restclient.lib.ApiClient in servernodes-refresh-0
Connection refused: /127.0.0.1:12900
2017-07-13T02:50:55.924-04:00 - [ERROR] - from org.graylog2.restclient.lib.ApiClient in servernodes-refresh-0
Connection refused: /127.0.0.1:12900
2017-07-13T02:51:00.929-04:00 - [ERROR] - from org.graylog2.restclient.lib.ApiClient in servernodes-refresh-0
Connection refused: /127.0.0.1:12900
2017-07-13T02:51:05.933-04:00 - [ERROR] - from org.graylog2.restclient.lib.ApiClient in servernodes-refresh-0
Connection refused: /127.0.0.1:12900
Graylog-server log:
2017-07-13T02:40:49.724-04:00 INFO [InputSetupService] Triggering launching persisted inputs, node transitioned from Uninitialized?[LB:DEAD] to Running?[LB:ALIVE]
2017-07-13T02:49:40.447-04:00 INFO [Server] SIGNAL received. Shutting down.
2017-07-13T02:50:24.784-04:00 INFO [CmdLineTool] Loaded plugins: [Anonymous Usage Statistics 1.2.1 [org.graylog.plugins.usagestatistics.UsageStatsPlugin]]
2017-07-13T02:50:25.279-04:00 INFO [CmdLineTool] Running with JVM arguments: -Xms1g -Xmx1g -XX:NewRatio=1 -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+ResizeTLAB -XX:+$
2017-07-13T02:50:39.254-04:00 INFO [InputBufferImpl] Message journal is enabled.
2017-07-13T02:50:40.027-04:00 INFO [LogManager] Loading logs.
2017-07-13T02:50:40.417-04:00 INFO [LogManager] Logs loading complete.
2017-07-13T02:50:40.418-04:00 INFO [KafkaJournal] Initialized Kafka based journal at /var/lib/graylog-server/journal
2017-07-13T02:50:40.492-04:00 INFO [InputBufferImpl] Initialized InputBufferImpl with ring size <65536> and wait strategy <BlockingWaitStrategy>, running 2 parallel m$
2017-07-13T02:50:41.443-04:00 INFO [NodeId] Node ID: 5bb6ed18-45fe-4c64-975d-5fc5e621cbdb
2017-07-13T02:50:42.059-04:00 INFO [node] [graylog2-server] version[1.7.5], pid[1351], build[00f95f4/2016-02-02T09:55:30Z]
2017-07-13T02:50:42.059-04:00 INFO [node] [graylog2-server] initializing ...
2017-07-13T02:50:42.365-04:00 INFO [plugins] [graylog2-server] loaded [graylog-monitor], sites []
2017-07-13T02:50:47.517-04:00 INFO [node] [graylog2-server] initialized
2017-07-13T02:50:47.627-04:00 INFO [Version] HV000001: Hibernate Validator 5.2.2.Final
2017-07-13T02:50:47.985-04:00 INFO [ProcessBuffer] Initialized ProcessBuffer with ring size <65536> and wait strategy <BlockingWaitStrategy>.
2017-07-13T02:50:52.787-04:00 INFO [RulesEngineProvider] No static rules file loaded.
2017-07-13T02:50:52.887-04:00 INFO [OutputBuffer] Initialized OutputBuffer with ring size <65536> and wait strategy <BlockingWaitStrategy>.
2017-07-13T02:50:54.407-04:00 INFO [ServerBootstrap] Graylog server 1.3.4 (0d67a80) starting up
2017-07-13T02:50:54.408-04:00 INFO [ServerBootstrap] JRE: Oracle Corporation 1.8.0_131 on Linux 3.13.0-36-generic
2017-07-13T02:50:54.408-04:00 INFO [ServerBootstrap] Deployment: deb
2017-07-13T02:50:54.409-04:00 INFO [ServerBootstrap] OS: Ubuntu 14.04.2 LTS (trusty)
2017-07-13T02:50:54.409-04:00 INFO [ServerBootstrap] Arch: amd64
2017-07-13T02:50:54.497-04:00 INFO [PeriodicalsService] Starting 24 periodicals ...
2017-07-13T02:50:54.511-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.ThroughputCalculator] periodical in [0s], polling every [1s].
2017-07-13T02:50:54.504-04:00 INFO [node] [graylog2-server] starting ...
2017-07-13T02:50:54.517-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.AlertScannerThread] periodical in [10s], polling every [60s].
2017-07-13T02:50:54.522-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.BatchedElasticSearchOutputFlushThread] periodical in [0s], polling every [1s].
2017-07-13T02:50:54.524-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.ClusterHealthCheckThread] periodical in [0s], polling every [20s].
2017-07-13T02:50:54.526-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.ContentPackLoaderPeriodical] periodical, running forever.
2017-07-13T02:50:54.535-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.DeadLetterThread] periodical, running forever.
2017-07-13T02:50:54.550-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.GarbageCollectionWarningThread] periodical, running forever.
2017-07-13T02:50:54.552-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.IndexerClusterCheckerThread] periodical in [0s], polling every [30s].
2017-07-13T02:50:54.562-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.IndexRetentionThread] periodical in [0s], polling every [300s].
2017-07-13T02:50:54.564-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.IndexRotationThread] periodical in [0s], polling every [10s].
2017-07-13T02:50:54.564-04:00 INFO [IndexRetentionThread] Elasticsearch cluster not available, skipping index retention checks.
2017-07-13T02:50:54.571-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.NodePingThread] periodical in [0s], polling every [1s].
2017-07-13T02:50:54.584-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.StreamThroughputCounterManagerThread] periodical in [0s], polling every [1s].
2017-07-13T02:50:54.585-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.VersionCheckThread] periodical in [300s], polling every [1800s].
2017-07-13T02:50:54.585-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.ThrottleStateUpdaterThread] periodical in [1s], polling every [1s].
2017-07-13T02:50:54.585-04:00 INFO [Periodicals] Starting [org.graylog2.events.ClusterEventPeriodical] periodical in [0s], polling every [1s].
2017-07-13T02:50:54.586-04:00 INFO [Periodicals] Starting [org.graylog2.events.ClusterEventCleanupPeriodical] periodical in [0s], polling every [300s].
2017-07-13T02:50:54.586-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.ClusterIdGeneratorPeriodical] periodical, running forever.
2017-07-13T02:50:54.645-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.PurgeExpiredCollectorsThread] periodical in [0s], polling every [3600s].
2017-07-13T02:50:54.645-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.IndexRangesMigrationPeriodical] periodical, running forever.
2017-07-13T02:50:54.656-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.IndexRangesCleanupPeriodical] periodical in [15s], polling every [3600s].
2017-07-13T02:50:54.716-04:00 INFO [IndexerClusterCheckerThread] Indexer not fully initialized yet. Skipping periodic cluster check.
2017-07-13T02:50:54.826-04:00 INFO [PeriodicalsService] Not starting [org.graylog2.periodical.UserPermissionMigrationPeriodical] periodical. Not configured to run on $
2017-07-13T02:50:54.827-04:00 INFO [Periodicals] Starting [org.graylog2.periodical.AlarmCallbacksMigrationPeriodical] periodical, running forever.
2017-07-13T02:50:54.827-04:00 INFO [Periodicals] Starting [org.graylog.plugins.usagestatistics.UsageStatsNodePeriodical] periodical in [300s], polling every [21600s].
2017-07-13T02:50:54.828-04:00 INFO [Periodicals] Starting [org.graylog.plugins.usagestatistics.UsageStatsClusterPeriodical] periodical in [300s], polling every [21600$
2017-07-13T02:50:55.065-04:00 INFO [transport] [graylog2-server] bound_address {inet[/0:0:0:0:0:0:0:0:9350]}, publish_address {inet[/[[publicip]:9350]}
2017-07-13T02:50:55.105-04:00 INFO [discovery] [graylog2-server] graylog-development/JdguqkspRu2_jvxkd9OPvg
2017-07-13T02:50:58.106-04:00 WARN [discovery] [graylog2-server] waited for 3s and no initial state was set by the discovery
2017-07-13T02:50:58.107-04:00 INFO [node] [graylog2-server] started
2017-07-13T02:50:58.426-04:00 INFO [service] [graylog2-server] detected_master [Meteorite][NKWqDlxkT2-eOx-o6185Rg][riz-om][inet[/127.0.0.1:9300]], added {[Meteorite][$
2017-07-13T02:51:08.649-04:00 INFO [RestApiService] Adding security context factory: <org.graylog2.security.ShiroSecurityContextFactory@3475c3e9>
2017-07-13T02:51:08.690-04:00 INFO [RestApiService] Started REST API at <http://127.0.0.1:12900/>
2017-07-13T02:51:08.693-04:00 INFO [ServiceManagerListener] Services are healthy
2017-07-13T02:51:08.694-04:00 INFO [ServerBootstrap] Services started, startup times in ms: {InputSetupService [RUNNING]=12, MetricsReporterService [RUNNING]=44, Kafk$
2017-07-13T02:51:08.694-04:00 INFO [InputSetupService] Triggering launching persisted inputs, node transitioned from Uninitialized?[LB:DEAD] to Running?[LB:ALIVE]
2017-07-13T02:51:08.701-04:00 INFO [ServerBootstrap] Graylog server up and running.