AxonOps Server installation¶
Step 1 - Prerequisites¶
Elasticsearch stores the data collected by axon-server. AxonOps is currently only compatible with Elasticsearch 7.x, we recommend installing the latest available 7.x release.
Installing Elasticsearch¶
Select the OS Family.¶
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.16-amd64.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.16-amd64.deb.sha512
shasum -a 512 -c elasticsearch-7.17.16-amd64.deb.sha512
sudo dpkg -i elasticsearch-7.17.16-amd64.deb
elasticsearch-7.17.16-amd64.deb: OK
Increase the bulk queue size of Elasticsearch by running the following command:
sudo echo 'thread_pool.write.queue_size: 2000' >> /etc/elasticsearch/elasticsearch.yml
Increase the default heap size of elasticsearch by editing /etc/elasticsearch/jvm.options
.
Set Xmx and Xms to no more than 50% of your physical RAM.
Example:
From:
-Xms1g
-Xmx1g
-Xms6g
-Xmx6g
Elasticsearch requires memory for purposes other than the JVM heap and it is important to leave available memory(RAM) space for this.
Set the following index codec by running the following command:
sudo echo 'index.codec: best_compression' >> /etc/elasticsearch/elasticsearch.yml
Elasticsearch uses an mmapfs directory by default to store its indices.
The default operating system limits on mmap counts is likely to be too low, which may result in out of memory exceptions.
You can increase the limits by running the following command:
sudo sysctl -w vm.max_map_count=262144
To make this change persist across reboots run this command:
echo "vm.max_map_count = 262144" | sudo tee /etc/sysctl.d/10-elasticsearch.conf > /dev/null
Elasticsearch needs max file descriptors
system settings at least to 65536.
echo 'elasticsearch - nofile 65536' | sudo tee --append /etc/security/limits.conf > /dev/null
Start Elasticsearch¶
sudo systemctl start elasticsearch.service
After a short period of time, you can verify that your Elasticsearch node is running by sending an HTTP request to port 9200 on localhost:
curl "localhost:9200"
Step 2 - axon-server installation¶
Execute the following command to setup the AxonOps repository for your OS using the built in Package manager.
sudo apt-get update
sudo apt-get install -y curl gnupg ca-certificates
curl -L https://packages.axonops.com/apt/repo-signing-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/axonops.gpg
echo "deb [arch=arm64,amd64 signed-by=/usr/share/keyrings/axonops.gpg] https://packages.axonops.com/apt axonops-apt main" | sudo tee /etc/apt/sources.list.d/axonops-apt.list
sudo apt-get update
sudo apt-get install axon-server
Step 3 - axon-server configurations¶
Make sure elastic_host and elastic_port are corresponding to your Elasticsearch instance.
Basic Auth in Elasticsearch
- Create a user that has a dedicated role and username password.
- Please dont use any of the built in users for Elasticsearch.
To create users please refer to the Elasticsearch docs here
AxonOps Server configuration file location : /etc/axonops/axon-server.yml
host: 0.0.0.0 # axon-server listening address (used by axon-agents for connections) (env variable: AXONSERVER_HOST)
agents_port: 1888 # axon-server listening port for agent connections
api_host: 127.0.0.1 # axon-server listening address (used by axon-dash for connections)
api_port: 8080 # axon-server HTTP API listening port (used by axon-dash) (AXONSERVER_PORT)
elastic_hosts: # Elasticsearch endpoint (env variable:ELASTIC_HOSTS, comma separated list)
- http://localhost:9200
org_name: my-company
# SSL/TLS Settings for AxonOps Agent connections
tls:
mode: "disabled" # disabled, TLS
axon-dash: # This must point to the axon-dash address accessible from axon-server
host: 127.0.0.1
port: 3000
https: false
Step 4 - Start the server¶
sudo systemctl daemon-reload
sudo systemctl start axon-server
sudo systemctl status axon-server
This will start the axon-server
process as the axonops
user, which was created during the package installation. The default listening address is 0.0.0.0:8080
.
Package details¶
- Configuration:
/etc/axonops/axon-server.yml
- Binary:
/usr/share/axonops/axon-server
- Logs:
/var/log/axonops/axon-server.log
- Systemd service:
/usr/lib/systemd/system/axon-server.service
- Copyright :
/usr/share/doc/axonops/axon-server/copyright
- Licenses :
/usr/share/axonops/licenses/axon-server/
Step 5 - Installing axon-dash¶
Now axon-server is installed, you can start installing the GUI for it: axon-dash