{"id":359641,"date":"2024-05-21T00:36:49","date_gmt":"2024-05-21T00:36:49","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=359641"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=359641","title":{"rendered":"<span>\u0414\u0435\u043b\u0430\u0435\u043c \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0434\u043b\u044f \u043b\u043e\u0433\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Promtail Loki Grafana<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c Grafana \u0432\u0435\u0440\u0441\u0438\u0438 10.2, Promtail \u0438 Loki \u0432\u0435\u0440\u0441\u0438\u0438 2.9.2. \u0415\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u043f\u0440\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0441\u0442\u0435\u043a, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 <a href=\"https:\/\/grafana.com\/oss\/loki\/\" rel=\"noopener noreferrer nofollow\">\u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c<\/a>. \u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434 Windows, \u0434\u043b\u044f Linux \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0447\u0438\u0441\u0442\u043e \u043a\u043e\u0441\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435. \u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0442\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 Grafana \u0438 \u043f\u0440\u043e\u0447\u0435\u0435.<\/p>\n<h2>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430<\/h2>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 Grafana \u0432\u043e\u0442 <a href=\"https:\/\/grafana.com\/grafana\/download?edition=enterprise&amp;pg=get&amp;plcmt=selfmanaged-box1-cta1&amp;platform=windows\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0415\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 Enterpise \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 <em>Sorry, our service is currently not available in your region<\/em>. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 OSS.<\/p>\n<p>\u0411\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 Loki \u0438 Promtail \u043b\u0435\u0436\u0430\u0442 \u0432\u043e\u0442 <a href=\"https:\/\/github.com\/grafana\/loki\/releases\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a> <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/-w\/qu\/os\/-wquoscnvligbiu93glmpgbzsdk.png\" data-src=\"https:\/\/habrastorage.org\/webt\/-w\/qu\/os\/-wquoscnvligbiu93glmpgbzsdk.png\"\/><\/figure>\n<p> \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u0443-\u0442\u043e \u043d\u0435 \u043d\u0440\u0430\u0432\u044f\u0442\u0441\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438, \u0442\u043e \u0432\u043e\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 <a href=\"https:\/\/grafana.com\/docs\/loki\/latest\/send-data\/promtail\/installation\/\" rel=\"noopener noreferrer nofollow\">Promtail<\/a> \u0438 <a href=\"https:\/\/grafana.com\/docs\/loki\/latest\/setup\/install\/\" rel=\"noopener noreferrer nofollow\">Loki<\/a>. \u0414\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u0432\u0435\u0440\u0441\u0438\u0438 2.9.2 \u0434\u043b\u044f Promtail <a href=\"https:\/\/raw.githubusercontent.com\/grafana\/loki\/v2.9.2\/\/clients\/cmd\/promtail\/promtail-local-config.yaml\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u0430 \u0434\u043b\u044f Loki <a href=\"https:\/\/raw.githubusercontent.com\/grafana\/loki\/v2.9.2\/cmd\/loki\/loki-local-config.yaml\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u0434\u0440\u0443\u0433\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f, \u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0432 \u0441\u0441\u044b\u043b\u043a\u0430\u0445 <strong>v2.9.2<\/strong> \u043d\u0430 \u043d\u0443\u0436\u043d\u0443\u044e. <\/p>\n<p>\u041b\u043e\u0433\u0438 \u0431\u0443\u0434\u0443\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430<\/p>\n<pre><code class=\"powershell\">[dateTime] [tenantId] [severity] [module] [message] <\/code><\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043b\u043e\u0433\u0435<\/p>\n<pre><code class=\"bash\">[01.11.2023 17:07:59] [node001] [INFO] [Export.Csv] [rsvp_flow_stateMachine: entering] <\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 <strong>\u043e\u0441\u043e\u0431\u043e\u0435<\/strong> \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0442\u044b \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0427\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d \u0432 \u043b\u043e\u0433\u0430\u0445, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0444\u0438\u0433 promtail. \u0417\u0434\u0435\u0441\u044c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435. \u0412 \u0440\u0430\u0437\u043d\u044b\u0445 \u0447\u0430\u0441\u043e\u0432\u044b\u0445 \u043f\u043e\u044f\u0441\u0430\u0445 \u043b\u0435\u0433\u043a\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043b\u043e\u0433\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445 \u0438 \u0432\u0434\u0432\u043e\u0439\u043d\u0435 \u043b\u0435\u0433\u043a\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f \u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043e\u0431\u043b\u0430\u043a\u0435.<\/p>\n<p>\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044f \u0441\u0435\u0431\u0435 \u0434\u0435\u043b\u0430\u043b \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043b\u043e\u0433\u043e\u0432. \u0412\u044b\u0434\u0430\u0435\u0442 \u043e\u043d \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043c\u043d\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043c\u043d\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430. \u0423 \u043a\u043e\u0433\u043e \u043d\u0435\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043b\u043e\u0433\u043e\u0432 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432, \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u0438\u043a \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0442\u044f \u0431\u044b \u0441\u043e\u0442\u043d\u044f \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u0410 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Promtail \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Promtail<\/h2>\n<p>\u0423 Promtail \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435<\/p>\n<ul>\n<li>\n<p><em>&#8212;dry-run<\/em> \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 Loki, \u0442\u0430\u043a\u0436\u0435 \u043b\u043e\u0433\u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u043c\u0435\u0441\u0442\u0430 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435. \u041c\u043e\u0436\u043d\u043e \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 Promtail, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p><em>&#8212;inspect<\/em> \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Promtail \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043b\u043e\u0433\u0444\u0430\u0439\u043b \u043e\u0434\u043d\u0443 \u0437\u0430\u043f\u0438\u0441\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c Promtail. \u041a\u043e\u043d\u0444\u0438\u0433 \u043c\u0435\u043d\u044f\u0435\u043c \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u0432\u043e\u0442 \u0442\u0430\u043a<\/p>\n<pre><code class=\"bash\">promtail-windows-amd64 --dry-run --inspect --config.file=promtail-local-config.yaml [01.11.2023 17:07:59] [node001] [INFO] [Export.Csv] [rsvp_flow_stateMachine: entering state SESSIONED] [inspect: regex stage]: {stages.Entry}.Extracted[\"module\"]:         +: Export.Csv {stages.Entry}.Extracted[\"msg\"]:         +: rsvp_flow_stateMachine: entering state SESSIONED {stages.Entry}.Extracted[\"severity\"]:         +: INFO {stages.Entry}.Extracted[\"tenantid\"]:         +: node001 {stages.Entry}.Extracted[\"time\"]:         +: 01.11.2023 17:07:59 [inspect: labels stage]: {stages.Entry}.Entry.Labels:         -: {filename=\"c:\\\\LogManagement\\\\logs\\\\test.log\", job=\"logs\"}         +: {filename=\"c:\\\\LogManagement\\\\logs\\\\test.log\", job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"} [inspect: timestamp stage]: {stages.Entry}.Entry.Entry.Timestamp:         -: 2023-11-03 16:32:11.2903454 +0700 +07         +: 2023-11-01 17:07:59 +0700 +07 [inspect: labeldrop stage]: {stages.Entry}.Entry.Labels:         -: {filename=\"c:\\\\LogManagement\\\\logs\\\\test.log\", job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"}         +: {job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"} [inspect: template stage]: {stages.Entry}.Extracted[\"msgData\"]:         +: rsvp_flow_stateMachine: entering state SESSIONED [inspect: output stage]: {stages.Entry}.Entry.Entry.Line:         -: [01.11.2023 17:07:59] [node001] [INFO] [Export.Csv] [rsvp_flow_stateMachine: entering state SESSIONED]         +: rsvp_flow_stateMachine: entering state SESSIONED 2023-11-01T17:07:59+0700{job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"}  rsvp_flow_stateMachine: entering state SESSIONED <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u043f\u043e \u0447\u0430\u0441\u0442\u044f\u043c. \u0415\u0441\u043b\u0438 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0441\u0440\u0430\u0437\u0443, \u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0432\u0435\u0441\u044c \u043a\u043e\u043d\u0444\u0438\u0433 \u0446\u0435\u043b\u0438\u043a\u043e\u043c.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0435\u0440\u0435\u043c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433, \u0432\u043e\u0442 \u044d\u0442\u0443 \u0447\u0430\u0441\u0442\u044c \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u0430\u043a \u0435\u0441\u0442\u044c<\/p>\n<pre><code class=\"bash\">server:   http_listen_port: 9080   grpc_listen_port: 0  positions:   filename: \/tmp\/positions.yaml  clients:   - url: http:\/\/localhost:3100\/loki\/api\/v1\/push <\/code><\/pre>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u0435\u043d\u044f\u0435\u043c <em>path<\/em> \u0438 <em>job<\/em>.<\/p>\n<p><em>job<\/em> logs \u043c\u0435\u0442\u043a\u0430 \u0434\u043b\u044f \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 (\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e)<br \/> <em>path<\/em> \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 (\u0438\u043b\u0438 \u0444\u0430\u0439\u043b\u0430\u043c) \u043b\u043e\u0433\u043e\u0432. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d log file rotation, \u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d, \u0447\u0442\u043e\u0431\u044b promtail \u0442\u043e\u0447\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u043b \u043d\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b.<\/p>\n<pre><code class=\"bash\">scrape_configs: - job_name: system   static_configs:   - targets:       - localhost     labels:       job: logs       __path__: c:\\LogManagement\\logs\\test.log <\/code><\/pre>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u0431\u043e\u0440 \u043b\u043e\u0433\u043e\u0432. \u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0441\u0442\u0430\u0434\u0438\u044f\u043c\/\u044d\u0442\u0430\u043f\u0430\u043c, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432 <a href=\"https:\/\/grafana.com\/docs\/loki\/latest\/send-data\/promtail\/stages\/#prometheus-pipeline-stages\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>. \u0414\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0443 \u0441 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438. \u0418\u043c\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445. \u0414\u043b\u044f json \u0438\u043b\u0438 logfmt \u0435\u0441\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 json \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/p>\n<pre><code class=\"bash\">  pipeline_stages:     - regex:         expression:           \\[(?P&lt;time>.*?)\\] \\[(?P&lt;tenantid>.*?)\\] \\[(?P&lt;severity>.*?)\\] \\[(?P&lt;module>.*?)\\] \\[(?P&lt;msg>.*?)\\] <\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0437\u0431\u043e\u0440\u0430<\/p>\n<pre><code class=\"bash\">[01.11.2023 17:07:59] [node001] [INFO] [Export.Csv] [rsvp_flow_stateMachine: entering state SESSIONED] [inspect: regex stage]: {stages.Entry}.Extracted[\"module\"]:         +: Export.Csv {stages.Entry}.Extracted[\"msg\"]:         +: rsvp_flow_stateMachine: entering state SESSIONED {stages.Entry}.Extracted[\"severity\"]:         +: INFO {stages.Entry}.Extracted[\"tenantid\"]:         +: node001 {stages.Entry}.Extracted[\"time\"]:         +: 01.11.2023 17:07:59 <\/code><\/pre>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0441\u0442\u0430\u0434\u0438\u044f \u043c\u0435\u0442\u043e\u043a, \u0442\u0443\u0442 \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0443 \u0437\u0430\u043f\u0438\u0441\u0438.<\/p>\n<pre><code class=\"bash\">    - labels:         tenantid:         severity:         module: <\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0438\u0436\u0435, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a\u0438\u0435 \u0431\u044b\u043b\u0438 \u043c\u0435\u0442\u043a\u0438 \u0434\u043e, \u0438 \u043a\u0430\u043a\u0438\u0435 \u0441\u0442\u0430\u043b\u0438 \u043f\u043e\u0441\u043b\u0435.<\/p>\n<pre><code class=\"bash\">[inspect: labels stage]: {stages.Entry}.Entry.Labels:         -: {filename=\"c:\\\\LogManagement\\\\logs\\\\test.log\", job=\"logs\"}         +: {filename=\"c:\\\\LogManagement\\\\logs\\\\test.log\", job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"} <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c &#8212; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438. \u0412 \u043c\u043e\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432 \u043b\u043e\u0433\u0430\u0445 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u044f\u0432\u043d\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0444\u0438\u0433. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435 \u0442\u0430\u043a, <em>location<\/em> \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u0442\u0435, <em>format<\/em> \u043c\u0435\u043d\u044f\u0435\u0442\u0435 \u043f\u043e\u0434 \u0441\u0432\u043e\u0439. \u0412 Promtail \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Go \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0434\u0430\u0442. \u041a\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c, \u0432\u043e\u0442 <a href=\"https:\/\/gosamples.dev\/date-time-format-cheatsheet\/\" rel=\"noopener noreferrer nofollow\">\u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430<\/a>. \u041a\u043e\u0434\u044b \u0442\u0430\u0439\u043c\u0437\u043e\u043d \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_tz_database_time_zones\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<pre><code class=\"bash\">    - timestamp:         format: 02.01.2006 15:04:05         source: time         location: Asia\/Krasnoyarsk <\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u0430\u043f\u0430 \u043d\u0438\u0436\u0435, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0447\u0442\u043e \u0434\u0430\u0442\u0430 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0430\u0441\u044c \u043d\u0430 2 \u0434\u043d\u044f. \u0412 \u0444\u0430\u0439\u043b\u0435 \u043b\u043e\u0433\u043e\u0432 \u0434\u0430\u0442\u0430 1 \u043d\u043e\u044f\u0431\u0440\u044f, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 3 \u043d\u043e\u044f\u0431\u0440\u044f. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u0437\u0430\u043f\u0438\u0441\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043b\u043e\u0433\u0430. \u0422\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043b\u043e\u0433\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0431\u043b\u0430\u043a\u0435.<\/p>\n<pre><code class=\"bash\">[inspect: timestamp stage]: {stages.Entry}.Entry.Entry.Timestamp:         -: 2023-11-03 16:32:11.2903454 +0700 +07         +: 2023-11-01 17:07:59 +0700 +07 <\/code><\/pre>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u043b\u0438\u0448\u043d\u0438\u0435 \u043c\u0435\u0442\u043a\u0438, filename \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u0435\u043d, time \u0442\u043e\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043b\u043e\u0433\u0435 \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0434\u0438\u0438.<\/p>\n<pre><code class=\"bash\">    - labeldrop:         - filename         - time <\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u0430\u043f\u0430<\/p>\n<pre><code class=\"bash\">[inspect: labeldrop stage]: {stages.Entry}.Entry.Labels:         -: {filename=\"c:\\\\LogManagement\\\\logs\\\\test.log\", job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"}         +: {job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"} <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <em>msgData<\/em> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0448\u0430\u0431\u043b\u043e\u043d, \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0431\u0443\u0434\u0443\u0442 \u0438\u0437 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043f\u043e\u043b\u044f <em>msg<\/em>. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043a\u0440\u0438\u0432\u043e\u0432\u0430\u0442\u043e, \u043d\u043e \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043b\u043e\u0433\u043e\u0432 \u0435\u0449\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 Promtail, \u0434\u043e \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043e\u043d\u0438 \u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u0432 Loki. \u0417\u0434\u0435\u0441\u044c \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f tenant, severity, node \u0438 time, \u0442.\u043a. \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0431\u0443\u0434\u0443\u0442 \u0432 \u043c\u0435\u0442\u043a\u0430\u0445. \u0415\u0441\u043b\u0438 \u043d\u0430\u0434\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u0430\u043a \u0435\u0441\u0442\u044c, \u0442\u043e\u0433\u0434\u0430 \u044d\u0442\u043e\u0442 \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u0430\u043f \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0430.<\/p>\n<pre><code class=\"bash\">    - template:         source: msgData         template: '{{ .msg }}' <\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u0430\u043f\u0430 &#8212; \u0441\u0442\u0440\u043e\u043a\u0430 \u043b\u043e\u0433\u0430<\/p>\n<pre><code class=\"bash\">[inspect: template stage]: {stages.Entry}.Extracted[\"msgData\"]:         +: rsvp_flow_stateMachine: entering state SESSIONED <\/code><\/pre>\n<p>\u0417\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u0442\u0430\u043f &#8212; \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u043b\u043e\u0433\u0430, \u044d\u0442\u043e \u043f\u043e\u043b\u0435 \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u044d\u0442\u0430\u043f\u0430.<\/p>\n<pre><code class=\"bash\">    - output:         source: msgData <\/code><\/pre>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c &#8212; \u0441\u0442\u0440\u043e\u043a\u0430 \u0438 \u043c\u0435\u0442\u043a\u0438<\/p>\n<pre><code class=\"bash\">[inspect: output stage]: {stages.Entry}.Entry.Entry.Line:         -: [01.11.2023 17:07:59] [node001] [INFO] [Export.Csv] [rsvp_flow_stateMachine: entering state SESSIONED]         +: rsvp_flow_stateMachine: entering state SESSIONED 2023-11-01T17:07:59+0700{job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"}  rsvp_flow_stateMachine: entering state SESSIONED <\/code><\/pre>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433 \u0446\u0435\u043b\u0438\u043a\u043e\u043c<\/p>\n<pre><code class=\"bash\">server:   http_listen_port: 9080   grpc_listen_port: 0  positions:   filename: \/tmp\/positions.yaml  clients:   - url: http:\/\/localhost:3100\/loki\/api\/v1\/push  scrape_configs: - job_name: system   static_configs:   - targets:       - localhost     labels:       job: logs       __path__: c:\\LogManagement\\logs\\test.log   pipeline_stages:     - regex:         expression:           \\[(?P&lt;time>.*?)\\] \\[(?P&lt;tenantid>.*?)\\] \\[(?P&lt;severity>.*?)\\] \\[(?P&lt;module>.*?)\\] \\[(?P&lt;msg>.*?)\\]     - labels:         tenantid:         severity:         module:     - timestamp:         format: 02.01.2006 15:04:05         source: time         location: Asia\/Krasnoyarsk     - labeldrop:         - filename         - time     - template:         source: msgData         template: '{{ .msg }}'     - output:         source: msgData <\/code><\/pre>\n<p>\u0423 Promtail \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 \u0432\u0435\u0431-\u043a\u043b\u0438\u0435\u043d\u0442, \u043f\u043e\u0440\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 9080, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u043b\u0438\u0435\u043d\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ts\/gj\/h3\/tsgjh37il-kzgzqyij6q6mrrbmw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ts\/gj\/h3\/tsgjh37il-kzgzqyij6q6mrrbmw.png\"\/><\/figure>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Loki<\/h2>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0438 \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e Loki \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442 \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043d\u0430 \u0441\u0432\u043e\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u044d\u0442\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0438<\/p>\n<pre><code class=\"yaml\">#analytics: #  reporting_enabled: false <\/code><\/pre>\n<p>\u0414\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 Loki \u0437\u0430\u0439\u0434\u0438\u0442\u0435 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 (\u0438\u043b\u0438 \u0432 \u043b\u044e\u0431\u043e\u043c \u0432\u0435\u0431 \u043a\u043b\u0438\u0435\u043d\u0442\u0435) \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 <a href=\"http:\/\/localhost:3100\/ready\" rel=\"noopener noreferrer nofollow\">http:\/\/localhost:3100\/ready<\/a>. \u0412 \u043e\u0442\u0432\u0435\u0442\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c <em>ready<\/em>, \u0435\u0449\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043e\u0442\u0432\u0435\u0442 <em>Ingester not ready: waiting for 15s after being ready<\/em>, \u043f\u043e\u0434\u043e\u0436\u0434\u0438\u0442\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 15 \u0441\u0435\u043a\u0443\u043d\u0434 \u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0435 \u0440\u0430\u0437. \u0423 Loki \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0435 API, c\u043f\u0440\u0430\u0432\u043a\u0430 <a href=\"https:\/\/grafana.com\/docs\/loki\/latest\/reference\/api\/\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>. \u0418\u0437 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0433\u043e \u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0434\u0438\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0435\u043d\u0434\u043f\u043e\u0439\u043d\u0442 \u0434\u043b\u044f \u043c\u0435\u0442\u0440\u0438\u043a <a href=\"http:\/\/localhost:3100\/metrics\" rel=\"noopener noreferrer nofollow\">http:\/\/localhost:3100\/metrics<\/a>.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Grafana<\/h2>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0444\u0430\u0439\u043b grafana-10.2.0\\bin\\grafana-server.exe \u0438 \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0430 <a href=\"http:\/\/localhost:3000\" rel=\"noopener noreferrer nofollow\">http:\/\/localhost:3000<\/a>. \u041b\u043e\u0433\u0438\u043d \u043f\u0430\u0440\u043e\u043b\u044c \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 admin\/admin, Grafana \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442 \u0435\u0433\u043e \u0441\u043c\u0435\u043d\u0438\u0442\u044c. Loki \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d \u0438 \u0432 \u043d\u0435\u043c \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<h3>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c Loki Datasource<\/h3>\n<p>\u0412 \u043c\u0435\u043d\u044e Home Connections Data sources \u0436\u043c\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Add new data source <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/0e\/h7\/fd\/0eh7fddg4mbmsktwcvgzlthrx2m.png\" data-src=\"https:\/\/habrastorage.org\/webt\/0e\/h7\/fd\/0eh7fddg4mbmsktwcvgzlthrx2m.png\"\/><\/figure>\n<p> \u0422\u0430\u043c \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c Loki <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ui\/eo\/fu\/uieofuhp485b4ddr2ahhof26bwu.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ui\/eo\/fu\/uieofuhp485b4ddr2ahhof26bwu.png\"\/><\/figure>\n<p> \u0412 \u043f\u043e\u043b\u0435 Connection \u0432\u0432\u043e\u0434\u0438\u043c <a href=\"http:\/\/127.0.0.1:3100\" rel=\"noopener noreferrer nofollow\">http:\/\/127.0.0.1:3100<\/a> <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/se\/3w\/pj\/se3wpjzlxqf1dt-ksfc7j-3kbuk.png\" data-src=\"https:\/\/habrastorage.org\/webt\/se\/3w\/pj\/se3wpjzlxqf1dt-ksfc7j-3kbuk.png\"\/><\/figure>\n<p> \u0412\u043d\u0438\u0437\u0443 \u0444\u043e\u0440\u043c\u044b \u0436\u043c\u0435\u043c \u043d\u0430 Save &amp; Test \u0438 \u0434\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ux\/wp\/ug\/uxwpugvizkqvj7gt6jdtmpxb1ae.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ux\/wp\/ug\/uxwpugvizkqvj7gt6jdtmpxb1ae.png\"\/><\/figure>\n<p> \u0412 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443 \u0436\u043c\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 explore data <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/65\/zs\/ka\/65zska3oozryn0qoxf3h-vpdaaa.png\" data-src=\"https:\/\/habrastorage.org\/webt\/65\/zs\/ka\/65zska3oozryn0qoxf3h-vpdaaa.png\"\/><\/figure>\n<p> \u041e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ps\/29\/cb\/ps29cbn9oen3lyl8ja5utscty9s.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ps\/29\/cb\/ps29cbn9oen3lyl8ja5utscty9s.png\"\/><\/figure>\n<p> \u041a\u043b\u0438\u043a\u043d\u0443\u0432 \u043f\u043e \u043a\u043d\u043e\u043f\u043a\u0435 Label browser \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043a\u0438 \u0438 \u043a\u0430\u043a\u0438\u0435 \u0443 \u043d\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u0432 \u0431\u0430\u0437\u0435, \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/kq\/lz\/h7\/kqlzh7fws1z54vkelkilmpjqvdo.png\" data-src=\"https:\/\/habrastorage.org\/webt\/kq\/lz\/h7\/kqlzh7fws1z54vkelkilmpjqvdo.png\"\/><\/figure>\n<p> \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0432 \u0431\u0430\u0437\u0435 \u0435\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043a\u0430\u043a \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043d\u0438\u0436\u0435. \u042d\u0442\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/z0\/rn\/c2\/z0rnc2jf9qf3pq1xwklx15xxpdk.png\" data-src=\"https:\/\/habrastorage.org\/webt\/z0\/rn\/c2\/z0rnc2jf9qf3pq1xwklx15xxpdk.png\"\/><\/figure>\n<h3>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0430\u043d\u0435\u043b\u044c Raw Logs<\/h3>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0430\u0448\u0431\u043e\u0440\u0434, \u0432 \u043c\u0435\u043d\u044e Home Dashboards \u0436\u043c\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 New, \u0432 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c New dashboard.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0436\u043c\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Add visualization.<\/p>\n<p>\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0448\u0430\u0433\u0435 Loki datasource.<\/p>\n<p>\u0412 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443 \u043c\u0435\u043d\u044f\u0435\u043c \u0442\u0438\u043f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430 Logs<\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/of\/ij\/ff\/ofijffyrbfzht3q-32naawpoh7i.png\" data-src=\"https:\/\/habrastorage.org\/webt\/of\/ij\/ff\/ofijffyrbfzht3q-32naawpoh7i.png\"\/><\/figure>\n<p> \u041c\u0435\u043d\u044f\u0435\u043c Panel title \u043d\u0430 Raw logs \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u043c \u0433\u0430\u043b\u043e\u0447\u043a\u0438 Time \u0438 Enable log details <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/b5\/ez\/uy\/b5ezuy1lxt70wsbez19rxl3llhw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/b5\/ez\/uy\/b5ezuy1lxt70wsbez19rxl3llhw.png\"\/><\/figure>\n<p> \u0416\u043c\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Apply <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/sc\/cq\/tr\/sccqtrpqgsoorh7brz6bdqkctai.png\" data-src=\"https:\/\/habrastorage.org\/webt\/sc\/cq\/tr\/sccqtrpqgsoorh7brz6bdqkctai.png\"\/><\/figure>\n<p> \u0417\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0430 <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/vf\/jr\/o-\/vfjro-rvymugb_of3fonvaj0vrq.png\" data-src=\"https:\/\/habrastorage.org\/webt\/vf\/jr\/o-\/vfjro-rvymugb_of3fonvaj0vrq.png\"\/><\/figure>\n<p> \u0417\u0434\u0435\u0441\u044c \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 Variables \u0438 \u0436\u043c\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Add variable, \u0438\u043c\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 tenantid, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u0430\u043a \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/rt\/cn\/hs\/rtcnhsynjr2x6bcwpvws-zh5n8g.png\" data-src=\"https:\/\/habrastorage.org\/webt\/rt\/cn\/hs\/rtcnhsynjr2x6bcwpvws-zh5n8g.png\"\/><\/figure>\n<p> \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0432\u0441\u0435 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f nodeid. <\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0442\u0440\u0435\u0442\u044c\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c filter \u0438 \u0442\u0438\u043f\u043e\u043c Text box <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/wi\/uk\/vh\/wiukvh8l9aaj8qlvdsourgtak7w.png\" data-src=\"https:\/\/habrastorage.org\/webt\/wi\/uk\/vh\/wiukvh8l9aaj8qlvdsourgtak7w.png\"\/><\/figure>\n<p> \u041f\u0430\u043d\u0435\u043b\u044c \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a. \u0416\u043c\u0435\u043c edit \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/j-\/8k\/my\/j-8kmyvishetnb1x6_efvknshqi.png\" data-src=\"https:\/\/habrastorage.org\/webt\/j-\/8k\/my\/j-8kmyvishetnb1x6_efvknshqi.png\"\/><\/figure>\n<p> \u0417\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u043e\u0439. \u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 <em>line_format<\/em>, \u0442\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043b\u043e\u0433\u0430. <\/p>\n<pre><code class=\"powershell\">{job=\"logs\", tenantid=~\"$tenantid\", severity=~\"$severity\"} |= \"$filter\" | line_format \"{{.tenantid}} {{.module}} {{.severity}} {{__line__}}\" <\/code><\/pre>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u043a \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043d\u0438\u0436\u0435, \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c tenant, severity \u0438 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u043c\u0443 \u043b\u043e\u0433\u0430. <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/pr\/_x\/vj\/pr_xvjgltfpiqkcl9cqd9skvjgg.png\" data-src=\"https:\/\/habrastorage.org\/webt\/pr\/_x\/vj\/pr_xvjgltfpiqkcl9cqd9skvjgg.png\"\/><\/figure>\n<h3>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0430\u043d\u0435\u043b\u044c Pie Chart<\/h3>\n<p>\u0416\u043c\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 Add \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c Visualization <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/hm\/k5\/gf\/hmk5gffig8ayqy_-ca04fxoafiw.png\" data-src=\"https:\/\/habrastorage.org\/webt\/hm\/k5\/gf\/hmk5gffig8ayqy_-ca04fxoafiw.png\"\/><\/figure>\n<p> \u0412\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u0430\u043a \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u043d\u0438\u0436\u0435 <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/2y\/yn\/j_\/2yynj_ko6taq_5cxg23ljxe3lzo.png\" data-src=\"https:\/\/habrastorage.org\/webt\/2y\/yn\/j_\/2yynj_ko6taq_5cxg23ljxe3lzo.png\"\/><\/figure>\n<p> \u0417\u0430\u043f\u0440\u043e\u0441 \u0431\u0443\u0434\u0435\u0442 \u0442\u0430\u043a\u043e\u0439 <\/p>\n<pre><code class=\"powershell\">sum by(severity) (count_over_time({job=\"logs\"} [$__range])) <\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0447\u0442\u043e \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u043d\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0441\u0442\u044c \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u0434\u043b\u044f \u043f\u0430\u043d\u0435\u043b\u0438 Raw Logs. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u0447\u0430\u0440\u0442\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0437\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a \u0432\u0440\u0435\u043c\u0435\u043d\u0438,  \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u041f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u043c\u043e\u0436\u043d\u043e \u0432 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u0442\u043e\u0433\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0447\u0430\u0440\u0442\u0435 \u0438 \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 Raw Logs \u0431\u0443\u0434\u0443\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435.<\/p>\n<p>\u0426\u0432\u0435\u0442\u0430 \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043a\u043b\u0438\u043a\u043d\u0443\u0432 \u043f\u043e \u0442\u043e\u043d\u043a\u043e\u0439 \u0446\u0432\u0435\u0442\u043d\u043e\u0439 \u043f\u043e\u043b\u043e\u0441\u043a\u0435<br \/> \u043d\u0430 \u043b\u0435\u0433\u0435\u043d\u0434\u0435 <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/ke\/82\/x5\/ke82x5bamxpjarklegi-slilxoe.png\" data-src=\"https:\/\/habrastorage.org\/webt\/ke\/82\/x5\/ke82x5bamxpjarklegi-slilxoe.png\"\/><\/figure>\n<p> \u0418\u043b\u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043d\u0443\u0436\u043d\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Overrides \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0447\u0430\u0440\u0442\u0430 <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/av\/_x\/jq\/av_xjqsu3ja3wmdhclievkfc45u.png\" data-src=\"https:\/\/habrastorage.org\/webt\/av\/_x\/jq\/av_xjqsu3ja3wmdhclievkfc45u.png\"\/><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043d\u0430\u0448 \u0447\u0430\u0440\u0442 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432\u043e\u0442 \u0442\u0430\u043a <\/p>\n<figure class=\"\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/webt\/p0\/t5\/j_\/p0t5j_rijkuhyj93cwtxjd2t_0c.png\" data-src=\"https:\/\/habrastorage.org\/webt\/p0\/t5\/j_\/p0t5j_rijkuhyj93cwtxjd2t_0c.png\"\/><\/figure>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>Grafana \u043a\u043b\u0430\u0441\u0441\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445, Loki \u0438 Promtail \u0434\u0430\u044e\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0431\u043e\u0440 \u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u043e\u0432. \u0421\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u0430\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0443\u0441\u0438\u043b\u0438\u044f\u0445. \u041d\u0430\u0434\u0435\u044e\u0441\u044c \u0441\u0442\u0430\u0442\u044c\u044f \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/772702\/\"> https:\/\/habr.com\/ru\/articles\/772702\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c Grafana \u0432\u0435\u0440\u0441\u0438\u0438 10.2, Promtail \u0438 Loki \u0432\u0435\u0440\u0441\u0438\u0438 2.9.2. \u0415\u0441\u043b\u0438 \u043a\u0442\u043e-\u0442\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u043f\u0440\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0441\u0442\u0435\u043a, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043a\u0440\u0430\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 <a href=\"https:\/\/grafana.com\/oss\/loki\/\" rel=\"noopener noreferrer nofollow\">\u0432\u043e\u0442 \u0437\u0434\u0435\u0441\u044c<\/a>. \u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434 Windows, \u0434\u043b\u044f Linux \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0447\u0438\u0441\u0442\u043e \u043a\u043e\u0441\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435. \u0421\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0442\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0437\u0434\u0435\u0441\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430, \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u0438\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439 Grafana \u0438 \u043f\u0440\u043e\u0447\u0435\u0435.<\/p>\n<h2>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430<\/h2>\n<p>\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 Grafana \u0432\u043e\u0442 <a href=\"https:\/\/grafana.com\/grafana\/download?edition=enterprise&amp;pg=get&amp;plcmt=selfmanaged-box1-cta1&amp;platform=windows\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>. \u0415\u0441\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 Enterpise \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043c\u0435\u0441\u0442\u043e \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 <em>Sorry, our service is currently not available in your region<\/em>. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0439\u0442\u0435 OSS.<\/p>\n<p>\u0411\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438 Loki \u0438 Promtail \u043b\u0435\u0436\u0430\u0442 \u0432\u043e\u0442 <a href=\"https:\/\/github.com\/grafana\/loki\/releases\/\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a> <\/p>\n<figure class=\"\"><\/figure>\n<p> \u0415\u0441\u043b\u0438 \u043a\u043e\u043c\u0443-\u0442\u043e \u043d\u0435 \u043d\u0440\u0430\u0432\u044f\u0442\u0441\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438, \u0442\u043e \u0432\u043e\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 <a href=\"https:\/\/grafana.com\/docs\/loki\/latest\/send-data\/promtail\/installation\/\" rel=\"noopener noreferrer nofollow\">Promtail<\/a> \u0438 <a href=\"https:\/\/grafana.com\/docs\/loki\/latest\/setup\/install\/\" rel=\"noopener noreferrer nofollow\">Loki<\/a>. \u0414\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433 \u0432\u0435\u0440\u0441\u0438\u0438 2.9.2 \u0434\u043b\u044f Promtail <a href=\"https:\/\/raw.githubusercontent.com\/grafana\/loki\/v2.9.2\/\/clients\/cmd\/promtail\/promtail-local-config.yaml\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>, \u0430 \u0434\u043b\u044f Loki <a href=\"https:\/\/raw.githubusercontent.com\/grafana\/loki\/v2.9.2\/cmd\/loki\/loki-local-config.yaml\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430 \u0434\u0440\u0443\u0433\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f, \u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0432 \u0441\u0441\u044b\u043b\u043a\u0430\u0445 <strong>v2.9.2<\/strong> \u043d\u0430 \u043d\u0443\u0436\u043d\u0443\u044e. <\/p>\n<p>\u041b\u043e\u0433\u0438 \u0431\u0443\u0434\u0443\u0442 \u0442\u0430\u043a\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430<\/p>\n<pre><code class=\"powershell\">[dateTime] [tenantId] [severity] [module] [message] <\/code><\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043b\u043e\u0433\u0435<\/p>\n<pre><code class=\"bash\">[01.11.2023 17:07:59] [node001] [INFO] [Export.Csv] [rsvp_flow_stateMachine: entering] <\/code><\/pre>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 <strong>\u043e\u0441\u043e\u0431\u043e\u0435<\/strong> \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0441\u0432\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0442\u044b \u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0427\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u043d \u0432 \u043b\u043e\u0433\u0430\u0445, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0444\u0438\u0433 promtail. \u0417\u0434\u0435\u0441\u044c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0435. \u0412 \u0440\u0430\u0437\u043d\u044b\u0445 \u0447\u0430\u0441\u043e\u0432\u044b\u0445 \u043f\u043e\u044f\u0441\u0430\u0445 \u043b\u0435\u0433\u043a\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043b\u043e\u0433\u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445 \u0438 \u0432\u0434\u0432\u043e\u0439\u043d\u0435 \u043b\u0435\u0433\u043a\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f \u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0432 \u043e\u0431\u043b\u0430\u043a\u0435.<\/p>\n<p>\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044f \u0441\u0435\u0431\u0435 \u0434\u0435\u043b\u0430\u043b \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043b\u043e\u0433\u043e\u0432. \u0412\u044b\u0434\u0430\u0435\u0442 \u043e\u043d \u0431\u043e\u043b\u0435\u0435-\u043c\u0435\u043d\u0435\u0435 \u043e\u0441\u043c\u044b\u0441\u043b\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043c\u043d\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u0438 \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u043c\u043d\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430. \u0423 \u043a\u043e\u0433\u043e \u043d\u0435\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u043b\u043e\u0433\u043e\u0432 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432, \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u0438\u043a \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0442\u044f \u0431\u044b \u0441\u043e\u0442\u043d\u044f \u0437\u0430\u043f\u0438\u0441\u0435\u0439. \u0410 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Promtail \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Promtail<\/h2>\n<p>\u0423 Promtail \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435<\/p>\n<ul>\n<li>\n<p><em>&#8212;dry-run<\/em> \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 Loki, \u0442\u0430\u043a\u0436\u0435 \u043b\u043e\u0433\u0444\u0430\u0439\u043b \u0431\u0443\u0434\u0435\u0442 \u0447\u0438\u0442\u0430\u0442\u044c\u0441\u044f \u0441 \u043e\u0434\u043d\u043e\u0433\u043e \u0438 \u0442\u043e\u0433\u043e \u0436\u0435 \u043c\u0435\u0441\u0442\u0430 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435. \u041c\u043e\u0436\u043d\u043e \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 Promtail, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<\/li>\n<li>\n<p><em>&#8212;inspect<\/em> \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Promtail \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0432 \u043b\u043e\u0433\u0444\u0430\u0439\u043b \u043e\u0434\u043d\u0443 \u0437\u0430\u043f\u0438\u0441\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c Promtail. \u041a\u043e\u043d\u0444\u0438\u0433 \u043c\u0435\u043d\u044f\u0435\u043c \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439.<\/p>\n<p>\u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u0432\u043e\u0442 \u0442\u0430\u043a<\/p>\n<pre><code class=\"bash\">promtail-windows-amd64 --dry-run --inspect --config.file=promtail-local-config.yaml [01.11.2023 17:07:59] [node001] [INFO] [Export.Csv] [rsvp_flow_stateMachine: entering state SESSIONED] [inspect: regex stage]: {stages.Entry}.Extracted[\"module\"]:         +: Export.Csv {stages.Entry}.Extracted[\"msg\"]:         +: rsvp_flow_stateMachine: entering state SESSIONED {stages.Entry}.Extracted[\"severity\"]:         +: INFO {stages.Entry}.Extracted[\"tenantid\"]:         +: node001 {stages.Entry}.Extracted[\"time\"]:         +: 01.11.2023 17:07:59 [inspect: labels stage]: {stages.Entry}.Entry.Labels:         -: {filename=\"c:\\\\LogManagement\\\\logs\\\\test.log\", job=\"logs\"}         +: {filename=\"c:\\\\LogManagement\\\\logs\\\\test.log\", job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"} [inspect: timestamp stage]: {stages.Entry}.Entry.Entry.Timestamp:         -: 2023-11-03 16:32:11.2903454 +0700 +07         +: 2023-11-01 17:07:59 +0700 +07 [inspect: labeldrop stage]: {stages.Entry}.Entry.Labels:         -: {filename=\"c:\\\\LogManagement\\\\logs\\\\test.log\", job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"}         +: {job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"} [inspect: template stage]: {stages.Entry}.Extracted[\"msgData\"]:         +: rsvp_flow_stateMachine: entering state SESSIONED [inspect: output stage]: {stages.Entry}.Entry.Entry.Line:         -: [01.11.2023 17:07:59] [node001] [INFO] [Export.Csv] [rsvp_flow_stateMachine: entering state SESSIONED]         +: rsvp_flow_stateMachine: entering state SESSIONED 2023-11-01T17:07:59+0700{job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"}  rsvp_flow_stateMachine: entering state SESSIONED <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u043f\u043e \u0447\u0430\u0441\u0442\u044f\u043c. \u0415\u0441\u043b\u0438 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0441\u0440\u0430\u0437\u0443, \u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0432\u0435\u0441\u044c \u043a\u043e\u043d\u0444\u0438\u0433 \u0446\u0435\u043b\u0438\u043a\u043e\u043c.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0435\u0440\u0435\u043c \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433, \u0432\u043e\u0442 \u044d\u0442\u0443 \u0447\u0430\u0441\u0442\u044c \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u0430\u043a \u0435\u0441\u0442\u044c<\/p>\n<pre><code class=\"bash\">server:   http_listen_port: 9080   grpc_listen_port: 0  positions:   filename: \/tmp\/positions.yaml  clients:   - url: http:\/\/localhost:3100\/loki\/api\/v1\/push <\/code><\/pre>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043c\u0435\u043d\u044f\u0435\u043c <em>path<\/em> \u0438 <em>job<\/em>.<\/p>\n<p><em>job<\/em> logs \u043c\u0435\u0442\u043a\u0430 \u0434\u043b\u044f \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 (\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e)<br \/> <em>path<\/em> \u043f\u0443\u0442\u044c \u043a \u0444\u0430\u0439\u043b\u0443 (\u0438\u043b\u0438 \u0444\u0430\u0439\u043b\u0430\u043c) \u043b\u043e\u0433\u043e\u0432. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d log file rotation, \u0442\u043e \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d, \u0447\u0442\u043e\u0431\u044b promtail \u0442\u043e\u0447\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u043b \u043d\u043e\u0432\u044b\u0435 \u0444\u0430\u0439\u043b\u044b.<\/p>\n<pre><code class=\"bash\">scrape_configs: - job_name: system   static_configs:   - targets:       - localhost     labels:       job: logs       __path__: c:\\LogManagement\\logs\\test.log <\/code><\/pre>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u0431\u043e\u0440 \u043b\u043e\u0433\u043e\u0432. \u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u0441\u0442\u0430\u0434\u0438\u044f\u043c\/\u044d\u0442\u0430\u043f\u0430\u043c, \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432 <a href=\"https:\/\/grafana.com\/docs\/loki\/latest\/send-data\/promtail\/stages\/#prometheus-pipeline-stages\" rel=\"noopener noreferrer nofollow\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438<\/a>. \u0414\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0443 \u0441 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438. \u0418\u043c\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u043e \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u044d\u0442\u0430\u043f\u0430\u0445. \u0414\u043b\u044f json \u0438\u043b\u0438 logfmt \u0435\u0441\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0438\u0437\u043e\u0431\u0440\u0435\u0442\u0430\u0442\u044c \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043a\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043e\u0440\u0430 json \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.<\/p>\n<pre><code class=\"bash\">  pipeline_stages:     - regex:         expression:           \\[(?P&lt;time>.*?)\\] \\[(?P&lt;tenantid>.*?)\\] \\[(?P&lt;severity>.*?)\\] \\[(?P&lt;module>.*?)\\] \\[(?P&lt;msg>.*?)\\] <\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0437\u0431\u043e\u0440\u0430<\/p>\n<pre><code class=\"bash\">[01.11.2023 17:07:59] [node001] [INFO] [Export.Csv] [rsvp_flow_stateMachine: entering state SESSIONED] [inspect: regex stage]: {stages.Entry}.Extracted[\"module\"]:         +: Export.Csv {stages.Entry}.Extracted[\"msg\"]:         +: rsvp_flow_stateMachine: entering state SESSIONED {stages.Entry}.Extracted[\"severity\"]:         +: INFO {stages.Entry}.Extracted[\"tenantid\"]:         +: node001 {stages.Entry}.Extracted[\"time\"]:         +: 01.11.2023 17:07:59 <\/code><\/pre>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0441\u0442\u0430\u0434\u0438\u044f \u043c\u0435\u0442\u043e\u043a, \u0442\u0443\u0442 \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u0430\u043a\u0438\u0435 \u043c\u0435\u0442\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0443 \u0437\u0430\u043f\u0438\u0441\u0438.<\/p>\n<pre><code class=\"bash\">    - labels:         tenantid:         severity:         module: <\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0438\u0436\u0435, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a\u0438\u0435 \u0431\u044b\u043b\u0438 \u043c\u0435\u0442\u043a\u0438 \u0434\u043e, \u0438 \u043a\u0430\u043a\u0438\u0435 \u0441\u0442\u0430\u043b\u0438 \u043f\u043e\u0441\u043b\u0435.<\/p>\n<pre><code class=\"bash\">[inspect: labels stage]: {stages.Entry}.Entry.Labels:         -: {filename=\"c:\\\\LogManagement\\\\logs\\\\test.log\", job=\"logs\"}         +: {filename=\"c:\\\\LogManagement\\\\logs\\\\test.log\", job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"} <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c &#8212; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u0437\u0430\u043f\u0438\u0441\u0438. \u0412 \u043c\u043e\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432 \u043b\u043e\u0433\u0430\u0445 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u044f\u0432\u043d\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0430\u0441\u043e\u0432\u043e\u0439 \u043f\u043e\u044f\u0441 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0444\u0438\u0433. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435 \u0442\u0430\u043a, <em>location<\/em> \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u0442\u0435, <em>format<\/em> \u043c\u0435\u043d\u044f\u0435\u0442\u0435 \u043f\u043e\u0434 \u0441\u0432\u043e\u0439. \u0412 Promtail \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Go \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u043b\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u0434\u0430\u0442. \u041a\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u043d\u0435\u0437\u043d\u0430\u043a\u043e\u043c, \u0432\u043e\u0442 <a href=\"https:\/\/gosamples.dev\/date-time-format-cheatsheet\/\" rel=\"noopener noreferrer nofollow\">\u0448\u043f\u0430\u0440\u0433\u0430\u043b\u043a\u0430<\/a>. \u041a\u043e\u0434\u044b \u0442\u0430\u0439\u043c\u0437\u043e\u043d \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/en.wikipedia.org\/wiki\/List_of_tz_database_time_zones\" rel=\"noopener noreferrer nofollow\">\u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<pre><code class=\"bash\">    - timestamp:         format: 02.01.2006 15:04:05         source: time         location: Asia\/Krasnoyarsk <\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u0430\u043f\u0430 \u043d\u0438\u0436\u0435, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u0447\u0442\u043e \u0434\u0430\u0442\u0430 \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u0430\u0441\u044c \u043d\u0430 2 \u0434\u043d\u044f. \u0412 \u0444\u0430\u0439\u043b\u0435 \u043b\u043e\u0433\u043e\u0432 \u0434\u0430\u0442\u0430 1 \u043d\u043e\u044f\u0431\u0440\u044f, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 3 \u043d\u043e\u044f\u0431\u0440\u044f. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 \u0437\u0430\u043f\u0438\u0441\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043b\u043e\u0433\u0430. \u0422\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u044d\u0442\u0430\u043f, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043b\u043e\u0433\u0438 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0431\u043b\u0430\u043a\u0435.<\/p>\n<pre><code class=\"bash\">[inspect: timestamp stage]: {stages.Entry}.Entry.Entry.Timestamp:         -: 2023-11-03 16:32:11.2903454 +0700 +07         +: 2023-11-01 17:07:59 +0700 +07 <\/code><\/pre>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u043b\u0438\u0448\u043d\u0438\u0435 \u043c\u0435\u0442\u043a\u0438, filename \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u0435\u043d, time \u0442\u043e\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043b\u043e\u0433\u0435 \u043c\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0434\u0438\u0438.<\/p>\n<pre><code class=\"bash\">    - labeldrop:         - filename         - time <\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u0430\u043f\u0430<\/p>\n<pre><code class=\"bash\">[inspect: labeldrop stage]: {stages.Entry}.Entry.Labels:         -: {filename=\"c:\\\\LogManagement\\\\logs\\\\test.log\", job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"}         +: {job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"} <\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u043e\u0435 \u043f\u043e\u043b\u0435 <em>msgData<\/em> \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0448\u0430\u0431\u043b\u043e\u043d, \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0431\u0443\u0434\u0443\u0442 \u0438\u0437 \u0441\u0442\u0430\u0440\u043e\u0433\u043e \u043f\u043e\u043b\u044f <em>msg<\/em>. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043a\u0440\u0438\u0432\u043e\u0432\u0430\u0442\u043e, \u043d\u043e \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u043b\u043e\u0433\u043e\u0432 \u0435\u0449\u0435 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 Promtail, \u0434\u043e \u0442\u043e\u0433\u043e \u043a\u0430\u043a \u043e\u043d\u0438 \u043f\u043e\u043f\u0430\u0434\u0443\u0442 \u0432 Loki. \u0417\u0434\u0435\u0441\u044c \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432\u044b\u043a\u0438\u0434\u044b\u0432\u0430\u044e\u0442\u0441\u044f tenant, severity, node \u0438 time, \u0442.\u043a. \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u0431\u0443\u0434\u0443\u0442 \u0432 \u043c\u0435\u0442\u043a\u0430\u0445. \u0415\u0441\u043b\u0438 \u043d\u0430\u0434\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u0430\u043a \u0435\u0441\u0442\u044c, \u0442\u043e\u0433\u0434\u0430 \u044d\u0442\u043e\u0442 \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u0442\u0430\u043f \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0430.<\/p>\n<pre><code class=\"bash\">    - template:         source: msgData         template: '{{ .msg }}' <\/code><\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u044d\u0442\u0430\u043f\u0430 &#8212; \u0441\u0442\u0440\u043e\u043a\u0430 \u043b\u043e\u0433\u0430<\/p>\n<pre><code class=\"bash\">[inspect: template stage]: {stages.Entry}.Extracted[\"msgData\"]:         +: rsvp_flow_stateMachine: entering state SESSIONED <\/code><\/pre>\n<p>\u0417\u0430\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044d\u0442\u0430\u043f &#8212; \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0441\u0442\u0440\u043e\u043a\u0438 \u043b\u043e\u0433\u0430, \u044d\u0442\u043e \u043f\u043e\u043b\u0435 \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u044d\u0442\u0430\u043f\u0430.<\/p>\n<pre><code class=\"bash\">    - output:         source: msgData <\/code><\/pre>\n<p>\u0418\u0442\u043e\u0433\u043e\u0432\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c &#8212; \u0441\u0442\u0440\u043e\u043a\u0430 \u0438 \u043c\u0435\u0442\u043a\u0438<\/p>\n<pre><code class=\"bash\">[inspect: output stage]: {stages.Entry}.Entry.Entry.Line:         -: [01.11.2023 17:07:59] [node001] [INFO] [Export.Csv] [rsvp_flow_stateMachine: entering state SESSIONED]         +: rsvp_flow_stateMachine: entering state SESSIONED 2023-11-01T17:07:59+0700{job=\"logs\", module=\"Export.Csv\", severity=\"INFO\", tenantid=\"node001\"}  rsvp_flow_stateMachine: entering state SESSIONED <\/code><\/pre>\n<p>\u041a\u043e\u043d\u0444\u0438\u0433 \u0446\u0435\u043b\u0438\u043a\u043e\u043c<\/p>\n<pre><code class=\"bash\">server:   http_listen_port: 9080   grpc_listen_port: 0  positions:   filename: \/tmp\/positions.yaml  clients:   - url: http:\/\/localhost:3100\/loki\/api\/v1\/push  scrape_configs: - job_name: system   static_configs:   - targets:       - localhost     labels:       job: logs       __path__: c:\\LogManagement\\logs\\test.log   pipeline_stages:     - regex:         expression:           \\[(?P&lt;time>.*?)\\] \\[(?P&lt;tenantid>.*?)\\] \\[(?P&lt;severity>.*?)\\] \\[(?P&lt;module>.*?)\\] \\[(?P&lt;msg>.*?)\\]     - labels:         tenantid:         severity:         module:     - timestamp:         format: 02.01.2006 15:04:05         source: time         location: Asia\/Krasnoyarsk     - labeldrop:         - filename         - time     - template:         source: msgData         template: '{{ .msg }}'     - output:         source: msgData <\/code><\/pre>\n<p>\u0423 Promtail \u0435\u0441\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 \u0432\u0435\u0431-\u043a\u043b\u0438\u0435\u043d\u0442, \u043f\u043e\u0440\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 9080, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u043b\u0438\u0435\u043d\u0442 \u0432\u043e\u0442 \u0442\u0430\u043a <\/p>\n<figure class=\"\"><\/figure>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Loki<\/h2>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u0438 \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e Loki \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442 \u043a\u0430\u043a\u0443\u044e-\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043d\u0430 \u0441\u0432\u043e\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0440\u0430\u0441\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u044d\u0442\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0438<\/p>\n<pre><code class=\"yaml\">#analytics: #  reporting_enabled: false <\/code><\/pre>\n<p>\u0414\u043b\u044f <\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-359641","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/359641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=359641"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/359641\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=359641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=359641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=359641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}