Issue with ElasticSearch and local storage

Infos:

  • Used Zammad version: 6.4.1-64
  • Used Zammad installation type: docker-compose
  • Operating system: Debian 12
  • Browser + version:

Expected behavior:

  • I finished migration from OTRS 5 to Zammad, and all is well. I see all tickets, all users. I managed to connect to EntraID, map users, connect to Office 365 and set signatures, groups, etc I finally turned on ElasticSearch, and I expected that the data would be indexed properly. I also turned on local storage using environment variables, so it will use local storage instead of PostgreSQL.

Actual behavior:

  • I see data is constantly reindexed. I looked, and I have ELASTICSEARCH_REINDEX, which is NOT set in the environment variables. Logs are not showing any error, just that the data is mapped to the index, then wait for a few minutes and then all the indexed data is deleted and recreated again.

Files are still inside the database. I set storage via UI but it completely ignores with no error in logs.

Steps to reproduce the behavior:

  • Docker compose is from here:

Overrides are here:


volumes:
zammad-storage:
driver: local
driver_opts:
type: none
o: bind
device: /opt/zammad/storage/files
postgresql-data:
driver: local
driver_opts:
type: none
o: bind
device: /opt/zammad/postgresql/data
zammad-backup:
driver: local
driver_opts:
type: none
o: bind
device: /opt/zammad/storage/backup
elasticsearch-data:
driver: local
driver_opts:
type: none
o: bind
device: /opt/zammad/elasticsearch/data

and .env vars are here:

Docker Environment Variables

Docker Environment Variables — Zammad System Documentation documentation

ELASTICSEARCH_VERSION=8.17.3
IMAGE_REPO=Package zammad · GitHub
MEMCACHE_SERVERS=zammad-memcached:11211
MEMCACHE_VERSION=1.6.37-alpine
NGINX_PORT=8080
NGINX_EXPOSE_PORT=8080
NGINX_CLIENT_MAX_BODY_SIZE=256M
POSTGRES_DB=zammad
POSTGRES_PASS=<%= @zammad_postgresql_pass %>
POSTGRES_USER=zammad

POSTGRES_HOST=zammad-postgresql

POSTGRES_PORT=5432

POSTGRES_VERSION=17.4-alpine
POSTGRESQL_OPTIONS=?pool=100

REDIS_URL=redis://zammad-redis:6379

REDIS_VERSION=7.4.2-alpine

RESTART=always

Use a fixed version. You are responsible to update this to newer patch level versions yourself.

VERSION=6.4.1-64

You can also use floating versions that will give you automatic updates:

VERSION=6.2 # all patchlevel updates

VERSION=6 # including minor updates

VERSION=latest # all updates of stable versions, including major

VERSION=develop # bleeding-edge development version

BACKUP_TIME=01:00
HOLD_DAYS=3
TZ=Europe/Berlin
ZAMMAD_FQDN=my.domain.com
ELASTICSEARCH_ENABLED=true
ELASTICSEARCH_HOST=zammad-elasticsearch
ELASTICSEARCH_PORT=9200
ELASTICSEARCH_SCHEMA=http
ELASTICSEARCH_NAMESPACE=zammad
ELASTICSEARCH_SSL_VERIFY=false
ELASTICSEARCH_PASS=zammad_elasticsearch_pass

Does anyone have any idea what I can do? I spent the whole week trying to fix this, and I tried to replace Bitnami Docker with an official one from ElasticSearch, but it is the same behaviour.

OK, this is resolved. Seems that if we set the env var:

ELASTICSEARCH_REINDEX=true

It will continuously reindex data from the database. Once the job is done with reindexing, it simply deletes old data after 30 seconds and starts reindexing again. I’m not sure if that is intended, but that is behaviour.

How I fixed: set var to false, restart docker compose and reindex manually:

rake zammad:searchindex:rebuild

Regarding exporting files, I find it unnecessary.

We have around 13k tickets, and the database is ~2 GB. While it honors the env var, it will not export old files from the database, so you have to trigger export manually. However, Zammad behaves very strangely during export, and it starts performing a backup every few minutes. While it does the job, I found it completely unnecessary as the database is optimised very well, so I kept all files inside it.

We are fully operational, and I thank you for this lovely piece of software.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.