Установка системы мониторинга для Entaxy ION (All-in-one)
Инструкция описывает два сценария установки системы мониторинга:
Установка Grafana
Grafana — это мультиплатформенное веб-приложение для аналитики и интерактивной визуализации с открытым исходным кодом.
Для установки Grafana и включения сервиса выполним следующие команды:
$ sudo apt-get install -y libfontconfig1 musl
$ wget https://dl.grafana.com/oss/release/grafana_11.3.1_amd64.deb
$ sudo dpkg -i grafana_11.3.1_amd64.deb
$ sudo /bin/systemctl daemon-reload
$ sudo /bin/systemctl enable grafana-server
$ sudo /bin/systemctl start grafana-server
Установка и настройка Prometheus
-
Скачиваем Prometheus
-
Распаковываем в /opt
sudo tar xvf ./prometheus-3.0.0.linux-amd64.tar.gz --directory /opt/
-
Создаём файл конфигурации prometheus.yml
sudo nano /opt/prometheus-3.0.0.linux-amd64/prometheus.yml
global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. alerting: alertmanagers: - static_configs: - targets: rule_files: scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] - job_name: 'java-entaxy' metrics_path: /metrics static_configs: - targets: ['YYY.YYY.YYY.YY:9191'] - job_name: 'entaxy' metrics_path: /metrics static_configs: - targets: ['YYY.YYY.YYY.YY:9191'] - job_name: 'emdev-pilot-app' metrics_path: /metrics static_configs: - targets: ['YYY.YYY.YYY.YY:9100']
В нашем случае 'YYY.YYY.YYY.YY' - это сервер мониторинга. -
Создаём юнит для запуска сервиса /etc/systemd/system/prometheus.service
sudo nano /etc/systemd/system/prometheus.service
[Unit] Description=prometheus After=network.target StartLimitIntervalSec=0 [Service] Type=simple User=prometheus Group=prometheus WorkingDirectory=/opt/prometheus-3.0.0.linux-amd64 LimitAS=infinity LimitRSS=infinity LimitCORE=infinity LimitNOFILE=65536 ExecStart=/opt/prometheus-3.0.0.linux-amd64/prometheus Restart=always [Install] WantedBy=multi-user.target
-
Создаем пользователя prometheus:
sudo adduser --system --home /opt/prometheus-3.0.0.linux-amd64/ --shell /sbin/nologin --group prometheus sudo chown -R prometheus.prometheus /opt/prometheus-3.0.0.linux-amd64/
-
Переинициализируем systemd-unit, включаем и запускаем сервис. Проверяем статус.
systemctl daemon-reload systemctl enable prometheus.service systemctl start prometheus.service systemctl status prometheus.service
-
После входа в веб интерфейс Grafana необходимо зарегистрировать новый Datasource Prometheus с адресом:
Установка и настройка Loki
Loki – это система хранения логов.
-
Скачиваем Loki
-
Распаковываем в /opt/
sudo unzip ./loki-linux-amd64.zip -d /opt/loki
-
Создаем пользователя, даем права на папку:
sudo adduser --system --home /opt/loki/ --shell /sbin/nologin --group loki sudo chown -R loki.loki /opt/loki/
-
Создаем файл сервиса /etc/systemd/system/loki.service
sudo nano /etc/systemd/system/loki.service
[Unit] Description=loki After=network.target StartLimitIntervalSec=0 [Service] Type=simple User=loki Group=loki WorkingDirectory=/opt/loki LimitAS=infinity LimitRSS=infinity LimitCORE=infinity LimitNOFILE=65536 ExecStart=/opt/loki/loki-linux-amd64 -config.file=/opt/loki/loki-local-config.yaml Restart=always [Install] WantedBy=multi-user.target
-
Создаем файл /opt/loki/loki-local-config.yaml
sudo nano /opt/loki/loki-local-config.yaml
auth_enabled: false server: http_listen_port: 3100 ingester: lifecycler: address: 127.0.0.1 ring: kvstore: store: inmemory replication_factor: 1 final_sleep: 0s chunk_idle_period: 5m chunk_retain_period: 30s max_transfer_retries: 0 schema_config: configs: - from: 2018-04-15 store: boltdb object_store: filesystem schema: v13 index: prefix: index_ period: 168h storage_config: boltdb: directory: /opt/loki/data/index filesystem: directory: /opt/loki/data/chunks limits_config: # enforce_metric_name: false reject_old_samples: true reject_old_samples_max_age: 168h max_query_lookback: 0s allow_structured_metadata: false #chunk_store_config: # max_look_back_period: 0s table_manager: retention_deletes_enabled: false retention_period: 0s
-
Переинициализируем systemd-unit, включаем и запускаем сервис. Проверяем статус.
sudo systemctl daemon-reload sudo systemctl enable loki.service sudo systemctl start loki.service sudo systemctl status loki.service
-
После входа в веб интерфейс Grafana необходимо зарегистрировать новый Datasource Loki с адресом:
Установка и настройка Fluent-bit
Fluent bit – это легковесная служба обработки и пересылки логов с открытым исходным кодом.
-
Скачиваем Fluent-bit:
-
Распаковываем во временную папку
unzip v3.2.1.zip -d temp/
-
Устанавливаем необходимые пакеты
sudo apt-get install -y build-essential flex bison libyaml-dev libssl-dev pkg-config cmake
-
Переходим в папку build
cd temp/fluent-bit-3.2.1/build/
-
Запускаем сборку
cmake .. make
-
Копируем файл bin/fluent-bit в /opt/fluent-bit
mkdir /opt/fluent-bit cp bin/fluent-bit /opt/fluent-bit/
-
Создаём в папке /opt/fluent-bit файл fluentBit.conf
sudo nano /opt/fluent-bit/fluentBit.conf
[SERVICE] Flush 5 Daemon Off Log_Level info Parsers_File /opt/fluentbit/parsers.conf [INPUT] Name tail Path /opt/karaf/data/log/artemis.log Refresh_Interval 5 Buffer_Chunk_Size 100k Buffer_Max_Size 1M Tag artemis Key message Multiline On Multiline_Flush 1 Parser_Firstline artemis [INPUT] Name tail Path /opt/karaf/data/log/karaf.log Refresh_Interval 5 Buffer_Chunk_Size 100k Buffer_Max_Size 1M Tag entaxy Key message Multiline On Multiline_Flush 1 Parser_Firstline entaxy [INPUT] Name tail Path /opt/entaxy/data/log/cef-audit.log Buffer_Chunk_Size 100k Buffer_Max_Size 1M Tag cef Key message Parser cef [OUTPUT] Name loki Match cef host YYY.YYY.YYY.YY port 3100 line_format json labels job=karaf-cef-1 label_keys $signature, $name, $severity [OUTPUT] Name loki Match artemis host YYY.YYY.YYY.YY port 3100 line_format json labels job=amq-1 label_keys $log_level [OUTPUT] Name loki Match entaxy host YYY.YYY.YYY.YY port 3100 line_format json labels job=entaxy-1, service=$data['service'], operation=$data['operation'], objectId=$data['objectId'], parameter=$data['parameter'], sender=$data['sender'], receiver=$data['receiver'] label_keys $log_level, $request
В параметре Path нужно указать путь к логам Artemis, в параметрах host и port нужно соответственно указать адрес и порт сервиса Loki.
В нашем случае 'YYY.YYY.YYY.YY' - это сервер мониторинга. -
Создаем файл parsers.conf в папке /opt/fluent-bit
sudo nano /opt/fluent-bit/parsers.conf
[PARSER] Name observability Format json Time_Key time Time_Format %Y-%m-%dT%H:%M:%S.%L [PARSER] Name entaxy Format regex Regex ^(?<date>\d{2,4}\-\d{2,4}\-\d{2,4}T\d{2,4}\:\d{2,4}\:\d{2,4}\,\d{1,6}) \| (?<log_level>[^\s]+)[\s]+\| (?<thread>[^\|]+) \| (?<object>[^\s]+)[\s]+\| (?<bundle>\d{2,4} \- [^\s]+ \- [^\s]+) \| (((?<request>\w{8}\-\w{4}\-\w{4}-\w{4}\-\w{12}))#(?<data>[^#]+)#[\s]*?(?<step>.*)| ?(?<message>.*))$ Decode_Field_As json data Time_Key date Time_Format %Y-%m-%dT%H:%M:%S,%L Time_Offset +0300 Time_Keep On [PARSER] Name artemis Format regex Regex ^(?<date>\d{2,4}\-\d{2,4}\-\d{2,4}T\d{2,4}\:\d{2,4}\:\d{2,4}\,\d{1,6}) \| (?<log_level>[^\s]+)[\s]+\| (?<thread>[^\|]+) \| (?<object>[^\s]+)[\s]+\| (?<bundle>\d{2,4} \- [^\s]+ \- [^\s]+) \| ?(?<message>.*)$ Time_Key date Time_Format %Y-%m-%dT%H:%M:%S,%f Time_Offset +0300 [PARSER] Name cef Format regex Regex ^(?<cef>[^\|]+)\|(?<vendor>[^\|]+)\|(?<product>[^\|]+)\|(?<version>[^\|]+)\|(?<signature>[^\|]+)\|(?<name>[^\|]+)\|(?<severity>[^\|]+)\|(?<extension>[^\|]+)$ Time_Offset +0300
-
Создаем юнит для запуска сервиса /etc/systemd/system/fluentbit.service
sudo nano /etc/systemd/system/fluentbit.service
[Unit] Description=fluentbit After=network.target StartLimitIntervalSec=0 [Service] Type=simple User=entaxy Group=entaxy WorkingDirectory=/opt/fluent-bit LimitAS=infinity LimitRSS=infinity LimitCORE=infinity LimitNOFILE=65536 ExecStart=/opt/fluent-bit/fluent-bit -c /opt/fluent-bit/fluentBit.conf Restart=always [Install] WantedBy=multi-user.target
-
Переинициализируем systemd-unit, включаем и запускаем сервис. Проверяем статус.
sudo systemctl daemon-reload sudo systemctl enable fluentbit.service sudo systemctl start fluentbit.service sudo systemctl status fluentbit.service
Установка и настройка Node Exporter
Node_Exporter – это агент для сбора метрик состояния серверов. Агент работает на стандартном порту – 9100.
-
Скачиваем дистрибутив
-
Распаковываем
sudo tar xvf node_exporter-1.8.2.linux-amd64.tar.gz --directory /opt/
-
Создаем файл сервиса
sudo nano /etc/systemd/system/node_exporter.service
[Unit] Description=Node Exporter After=network.target [Service] User=entaxy Group=entaxy Type=simple ExecStart=/opt/node_exporter-1.8.2.linux-amd64/node_exporter [Install] WantedBy=multi-user.target
-
Активируем и запускаем сервис
sudo systemctl daemon-reload sudo systemctl enable node_exporter.service sudo systemctl start node_exporter.service sudo systemctl status node_exporter.service
Установка и настройка Telegraf
Telegraf – это агент для сбора java-метрик, jmx-метрик Entaxy ION и ActiveMQ Artemis.
-
Устанавливаем агент
wget -q https://repos.influxdata.com/influxdata-archive_compat.key echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list sudo apt-get update && sudo apt-get install -y telegraf
После завершения установки переходим к каталогу с конфигурационными файлами Telegraf и удаляем стандартные конфиги telegraf.conf и telegraf.conf.sample
-
Создаем новый конфиг telegraf.conf со следующими параметрами:
sudo nano /etc/telegraf/telegraf.conf
[global_tags] [agent] interval = "10s" round_interval = false metric_batch_size = 100000 metric_buffer_limit = 10000 collection_jitter = "0s" flush_interval = "10s" flush_jitter = "0s" precision = "" [[outputs.prometheus_client]] listen = ":9191" path = "/metrics" expiration_interval = "0s" metric_version = 2 [[inputs.jolokia2_agent]] urls = ["http://localhost:8181/hawtio/jolokia"] username = "karaf" password = "karaf" [[inputs.jolokia2_agent.metric]] name = "context" mbean = "org.apache.camel:context=*,type=context,name=*" paths = ["ExchangesCompleted", "ExchangesFailed", "ExchangesInflight", "ExchangesTotal", "MinProcessingTime", "MaxProcessingTime", "MeanProcessingTime", "Redeliveries"] tag_keys = ["name"] [[inputs.jolokia2_agent.metric]] name = "routes" mbean = "org.apache.camel:context=*,type=routes,name=*" paths = ["ExchangesCompleted", "ExchangesFailed", "ExchangesInflight", "ExchangesTotal", "MinProcessingTime", "MaxProcessingTime", "MeanProcessingTime", "Redeliveries", "CamelId"] tag_keys = ["name", "CamelId"] [[inputs.jolokia2_agent.metric]] name = "java_runtime" mbean = "java.lang:type=Runtime" paths = ["Uptime"] [[inputs.jolokia2_agent.metric]] name = "java_memory" mbean = "java.lang:type=Memory" paths = ["HeapMemoryUsage", "NonHeapMemoryUsage", "ObjectPendingFinalizationCount"] [[inputs.jolokia2_agent.metric]] name = "java_garbage_collector" mbean = "java.lang:name=*,type=GarbageCollector" paths = ["CollectionTime", "CollectionCount"] tag_keys = ["name"] [[inputs.jolokia2_agent.metric]] name = "java_last_garbage_collection" mbean = "java.lang:name=*,type=GarbageCollector" paths = ["LastGcInfo"] tag_keys = ["name"] [[inputs.jolokia2_agent.metric]] name = "java_threading" mbean = "java.lang:type=Threading" paths = ["TotalStartedThreadCount", "ThreadCount", "DaemonThreadCount", "PeakThreadCount"] [[inputs.jolokia2_agent.metric]] name = "java_class_loading" mbean = "java.lang:type=ClassLoading" paths = ["LoadedClassCount", "UnloadedClassCount", "TotalLoadedClassCount"] [[inputs.jolokia2_agent.metric]] name = "java_memory_pool" mbean = "java.lang:name=*,type=MemoryPool" paths = ["Usage", "PeakUsage", "CollectionUsage"] tag_keys = ["name"] [[inputs.jolokia2_agent.metric]] name = "java" mbean = "java.lang:type=OperatingSystem" paths = ["OpenFileDescriptorCount", "ProcessCpuLoad", "ProcessCpuTime", "SystemCpuLoad", "SystemLoadAverage"] #artemis [[inputs.jolokia2_agent.metric]] name = "address" mbean = "org.apache.activemq.artemis:broker=*,component=addresses,address=*" paths = ["NumberOfMessages", "MessageCount", "RoutedMessageCount", "UnRoutedMessageCount"] tag_keys = ["address"] [[inputs.jolokia2_agent.metric]] name = "queue" mbean = "org.apache.activemq.artemis:broker=*,component=addresses,address=*,subcomponent=queues,routing-type=*,queue=*" paths = ["AcknowledgeAttempts", "MessageCount", "MessagesAcknowledged", "MessagesAdded", "MessagesExpired", "MessagesKilled", "PersistentSize"] tag_keys = ["queue", "address"] [[inputs.jolokia2_agent.metric]] name = "java_runtime" mbean = "java.lang:type=Runtime" paths = ["Uptime"] [[inputs.jolokia2_agent.metric]] name = "java_memory" mbean = "java.lang:type=Memory" paths = ["HeapMemoryUsage", "NonHeapMemoryUsage", "ObjectPendingFinalizationCount"] [[inputs.jolokia2_agent.metric]] name = "java_garbage_collector" mbean = "java.lang:name=*,type=GarbageCollector" paths = ["CollectionTime", "CollectionCount"] tag_keys = ["name"] [[inputs.jolokia2_agent.metric]] name = "java_last_garbage_collection" mbean = "java.lang:name=*,type=GarbageCollector" paths = ["LastGcInfo"] tag_keys = ["name"] [[inputs.jolokia2_agent.metric]] name = "java_threading" mbean = "java.lang:type=Threading" paths = ["TotalStartedThreadCount", "ThreadCount", "DaemonThreadCount", "PeakThreadCount"] [[inputs.jolokia2_agent.metric]] name = "java_class_loading" mbean = "java.lang:type=ClassLoading" paths = ["LoadedClassCount", "UnloadedClassCount", "TotalLoadedClassCount"] [[inputs.jolokia2_agent.metric]] name = "java_memory_pool" mbean = "java.lang:name=*,type=MemoryPool" paths = ["Usage", "PeakUsage", "CollectionUsage"] tag_keys = ["name"] [[inputs.jolokia2_agent.metric]] name = "java" mbean = "java.lang:type=OperatingSystem" paths = ["OpenFileDescriptorCount", "ProcessCpuLoad", "ProcessCpuTime", "SystemCpuLoad", "SystemLoadAverage"] [[processors.regex]] namepass = ["address", "queue", "context", "routes"] [[processors.regex.tags]] key = "address" pattern = "\"(.*)\"" replacement = "${1}" [[processors.regex.tags]] key = "queue" pattern = "\"(.*)\"" replacement = "${1}" [[processors.regex.tags]] key = "name" pattern = "\"(.*)\"" replacement = "${1}"
Путь к метрикам сообщений, который указан в секции «address», должен соответствовать настройкам имени конкретной установки Artemis
После отключения политики и настройки доступов включаем и запускаем сервис. Проверяем статус.
sudo systemctl enable telegraf.service sudo systemctl start telegraf.service sudo systemctl status telegraf.service
Теперь агент отправляет все метрики на страницу /metrics по портам: 9191 для Entaxy ION и 9090 для ActiveMQ Artemis.
Дополнительные действия с дашбордами Grafana
После импорта дашбордов Grafana, необходимо сделать дополнительные действия.
Нужно зайти в настройки дашборда и проверить, что правильно указан Data source и имя job’ы соответствует заданной в prometheus.yml (см. раздел Установка и настройка Prometheus).
Также нужно указать значение в поле Custom all value.
-
Пример настроек для Artemis
-
Пример настроек для Karaf
Работа с Grafana
Создание пользователей и изменение пароля администратора
-
Создание пользователей и изменение пароля администратора
Web-интерфейс Grafana - http://yourip:3000/ -
Для авторизации в систему мониторинга используется стандартный логин и пароль администратора admin/admin При авторизации система предложит изменить пароль учетной записи.
-
Можно изменить пароль учетной записи администратора или пропустить этот шаг нажав на кнопку «Skip». В дальнейшем, пароль от учетной записи можно поменять под авторизованным в системе пользователем наведя курсором мышки на лого пользователя в левом нижнем углу экрана и выбрав пункт «Change password».
-
Создание новых пользователей в Grafana происходит в меню «Server admin» (пиктограмма щита в левом нижнем углу экрана), пункте «Users».
-
По кнопке «New user» можно создать нового пользователя, указав необходимые данные и пароль на открывшейся странице
Дэшборды
Для мониторинга серверов в Grafana предустановлен набор типовых дэшбордов с настроенными графиками для отслеживания состояния серверов и приложений.
-
Entaxy environment services - панель агрегирующая состояния по сервисам ОС, используемым в среде Entaxy;
-
Karaf cluster - здоровье кластера среды исполнения Apache Karaf;
-
Node_Exporter_Full - панель с графиками, отображающими состояние виртуальной машины (CPU, RAM, Memory и т.д.);
-
Java - панель с графиками, отображающими состояние виртуальной машины Java;
-
Apache Camel - dashboard с графиками, отображающими состояние пакетов и их прохождение;
-
ActiveMQ - панель с графиками, отображающими состояние сообщений принятых/отправленных в брокере.
Описания дэшбордов
-
Camel - dashboard с графиками, отображающими состояние пакетов и их прохождение (кол-во)
-
Прямая ссылка на дэшборд: http://yourip:3000/d/sHSIELIWz/camel
-
В дэшборде имеются следующие графики:
-
Exchanges Complited (Пакетов отправлено) - отображает количество успешно отправленных пакетов с разделением по маршрутам, в которых произошел обмен этими пакетами. Все новые маршруты динамически (автоматически) добавляются в график.
-
Exchanges Failed (Пакетов не отправлено) - отображает количество не отправленных пакетов с разделением по маршрутам, в которых произошел сбой при обмене этими пакетами. Все новые маршруты динамически (автоматически) добавляются в график.
-
Exchanges In Flight (Пакетов в обработке) - отображает количество пакетов, находящихся в обработке с разделением по маршрутам, в которых происходит обработка этих пакетов. Все новые маршруты динамически (автоматически) добавляются в график.
-
Started Routes (Запущенные маршруты) - отображает маршруты по которым был запущен обмен пакетами с разделением по названию маршрута. Все новые маршруты динамически (автоматически) добавляются в график.
-
Logs (Логи) – Логи ИШ Entaxy ION.
Любой из графиков можно приблизить, наведя на него курсором и нажав кнопку «V».
-
-
-
ActiveMQ - dashboard с графиками, отображающими состояние сообщений принятых/отправленных в брокере
-
Прямая ссылка на дэшборд: http://yourip:3000/d/Flk6mRNWk/activemq
-
В дэшборде имеются следующие графики:
-
Number Of Messages (Количество сообщений) - отображает общее количество сообщений с разделением по адресам, на которые были отправлены эти сообщения. Все новые адреса динамически (автоматически) добавляются в график.
-
Routed Message Count (Количество доставленных сообщений) - отображает количество успешно доставленных сообщений с разделением по адресам, на которые были доставлены эти сообщения. Все новые адреса динамически (автоматически) добавляются в график.
-
Unrouted Message Count (Количество не доставленных сообщений) - отображает количество не доставленных сообщений с разделением по адресам, на которые не были доставлены эти сообщения. Все новые адреса динамически (автоматически) добавляются в график.
-
Logs (Логи) – Логи брокера сообщений ActiveMQ Artemis.
Любой из графиков можно приблизить, наведя на него курсором и нажав кнопку «V».
-
-
-
Java - dashboard с графиками, отображающими состояние виртуальной машины, приложения которой используют Java
-
Прямая ссылка на дэшборд: http://yourip:3000/d/7622/java
-
В дэшборде имеются следующие графики:
-
CPU Usage (Использование ЦПУ) – Отображает в процентном соотношении использование ядер ЦПУ java-приложением.
-
Memory Heap/NON Heap (Память в куче/не в куче) – Отображает часть активно используемой памяти с объектами и ссылками. Требует активного мониторинга.
-
Class loading (Классов загружено) – Количество загруженных классов java-приложением.
-
Threads used (Потоков задействовано) – Количество активных потоков в java-приложении.
-
Open File Descriptors (Файловый дескриптор) - Количество открытых соединений с файловой системой и сокетов.
-
GC time/1 min. rate (Время работы сборщика мусора) – Время работы сборки мусора в java-приложении.
-
GC count (Количество сборок мусора) – Количество произведенных сборок мусора.
Любой из графиков можно приблизить, наведя на него курсором и нажав кнопку «V».
-
-
-
Node_Exporter_Full - dashboard с графиками, отображающими состояние виртуальной машины (CPU, RAM, Memory и т.д.)
-
Прямая ссылка на дэшборд: http://yourip:3000/d/lXqnWBGZz/node-exporter-full
-
В дэшборде имеются следующие графики, на которые стоит обратить наибольшее внимание:
-
CPU Busy (Нагрузка ЦПУ) – Нагрузка на ядра центрального процессора сервера
-
Used RAM Memory (Использование ОЗУ) – Общее количество использованной оперативной памяти на сервере
-
Used SWAP (Использование свопа) – Количество дополнительной памяти на жёстком диске, которая была использована в случае исчерпания гарантированного объема оперативной памяти
-
Used Root FS (Использование корневого раздела) – Количество памяти на жёстком диске, которое занято корневым разделом сервера
-
CPU System Load (1 min avg) (Нагрузка ЦПУ задачами за минуту) – Нагрузка на ЦПУ сервера в процентном соотношении по активным задачам за минуту
-
CPU System Load (5 min avg) (Нагрузка ЦПУ задачами за 5 минут) – Нагрузка на ЦПУ сервера в процентном соотношении по активным задачам за 5 минут
Любой из графиков можно приблизить наведя на него курсором и нажав кнопку «V».
-
-
Сбор и анализ журналов
Grafana: Explore
Фильтрация логов осуществляется через раздел Explore в Grafana. С помощью конструктора запросов устанавливаются параметры фильтрации логов, возможен полнотекстный поиск, поиск по уровню записи и дате. Так же возможна агрегация и статистическая обработка записей.
Бизнес мониторинг
Для мониторинга интеграций предусмотрена панель Transactions, агрегирующая статусы обработанных сообщений, для зарегистрированных интеграций сервисов.
-
Из панели Transactions возможен переход на трассировку сообщения на панели Process, на которой выводится вся записанная в лог информация по процессу.
Оповещения
-
Для уведомлений по нештатным ситуациям используется функциональность Alerting сервера Grafana;
-
Alert rules раздел правил срабатывания оповещений;
-
Contact points группы адресов и каналы для уведомления;
-
Notification policies установка соответствия уведомлений и групп ответственных для оповещения.