Basic maintenance of a Zammad server

Hello,

Maybe this is a silly question, but please let me ask.

We decided to install Zammad using Docker Compose on a Linux server. I haven’t gained much experience with this product yet, so I’m a bit concerned that Zammad might run into problems if we don’t take important points into account.

Maybe someone can share important information about things we should regularly check from now on. Are there at least any important logs or services we should check continuously? We are going to integrate the server into our Checkmk monitoring environment.

Thanks in advance

Used Zammad version: 7.0.1-76f4f915.docker
Used Zammad installation type: docker-compose
Operating system: LTS 24.04
Browser + version: Version 148.0.3967.70

I monitor the health_check enpoint via zabbix and some triggers for errors that maybe occur.

Zabbix also checks, if there are OS updates (regular/security). When doing updates or upgrades on zammad be sure to read the release documentation. And then read the release docu again. At last step read the release docu. So you can find out, what you have to do, especially on major updates.

For me (debian package based install) it is a good practice to hold back zammad updates during an apt update/upgrade until everything is up to date and then do a solo apt update on the zammad package.

Anyhow, there is no direct need to watch the production log the entire day. I think you only have to look if there are some problems.

1 Like

We do the same plus to holding back zammad updates we also make sure that postgres is running prior to an update of zammad.

This with classic system monitoring is the way to go.

I’m running a small Zammad install for a client, using Zabbix to monitor that and everything else. I wasn’t able to get the JSON to process correctly to check the healthy/unhealthy piece. Any tips or link to documentation which you used?

This is my template for zammad monitoring:

Summary
zabbix_export:
  version: '7.0'
  template_groups:
    - uuid: e37491ca44fa4271911346b0802c4476
      name: 'Templates Custom'
  templates:
    - uuid: 77d30a26f25c42a081720fcc30610085
      template: 'Custom Helpdesk'
      name: 'Custom Helpdesk'
      groups:
        - name: 'Templates Custom'
      items:
        - uuid: 86a25377db5d4086a0557ea8377375c4
          name: 'Health Status'
          type: HTTP_AGENT
          key: health.status
          value_type: LOG
          url: '{$URL}'
          query_fields:
            - name: token
              value: '{$TOKENVALUE}'
          output_format: JSON
          triggers:
            - uuid: 092a433b93944fc28cf2750c5e98edd3
              expression: 'find(/Custom Helpdesk/health.status,,"regexp","Account in  is active but not fetched for about")=1'
              name: 'Emails are not fetched'
              priority: HIGH
              manual_close: 'YES'
            - uuid: 9306ca348a5a4905becf8de0a01b8656
              expression: 'find(/Custom Helpdesk/health.status,,"regexp","scheduler may not run")=1'
              name: 'Job scheduler is possible not running'
              priority: HIGH
              manual_close: 'YES'
            - uuid: cbcb84bd36d24b82972611b403746768
              expression: 'jsonpath(last(/Custom Helpdesk/health.status),"$.body.healthy","true")="false"'
              name: 'Status: Unhealthy'
              priority: HIGH
              manual_close: 'YES'
            - uuid: b5ab3dcde704453eb13b5505f37811ee
              expression: 'find(/Custom Helpdesk/health.status,,"regexp","emails that could not be processed")=1'
              name: 'Unprocessed Mails'
              priority: HIGH
              manual_close: 'YES'
      macros:
        - macro: '{$TOKENVALUE}'
        - macro: '{$URL}'

The template has two macros:

{$TOKENVALUE} this is for the token for the health_check endpoint. You can get the token from the monitoring site.

{$URL} this is the url of your zammad instances endpoint. For instance https://helpdesk.someurl.de/api/v1/monitoring/health_check

2 Likes