---
title: "Configure Aerospike Database"
description: "Configure Aerospike Database using the aerospike.conf file, including structure guides and version 7.0 changes."
---

# Configure Aerospike Database

> For the complete documentation index see: [llms.txt](https://aerospike.com/docs/llms.txt)
> 
> All documentation pages available in markdown.

This page describes how to configure a Database cluster node using the configuration file, `aerospike.conf`.

The configuration file is divided into different _contexts_, some of which are optional. These contexts can be in any order in the configuration file. A context can be further divided into sub-contexts. The maximum length of a line in the configuration file is 1,024 characters. The default location of the configuration file is `/etc/aerospike/aerospike.conf`.

## Sample configuration file

The following sample file shows the structure of `aerospike.conf` with the most common contexts and sub-contexts. The contexts in this example are empty and do not have actual parameters, indicated by empty braces `{}`. Sub-contexts are indented.

::: caution
This is not a working configuration example. Do not copy and try to use it as-is. It will not work without adding your parameters.
:::

```ruby
service {}               # Tuning parameters, process owner, feature

                         # key file

network {                # Used to configure intracluster and

                         # application-node communications

    service {}           # Tools/Application communications protocol

    fabric {}            # Intracluster communications protocol

    info {}              # Administrator telnet console protocol

    heartbeat {}         # Cluster formation protocol

}

security {               # (Optional, Enterprise Edition only) to enable

                         # access control on the cluster

}

logging {}               # Logging configuration

xdr {                    # (Optional, Enterprise Edition only) Configure

                         # Cross-Datacenter Replication

}

namespace {              # Define namespace record policies and storage

                         # engine

    storage-engine {}    # Configure data storage for the namespace

    set {}               # (Optional) Set specific record policies

}

mod-lua {                # location of UDF modules

}
```

## Configuration file changes

The following examples show how `aerospike.conf` changed in Database 7.0.0.

### Database 7.0.0 and later

```ruby
# Aerospike database developer configuration file.

service {

  run-as-daemon false # To work with gdb, and make console logging visible.

  # The number of concurrent connections to the database is limited by

  # proto-fd-max, and by the system's maximum number of open file descriptors.

  # See "man limits.conf" for how to set the system's "nofile" limit.

  proto-fd-max 1024

  work-directory run/work

  pidfile run/asd.pid

  cluster-name cakery

}

mod-lua {

  user-path run/work/usr/udf/lua

}

logging {

  # Log file must be an absolute path.

  file run/log/aerospike.log {

    context any info

  }

  console {

    context any info

  }

}

network {

  service {

    address any

    port 3000

  }

  heartbeat {

    mode multicast

    multicast-group 239.1.99.222

    port 9918

    # To use unicast-mesh heartbeats, remove the 3 lines above, and see

    # aerospike_mesh.conf for alternative.

    interval 150

    timeout 10

  }

  fabric {

    port 3001

  }

#  info {

#    port 3003

#  }

}

namespace test {

  replication-factor 2

  storage-engine memory {

    data-size 4G

  }

}
```

### Prior to Database 7.0.0

```ruby
# Aerospike database configuration file.

service {

  user root

  group root

  pidfile /var/run/aerospike/asd.pid

  proto-fd-max 15000

}

logging {

  # Log file must be an absolute path.

  file /var/log/aerospike/aerospike.log {

    context any info

  }

}

network {

  service {

    address any

    port 3000

  }

  heartbeat {

    mode multicast

    multicast-group 239.1.99.222

    port 9918

    # To use unicast-mesh heartbeats, remove the 3 lines above, and see

    # aerospike_mesh.conf for alternative.

    interval 150

    timeout 10

  }

  fabric {

    port 3001

  }

  info {

    port 3003

  }

}

namespace test {

  replication-factor 2

  memory-size 4G

  storage-engine memory

}
```

::: note
You can use any port between 1024 and 65335 for Aerospike, as long as the port is not in use by an existing process.
:::

### Configuration steps

1.  (If necessary) Obtain a [feature-key file](https://aerospike.com/docs/database/8.0.0/manage/planning/feature-key).
2.  Configure [network](https://aerospike.com/docs/database/8.0.0/manage/network) service and heartbeat sub-contexts.
3.  Configure [namespaces](https://aerospike.com/docs/database/8.0.0/manage/namespace).
4.  [Configuring Log Files](https://aerospike.com/docs/database/8.0.0/manage/logging/logs) and [Manually Rotating the Aerospike Log File](https://aerospike.com/docs/database/8.0.0/manage/logging/rotation).
5.  (Optional) Configure [security](https://aerospike.com/docs/database/8.0.0/manage/security/rbac).
6.  (Optional) Configure [rack-awareness](https://aerospike.com/docs/database/8.0.0/manage/namespace/rack-aware).
7.  (Optional) Configure [cross-datacenter replication](https://aerospike.com/docs/database/8.0.0/manage/xdr/dynamic-xdr).

### Where to Next

-   [Troubleshooting guide](https://aerospike.com/docs/database/8.0.0/advanced/troubleshoot)
-   [Knowledge base](https://support.aerospike.com/hc/en-us)
-   Reference manuals:
    -   [Configuration parameters](https://aerospike.com/docs/database/reference/config)
    -   [Info commands](https://aerospike.com/docs/database/reference/info)
    -   [Metrics](https://aerospike.com/docs/database/reference/metrics)
    -   [Server log messages](https://aerospike.com/docs/database/reference/logs)