ArangoDB 单节点安装

1.前提条件

  1. 安装前确保当前节点已经完成 基础环境配置
  2. 本地安装依赖 Docker,版本号应大于 20.10.10
  3. 本次安装的 ArangoDB 软件版本为:3.11.5

2.环境和参数准备

  1. ArangoDB的数据目录设置:/data/arangodb
  2. 关闭系统透明大页,否则会影响 jemalloc 的内存分配
    echo madvise >/sys/kernel/mm/transparent_hugepage/enabled
    echo madvise >/sys/kernel/mm/transparent_hugepage/defrag
    
  3. 配置内核对于内存申请分配的行为
    sysctl -w vm.overcommit_memory=1 > /etc/sysctl.conf
    

3.安装及配置

3.1.安装 ArangoDB

在3个节点上分别安装 ArangoDB 环境,执行安装命令:

# 每个节点都需要执行
tar -xvzf arangodb-3.11.5-docker.tar.gz -C /opt
cd /opt/arangodb-3.11.5-docker

然后我们分别在每个节点导入基础镜像:

./install.sh

执行后会自动检测当前的 CPU 架构并导入镜像,当前支持 AMD64 和 ARM64 两类 CPU 芯片。

3.2.修改配置

创建数据目录:

mkdir -p /data/arangodb

然后编辑安装目录下的 docker-compose.yml 配置文件:

version: "3"

services:
  arangodb:
    container_name: arangodb-container
    image: arangodb:3.11.5
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - ARANGO_ROOT_PASSWORD=arango-123456
    volumes:
      - /data/arangodb:/var/lib/arangodb3
      - /var/log/arangodb:/var/log/arangodb
    ports:
      - "8529:8529"
    command:
      - "arangod"
      - "--server.storage-engine=rocksdb"
      - "--log.output"
      - "file:///var/log/arangodb/arangod.log"
      - "--log.level"
      - "queries=info"
      - "--log.output"
      - "queries=file:///var/log/arangodb/queries.log"
      - "--log.max-entry-length=268435456"
      - "--log.force-direct=false"
      - "--log.time-format=utc-datestring"
      - "--foxx.enable=false"

重点修改两个位置的配置:

  1. 修改 environment 下的 ARANGO_ROOT_PASSWORD 变量,设置 ArangoDB 的 root 用户密码。
  2. 修改 volumes 下的数据目录映射,只修改 : 前面的部分即可,当前是 /data/arangodb

其余的配置正常都不需要动,然后修改其他节点保证这个配置都完全一样。

3.3.启动服务

在每个节点的安装目录下依次执行命令启动:

./arangodb-server.sh start
# 查看状态
./arangodb-server.sh status

启动过程中通过 Docker Compose 或者日志文件都可以查看日志,比如:

# 需要在安装目录下执行
docker compose logs arangodb -f --tail=100
# 查看数据目录下的日志
taif -100f /var/log/arangodb/arangod.log

启动后可以访问安装机器的 8529 端口打开界面,然后输入 root 用户名和上面设置的密码即可登录成功,然后可以直接选择 _system 数据库后进入界面:

默认进入可以看到当前的状态等统计信息。

正常开发和运行时访问不建议使用 root 用户,可以创建专门应用使用的用户并设置访问权限即可。