@@ -167,6 +167,10 @@ function configure_cloudkitty {
167
167
iniset $CLOUDKITTY_CONF storage_${CLOUDKITTY_STORAGE_BACKEND} index_name ${CLOUDKITTY_OPENSEARCH_INDEX}
168
168
fi
169
169
170
+ if [ " $CLOUDKITTY_STORAGE_BACKEND " == " loki" ]; then
171
+ iniset $CLOUDKITTY_CONF storage_loki url ${CLOUDKITTY_LOKI_URL}
172
+ fi
173
+
170
174
# collect
171
175
iniset $CLOUDKITTY_CONF collect collector $CLOUDKITTY_COLLECTOR
172
176
iniset $CLOUDKITTY_CONF " collector_${CLOUDKITTY_COLLECTOR} " auth_section authinfos
@@ -366,6 +370,53 @@ function install_opensearch {
366
370
sudo systemctl start opensearch || sudo systemctl restart opensearch
367
371
}
368
372
373
+ function start_loki {
374
+ LOKI_SYSTEMD_SERVICE=" devstack@loki.service"
375
+ loki_command=" $CLOUDKITTY_BIN_DIR /loki"
376
+ loki_command+=" --config.file=${CLOUDKITTY_DIR} /devstack/files/loki-config.yaml"
377
+
378
+ write_user_unit_file $LOKI_SYSTEMD_SERVICE " $loki_command " " " " $STACK_USER "
379
+
380
+ enable_service $LOKI_SYSTEMD_SERVICE
381
+ start_service $LOKI_SYSTEMD_SERVICE
382
+ }
383
+
384
+ function install_loki_ubuntu {
385
+ local loki_url=" https://github.com/grafana/loki/releases/download/v3.5.4/loki-linux-amd64.zip"
386
+ local loki_tmp=" /tmp/loki-linux-amd64.zip"
387
+
388
+ sudo apt-get install -y unzip wget
389
+
390
+ wget -O ${loki_tmp} ${loki_url}
391
+ unzip -o ${loki_tmp} -d /tmp
392
+ sudo mv /tmp/loki-linux-amd64 $CLOUDKITTY_BIN_DIR /loki
393
+ sudo chmod +x $CLOUDKITTY_BIN_DIR /loki
394
+ }
395
+
396
+ function install_loki_fedora {
397
+ local loki_url=" https://github.com/grafana/loki/releases/download/v3.5.4/loki-linux-amd64.zip"
398
+ local loki_tmp=" /tmp/loki-linux-amd64.zip"
399
+
400
+ sudo dnf install -y unzip wget
401
+
402
+ wget -O ${loki_tmp} ${loki_url}
403
+ unzip -o ${loki_tmp} -d /tmp
404
+ sudo mv /tmp/loki-linux-amd64 $CLOUDKITTY_BIN_DIR /loki
405
+ sudo chmod +x $CLOUDKITTY_BIN_DIR /loki
406
+ }
407
+
408
+ function install_loki {
409
+ if is_ubuntu; then
410
+ install_loki_ubuntu
411
+ elif is_fedora; then
412
+ install_loki_fedora
413
+ else
414
+ die $LINENO " Distribution must be Debian or Fedora-based"
415
+ fi
416
+ # Start Loki service
417
+ start_loki
418
+ }
419
+
369
420
# install_cloudkitty() - Collect source and prepare
370
421
function install_cloudkitty {
371
422
git_clone $CLOUDKITTY_REPO $CLOUDKITTY_DIR $CLOUDKITTY_BRANCH
@@ -378,6 +429,8 @@ function install_cloudkitty {
378
429
install_elasticsearch
379
430
elif [ $CLOUDKITTY_STORAGE_BACKEND == ' opensearch' ]; then
380
431
install_opensearch
432
+ elif [ $CLOUDKITTY_STORAGE_BACKEND == " loki" ]; then
433
+ install_loki
381
434
fi
382
435
if [ ${CLOUDKITTY_USE_UWSGI,,} == ' true' ]; then
383
436
pip_install uwsgi
0 commit comments