Monitoring deployment
Description
Monitoring enables tracking of metrics for both License Server and LLM Server.
The following services are utilized for monitoring:
- Prometheus
- Grafana Loki
- Grafana
Prometheus serves as the data source for application metrics in Grafana, while Grafana Loki acts as the data source for application logs in Grafana.
Both License Server and LLM Server expose their metrics in the Prometheus format. The Prometheus server collects these metrics, which are retrieved by Grafana and visualized using customizable dashboards.
Additionally, License Server and LLM Server generate logs. The Grafana Loki agent collects these application logs and forwards them to Grafana, where they are rendered.
Below, you will find detailed instructions on how to deploy monitoring services with an Ansible playbook.
Prerequisites
Install Ansible (>=2.15.0)
pip3 install ansible-core==2.17.7 ansible==10.7.0
Install Docker collection
ansible-galaxy collection install community.docker
Playbook Variables
Default values are provided for most variables
Change this variables in group_vars/all/common.yml
:
prometheus_host: "" # TODO: replace with actual host
prometheus_jobs: # TODO: replace with actual jobs configuration
- name: "prometheus-licence-server"
metrics_path: "/actuator/prometheus"
targets: [ "" ] # TODO: LICENCE_SERVER_HOST:LICENCE_SERVER_PORT
labels:
application: "Explyt licence server"
- name: "prometheus-llm-server"
metrics_path: "/metrics"
targets: [ "" ] # TODO: LLM_HOST:LLM_PORT or HAPROXY_HOST:HAPROXY_PORT
labels:
application: "Explyt llm server"
- name: "node-exporter-licence-server"
metrics_path: "/metrics"
targets: [ "" ] # TODO: NODE_EXPORTER_HOST:NODE_EXPORTER_PORT
labels:
server: "Explyt licence server machine"
- name: "llm-server-health"
metrics_path: "/probe"
targets: [ "" ] # TODO: LLM_HOST:LLM_PORT or HAPROXY_HOST:HAPROXY_PORT
labels:
server: "Explyt llm server"
__probe_http_url: "" # TODO: http://LLM_HOST:LLM_PORT/health or http://HAPROXY_HOST:HAPROXY_PORT/health
relabel_configs:
- source_labels: [ __probe_http_url ]
target_label: __param_target
- source_labels: [ __param_target ]
target_label: instance
- target_label: __address__
replacement: "" # TODO: BLACKBOX_HOST:BLACKBOX_PORT
Explyt Enterprise monitoring and logging deployment
Inventory file example:
[all:children]
monitoring
[monitoring]
monitoring_01 ansible_host=
To start deployment:
ansible-playbook -i ansible_hosts.ini deployment.yml