logsentinelai 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. logsentinelai-0.1.0/.gitignore +8 -0
  2. logsentinelai-0.1.0/.python-version +1 -0
  3. logsentinelai-0.1.0/Kibana-9.0.3-Advanced-Settings.ndjson +2 -0
  4. logsentinelai-0.1.0/Kibana-9.0.3-Dashboard-LogSentinelAI.ndjson +3 -0
  5. logsentinelai-0.1.0/LICENSE +21 -0
  6. logsentinelai-0.1.0/MANIFEST.in +0 -0
  7. logsentinelai-0.1.0/PACKAGE_MIGRATION.md +144 -0
  8. logsentinelai-0.1.0/PKG-INFO +831 -0
  9. logsentinelai-0.1.0/README.md +769 -0
  10. logsentinelai-0.1.0/config.template +195 -0
  11. logsentinelai-0.1.0/img/ex-dashboard.png +0 -0
  12. logsentinelai-0.1.0/img/ex-json.png +0 -0
  13. logsentinelai-0.1.0/pyproject.toml +107 -0
  14. logsentinelai-0.1.0/sample-logs/access-100.log +100 -0
  15. logsentinelai-0.1.0/sample-logs/access-10k.log +10000 -0
  16. logsentinelai-0.1.0/sample-logs/apache-100.log +100 -0
  17. logsentinelai-0.1.0/sample-logs/apache-10k.log +56482 -0
  18. logsentinelai-0.1.0/sample-logs/linux-100.log +100 -0
  19. logsentinelai-0.1.0/sample-logs/linux-2k.log +2000 -0
  20. logsentinelai-0.1.0/sample-logs/tcpdump-packet-2k-multi-line.log +10676 -0
  21. logsentinelai-0.1.0/sample-logs/tcpdump-packet-2k-single-line.log +2000 -0
  22. logsentinelai-0.1.0/sample-logs/tcpdump-packet-39-multi-line.log +322 -0
  23. logsentinelai-0.1.0/src/logsentinelai/__init__.py +31 -0
  24. logsentinelai-0.1.0/src/logsentinelai/analyzers/__init__.py +20 -0
  25. logsentinelai-0.1.0/src/logsentinelai/analyzers/httpd_access.py +103 -0
  26. logsentinelai-0.1.0/src/logsentinelai/analyzers/httpd_apache.py +103 -0
  27. logsentinelai-0.1.0/src/logsentinelai/analyzers/linux_system.py +106 -0
  28. logsentinelai-0.1.0/src/logsentinelai/analyzers/tcpdump_packet.py +287 -0
  29. logsentinelai-0.1.0/src/logsentinelai/cli.py +148 -0
  30. logsentinelai-0.1.0/src/logsentinelai/core/__init__.py +26 -0
  31. logsentinelai-0.1.0/src/logsentinelai/core/commons.py +2397 -0
  32. logsentinelai-0.1.0/src/logsentinelai/core/prompts.py +265 -0
  33. logsentinelai-0.1.0/src/logsentinelai/py.typed +0 -0
  34. logsentinelai-0.1.0/src/logsentinelai/utils/__init__.py +11 -0
  35. logsentinelai-0.1.0/src/logsentinelai/utils/geoip_downloader.py +193 -0
  36. logsentinelai-0.1.0/upload_to_testpypi.sh +0 -0
  37. logsentinelai-0.1.0/uv.lock +1907 -0
@@ -0,0 +1,8 @@
1
+ .venv
2
+ .pypirc
3
+ __pycache__
4
+ .vscode*
5
+ config
6
+ sample-logs/*.pcap*
7
+ .positions/
8
+ *.mmdb
@@ -0,0 +1 @@
1
+ 3.11
@@ -0,0 +1,2 @@
1
+ {"attributes":{"buildNum":84935,"defaultIndex":"logs-*","isDefaultIndexMigrated":true,"timepicker:quickRanges":"[\n {\n \"from\": \"now/d\",\n \"to\": \"now/d\",\n \"display\": \"Today\"\n },\n {\n \"from\": \"now/w\",\n \"to\": \"now/w\",\n \"display\": \"This week\"\n },\n {\n \"from\": \"now-1m\",\n \"to\": \"now\",\n \"display\": \"Last 1 minute\"\n },\n {\n \"from\": \"now-5m\",\n \"to\": \"now\",\n \"display\": \"Last 5 minutes\"\n },\n {\n \"from\": \"now-10m\",\n \"to\": \"now\",\n \"display\": \"Last 10 minutes\"\n },\n {\n \"from\": \"now-15m\",\n \"to\": \"now\",\n \"display\": \"Last 15 minutes\"\n },\n {\n \"from\": \"now-30m\",\n \"to\": \"now\",\n \"display\": \"Last 30 minutes\"\n },\n {\n \"from\": \"now-1h\",\n \"to\": \"now\",\n \"display\": \"Last 1 hour\"\n },\n {\n \"from\": \"now-3h\",\n \"to\": \"now\",\n \"display\": \"Last 3 hour\"\n },\n {\n \"from\": \"now-6h\",\n \"to\": \"now\",\n \"display\": \"Last 6 hour\"\n },\n {\n \"from\": \"now-12h\",\n \"to\": \"now\",\n \"display\": \"Last 12 hour\"\n },\n {\n \"from\": \"now-24h/h\",\n \"to\": \"now\",\n \"display\": \"Last 24 hours\"\n },\n {\n \"from\": \"now-3d/d\",\n \"to\": \"now\",\n \"display\": \"Last 3 days\"\n },\n {\n \"from\": \"now-7d/d\",\n \"to\": \"now\",\n \"display\": \"Last 7 days\"\n },\n {\n \"from\": \"now-14d/d\",\n \"to\": \"now\",\n \"display\": \"Last 14 days\"\n },\n {\n \"from\": \"now-30d/d\",\n \"to\": \"now\",\n \"display\": \"Last 30 days\"\n },\n {\n \"from\": \"now-60d/d\",\n \"to\": \"now\",\n \"display\": \"Last 60 days\"\n },\n {\n \"from\": \"now-90d/d\",\n \"to\": \"now\",\n \"display\": \"Last 90 days\"\n },\n {\n \"from\": \"now-180d/d\",\n \"to\": \"now\",\n \"display\": \"Last 180 days\"\n },\n {\n \"from\": \"now-1y/d\",\n \"to\": \"now\",\n \"display\": \"Last 1 year\"\n }\n]"},"coreMigrationVersion":"8.8.0","created_at":"2025-07-17T09:45:39.135Z","id":"9.0.3","managed":false,"references":[],"type":"config","typeMigrationVersion":"10.1.0","updated_at":"2025-07-20T05:08:51.597Z","updated_by":"u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0","version":"WzEyNzQ3LDJd"}
2
+ {"excludedObjects":[],"excludedObjectsCount":0,"exportedCount":1,"missingRefCount":0,"missingReferences":[]}
@@ -0,0 +1,3 @@
1
+ {"attributes":{"allowHidden":false,"fieldAttrs":"{}","fieldFormatMap":"{}","fields":"[]","name":"logsentinelai-analysis-*","runtimeFieldMap":"{}","sourceFilters":"[]","timeFieldName":"@timestamp","title":"logsentinelai-analysis-*"},"coreMigrationVersion":"8.8.0","created_at":"2025-07-19T10:57:16.821Z","created_by":"u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0","id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","managed":false,"references":[],"type":"index-pattern","typeMigrationVersion":"8.0.0","updated_at":"2025-07-19T10:57:16.821Z","updated_by":"u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0","version":"Wzc1MjgsMl0="}
2
+ {"attributes":{"controlGroupInput":{"chainingSystem":"HIERARCHICAL","controlStyle":"oneLine","ignoreParentSettingsJSON":"{\"ignoreFilters\":false,\"ignoreQuery\":false,\"ignoreTimerange\":false,\"ignoreValidations\":false}","panelsJSON":"{}","showApplySelections":false},"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"filter\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"}}"},"optionsJSON":"{\"useMargins\":true,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"hidePanelTitles\":false}","panelsJSON":"[{\"type\":\"lens\",\"title\":\"HTTPd Access - Precessing Result\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"description\":\"Success / Failed\",\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-95c8cccd-56fb-4581-b44d-acf991b76ee4\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"95c8cccd-56fb-4581-b44d-acf991b76ee4\",\"primaryGroups\":[\"b0265cbc-e0db-4c62-949d-21453b1f9bd6\"],\"metrics\":[\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"colorMapping\":{\"assignments\":[],\"specialAssignments\":[{\"rule\":{\"type\":\"other\"},\"color\":{\"type\":\"loop\"},\"touched\":false}],\"paletteId\":\"elastic_brand_2023\",\"colorMode\":{\"type\":\"categorical\"}},\"emptySizeRatio\":0.3}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"95c8cccd-56fb-4581-b44d-acf991b76ee4\":{\"columns\":{\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_access\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true}},\"b0265cbc-e0db-4c62-949d-21453b1f9bd6\":{\"label\":\"Top 5 values of @processing_result.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"@processing_result.keyword\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"b0265cbc-e0db-4c62-949d-21453b1f9bd6\",\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"logs-*\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"logs-*\",\"title\":\"logs-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"a86ae331-a867-4e9d-81cf-79477ce8d413\",\"gridData\":{\"i\":\"a86ae331-a867-4e9d-81cf-79477ce8d413\",\"y\":7,\"x\":8,\"w\":8,\"h\":12}},{\"type\":\"lens\",\"title\":\"HTTPd Access - Events Serverity\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-7ecadc49-3cde-468f-9121-a487595708a9\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"7ecadc49-3cde-468f-9121-a487595708a9\",\"primaryGroups\":[\"001291ae-b7e9-49b0-baeb-c5e1836e949c\"],\"metrics\":[\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.3}],\"palette\":{\"type\":\"palette\",\"name\":\"kibana_palette\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7ecadc49-3cde-468f-9121-a487595708a9\":{\"columns\":{\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_access\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true}},\"001291ae-b7e9-49b0-baeb-c5e1836e949c\":{\"label\":\"Top 5 values of events.severity.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"events.severity.keyword\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false},\"customLabel\":false}},\"columnOrder\":[\"001291ae-b7e9-49b0-baeb-c5e1836e949c\",\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"logs-*\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"logs-*\",\"title\":\"logs-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"e5ed4803-f9ff-411f-aab7-88975e7304e5\",\"gridData\":{\"i\":\"e5ed4803-f9ff-411f-aab7-88975e7304e5\",\"y\":7,\"x\":0,\"w\":8,\"h\":12}},{\"type\":\"lens\",\"title\":\"HTTPd Access - Event Serverity\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-bf8cabe3-5930-469c-af31-08860619d27e\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\",\"showSingleSeries\":false},\"valueLabels\":\"show\",\"preferredSeriesType\":\"bar_stacked\",\"layers\":[{\"layerId\":\"bf8cabe3-5930-469c-af31-08860619d27e\",\"accessors\":[\"dac479b4-2168-4958-9362-eba23613da8b\",\"328165b0-620e-46f6-8439-c2c38b33faf0\",\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\",\"73262379-fde7-4dfa-af60-a824c535acef\",\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\"],\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"colorMapping\":{\"assignments\":[],\"specialAssignments\":[{\"rule\":{\"type\":\"other\"},\"color\":{\"type\":\"loop\"},\"touched\":false}],\"paletteId\":\"default\",\"colorMode\":{\"type\":\"categorical\"}},\"xAccessor\":\"acafc88c-a7f3-446e-a978-cc5805a11493\",\"yConfig\":[{\"forAccessor\":\"73262379-fde7-4dfa-af60-a824c535acef\",\"color\":\"#ffed87\"},{\"forAccessor\":\"dac479b4-2168-4958-9362-eba23613da8b\",\"color\":\"#81d7d3\"},{\"forAccessor\":\"328165b0-620e-46f6-8439-c2c38b33faf0\",\"color\":\"#61a2ff\"},{\"forAccessor\":\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\",\"color\":\"#ff9d79\"},{\"forAccessor\":\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\",\"color\":\"#ff3125\"}]}],\"yTitle\":\"Count\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"xTitle\":\"\",\"showCurrentTimeMarker\":true,\"hideEndzones\":true},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"bf8cabe3-5930-469c-af31-08860619d27e\":{\"columns\":{\"acafc88c-a7f3-446e-a978-cc5805a11493\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"73262379-fde7-4dfa-af60-a824c535acef\":{\"label\":\"INFO\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_access\\\" AND events.severity.keyword : \\\"INFO\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"dac479b4-2168-4958-9362-eba23613da8b\":{\"label\":\"LOW\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_access\\\" AND events.severity.keyword : \\\"LOW\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"328165b0-620e-46f6-8439-c2c38b33faf0\":{\"label\":\"MEDIUM\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_access\\\" AND events.severity.keyword : \\\"MEDIUM\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\":{\"label\":\"HIGH\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_access\\\" AND events.severity.keyword : \\\"HIGH\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\":{\"label\":\"CRITICAL\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_access\\\" AND events.severity.keyword : \\\"CRITICAL\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"acafc88c-a7f3-446e-a978-cc5805a11493\",\"73262379-fde7-4dfa-af60-a824c535acef\",\"dac479b4-2168-4958-9362-eba23613da8b\",\"328165b0-620e-46f6-8439-c2c38b33faf0\",\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\",\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"title\":\"logsentinelai-analysis-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"7fb1195e-8696-43a5-8409-cbf2b92041f7\",\"gridData\":{\"i\":\"7fb1195e-8696-43a5-8409-cbf2b92041f7\",\"y\":7,\"x\":16,\"w\":32,\"h\":12}},{\"type\":\"lens\",\"title\":\"HTTPd Server Error - Precessing Result\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"description\":\"Success / Failed\",\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-95c8cccd-56fb-4581-b44d-acf991b76ee4\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"95c8cccd-56fb-4581-b44d-acf991b76ee4\",\"primaryGroups\":[\"fcdfee8c-c999-4375-b7c8-d260d2e42049\"],\"metrics\":[\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"colorMapping\":{\"assignments\":[],\"specialAssignments\":[{\"rule\":{\"type\":\"other\"},\"color\":{\"type\":\"loop\"},\"touched\":false}],\"paletteId\":\"elastic_brand_2023\",\"colorMode\":{\"type\":\"categorical\"}},\"emptySizeRatio\":0.3}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"95c8cccd-56fb-4581-b44d-acf991b76ee4\":{\"columns\":{\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_apache_error\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true}},\"fcdfee8c-c999-4375-b7c8-d260d2e42049\":{\"label\":\"Top 5 values of @processing_result.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"@processing_result.keyword\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"fcdfee8c-c999-4375-b7c8-d260d2e42049\",\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"logs-*\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"logs-*\",\"title\":\"logs-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"a3777294-cb97-40c6-adca-02e31b7be502\",\"gridData\":{\"i\":\"a3777294-cb97-40c6-adca-02e31b7be502\",\"y\":19,\"x\":8,\"w\":8,\"h\":12}},{\"type\":\"lens\",\"title\":\"HTTPd Server Error - Events Serverity\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-7ecadc49-3cde-468f-9121-a487595708a9\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"7ecadc49-3cde-468f-9121-a487595708a9\",\"primaryGroups\":[\"001291ae-b7e9-49b0-baeb-c5e1836e949c\"],\"metrics\":[\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.3}],\"palette\":{\"type\":\"palette\",\"name\":\"kibana_palette\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7ecadc49-3cde-468f-9121-a487595708a9\":{\"columns\":{\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_apache_error\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true}},\"001291ae-b7e9-49b0-baeb-c5e1836e949c\":{\"label\":\"Top 5 values of events.severity.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"events.severity.keyword\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"001291ae-b7e9-49b0-baeb-c5e1836e949c\",\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"logs-*\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"logs-*\",\"title\":\"logs-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"8882f614-a6c1-48c7-bd47-22bd1ba467ee\",\"gridData\":{\"i\":\"8882f614-a6c1-48c7-bd47-22bd1ba467ee\",\"y\":19,\"x\":0,\"w\":8,\"h\":12}},{\"type\":\"lens\",\"title\":\"HTTPd Server Error - Event Serverity\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-bf8cabe3-5930-469c-af31-08860619d27e\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\",\"showSingleSeries\":false},\"valueLabels\":\"show\",\"preferredSeriesType\":\"bar_stacked\",\"layers\":[{\"layerId\":\"bf8cabe3-5930-469c-af31-08860619d27e\",\"accessors\":[\"dac479b4-2168-4958-9362-eba23613da8b\",\"328165b0-620e-46f6-8439-c2c38b33faf0\",\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\",\"73262379-fde7-4dfa-af60-a824c535acef\",\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\"],\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"colorMapping\":{\"assignments\":[],\"specialAssignments\":[{\"rule\":{\"type\":\"other\"},\"color\":{\"type\":\"loop\"},\"touched\":false}],\"paletteId\":\"default\",\"colorMode\":{\"type\":\"categorical\"}},\"xAccessor\":\"acafc88c-a7f3-446e-a978-cc5805a11493\",\"yConfig\":[{\"forAccessor\":\"73262379-fde7-4dfa-af60-a824c535acef\",\"color\":\"#ffed87\"},{\"forAccessor\":\"dac479b4-2168-4958-9362-eba23613da8b\",\"color\":\"#81d7d3\"},{\"forAccessor\":\"328165b0-620e-46f6-8439-c2c38b33faf0\",\"color\":\"#61a2ff\"},{\"forAccessor\":\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\",\"color\":\"#ff9d79\"},{\"forAccessor\":\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\",\"color\":\"#ff3125\"}]}],\"yTitle\":\"Count\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"xTitle\":\"\",\"showCurrentTimeMarker\":true,\"hideEndzones\":true},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"bf8cabe3-5930-469c-af31-08860619d27e\":{\"columns\":{\"acafc88c-a7f3-446e-a978-cc5805a11493\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"73262379-fde7-4dfa-af60-a824c535acef\":{\"label\":\"INFO\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_apache_error\\\" AND events.severity.keyword : \\\"INFO\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"dac479b4-2168-4958-9362-eba23613da8b\":{\"label\":\"LOW\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_apache_error\\\" AND events.severity.keyword : \\\"LOW\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"328165b0-620e-46f6-8439-c2c38b33faf0\":{\"label\":\"MEDIUM\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_apache_error\\\" AND events.severity.keyword : \\\"MEDIUM\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\":{\"label\":\"HIGH\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_apache_error\\\" AND events.severity.keyword : \\\"HIGH\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\":{\"label\":\"CRITICAL\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"httpd_apache_error\\\" AND events.severity.keyword : \\\"CRITICAL\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"acafc88c-a7f3-446e-a978-cc5805a11493\",\"73262379-fde7-4dfa-af60-a824c535acef\",\"dac479b4-2168-4958-9362-eba23613da8b\",\"328165b0-620e-46f6-8439-c2c38b33faf0\",\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\",\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"title\":\"logsentinelai-analysis-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"f44217c7-6bca-4864-a7c8-54768f912f68\",\"gridData\":{\"i\":\"f44217c7-6bca-4864-a7c8-54768f912f68\",\"y\":19,\"x\":16,\"w\":32,\"h\":12}},{\"type\":\"lens\",\"title\":\"Tcpdump Packet - Precessing Result\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"description\":\"Success / Failed\",\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-95c8cccd-56fb-4581-b44d-acf991b76ee4\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"95c8cccd-56fb-4581-b44d-acf991b76ee4\",\"primaryGroups\":[\"f0b62e68-8b25-4db0-b033-6675e7260256\"],\"metrics\":[\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"colorMapping\":{\"assignments\":[],\"specialAssignments\":[{\"rule\":{\"type\":\"other\"},\"color\":{\"type\":\"loop\"},\"touched\":false}],\"paletteId\":\"elastic_brand_2023\",\"colorMode\":{\"type\":\"categorical\"}},\"emptySizeRatio\":0.3}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"95c8cccd-56fb-4581-b44d-acf991b76ee4\":{\"columns\":{\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"tcpdump_packet\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true}},\"f0b62e68-8b25-4db0-b033-6675e7260256\":{\"label\":\"Top 5 values of @processing_result.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"@processing_result.keyword\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"f0b62e68-8b25-4db0-b033-6675e7260256\",\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"logs-*\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"logs-*\",\"title\":\"logs-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"df759446-0314-4842-a3aa-0ca04616cfb6\",\"gridData\":{\"i\":\"df759446-0314-4842-a3aa-0ca04616cfb6\",\"y\":43,\"x\":8,\"w\":8,\"h\":12}},{\"type\":\"lens\",\"title\":\"Tcpdump Packet - Events Serverity\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-7ecadc49-3cde-468f-9121-a487595708a9\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"7ecadc49-3cde-468f-9121-a487595708a9\",\"primaryGroups\":[\"001291ae-b7e9-49b0-baeb-c5e1836e949c\"],\"metrics\":[\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.3}],\"palette\":{\"type\":\"palette\",\"name\":\"kibana_palette\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7ecadc49-3cde-468f-9121-a487595708a9\":{\"columns\":{\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"tcpdump_packet\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true}},\"001291ae-b7e9-49b0-baeb-c5e1836e949c\":{\"label\":\"Top 5 values of events.severity.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"events.severity.keyword\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"001291ae-b7e9-49b0-baeb-c5e1836e949c\",\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"logs-*\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"logs-*\",\"title\":\"logs-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"f771844a-1b72-4c64-a3d8-ade7409c340d\",\"gridData\":{\"i\":\"f771844a-1b72-4c64-a3d8-ade7409c340d\",\"y\":43,\"x\":0,\"w\":8,\"h\":12}},{\"type\":\"lens\",\"title\":\"Tcpdump Packet - Event Serverity\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-bf8cabe3-5930-469c-af31-08860619d27e\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\",\"showSingleSeries\":false},\"valueLabels\":\"show\",\"preferredSeriesType\":\"bar_stacked\",\"layers\":[{\"layerId\":\"bf8cabe3-5930-469c-af31-08860619d27e\",\"accessors\":[\"dac479b4-2168-4958-9362-eba23613da8b\",\"328165b0-620e-46f6-8439-c2c38b33faf0\",\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\",\"73262379-fde7-4dfa-af60-a824c535acef\",\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\"],\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"colorMapping\":{\"assignments\":[],\"specialAssignments\":[{\"rule\":{\"type\":\"other\"},\"color\":{\"type\":\"loop\"},\"touched\":false}],\"paletteId\":\"default\",\"colorMode\":{\"type\":\"categorical\"}},\"xAccessor\":\"acafc88c-a7f3-446e-a978-cc5805a11493\",\"yConfig\":[{\"forAccessor\":\"73262379-fde7-4dfa-af60-a824c535acef\",\"color\":\"#ffed87\"},{\"forAccessor\":\"dac479b4-2168-4958-9362-eba23613da8b\",\"color\":\"#81d7d3\"},{\"forAccessor\":\"328165b0-620e-46f6-8439-c2c38b33faf0\",\"color\":\"#61a2ff\"},{\"forAccessor\":\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\",\"color\":\"#ff9d79\"},{\"forAccessor\":\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\",\"color\":\"#ff3125\"}]}],\"yTitle\":\"Count\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"xTitle\":\"\",\"showCurrentTimeMarker\":true,\"hideEndzones\":true},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"bf8cabe3-5930-469c-af31-08860619d27e\":{\"columns\":{\"acafc88c-a7f3-446e-a978-cc5805a11493\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"73262379-fde7-4dfa-af60-a824c535acef\":{\"label\":\"INFO\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"tcpdump_packet\\\" AND events.severity.keyword : \\\"INFO\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"dac479b4-2168-4958-9362-eba23613da8b\":{\"label\":\"LOW\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"tcpdump_packet\\\" AND events.severity.keyword : \\\"LOW\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"328165b0-620e-46f6-8439-c2c38b33faf0\":{\"label\":\"MEDIUM\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"tcpdump_packet\\\" AND events.severity.keyword : \\\"MEDIUM\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\":{\"label\":\"HIGH\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"tcpdump_packet\\\" AND events.severity.keyword : \\\"HIGH\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\":{\"label\":\"CRITICAL\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"tcpdump_packet\\\" AND events.severity.keyword : \\\"CRITICAL\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"acafc88c-a7f3-446e-a978-cc5805a11493\",\"73262379-fde7-4dfa-af60-a824c535acef\",\"dac479b4-2168-4958-9362-eba23613da8b\",\"328165b0-620e-46f6-8439-c2c38b33faf0\",\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\",\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"e0f0473d-f665-48bb-aec6-82cc12ba96da\",\"gridData\":{\"i\":\"e0f0473d-f665-48bb-aec6-82cc12ba96da\",\"y\":43,\"x\":16,\"w\":32,\"h\":12}},{\"type\":\"lens\",\"title\":\"Processing Throughput\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"hidePanelTitles\":false,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-674b2b6b-ff53-43e9-bf69-6a291b8d14e2\"},{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-e64c8105-a1c2-40fe-99bb-4eef764041f2\"}],\"state\":{\"visualization\":{\"layerId\":\"674b2b6b-ff53-43e9-bf69-6a291b8d14e2\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":null,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#BFDBFF\",\"stop\":500},{\"color\":\"#fcd883\",\"stop\":1000},{\"color\":\"#16c56e\",\"stop\":1001}],\"colorStops\":[{\"color\":\"#BFDBFF\",\"stop\":null},{\"color\":\"#fcd883\",\"stop\":500},{\"color\":\"#16c56e\",\"stop\":1000}],\"continuity\":\"all\",\"maxSteps\":5}},\"metricAccessor\":\"ac7425f0-7155-4853-a07e-31c237013eb3\",\"breakdownByAccessor\":\"ac96ec5e-dfd6-4e3c-a18d-d8ac1cd579e6\",\"maxAccessor\":\"c8a9cb17-cd4b-4f01-81e2-434709fd99a1\",\"showBar\":false,\"icon\":\"compute\",\"trendlineLayerId\":\"e64c8105-a1c2-40fe-99bb-4eef764041f2\",\"trendlineLayerType\":\"metricTrendline\",\"trendlineTimeAccessor\":\"06b2761b-b245-4691-b0b6-b011c0e3aab5\",\"trendlineMetricAccessor\":\"44e965bd-544e-4b6e-8092-4405efb2dd2b\",\"trendlineBreakdownByAccessor\":\"7cfb0b83-bb0e-4439-a7de-3fb381bd0ac3\",\"maxCols\":4},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"674b2b6b-ff53-43e9-bf69-6a291b8d14e2\":{\"columns\":{\"ac96ec5e-dfd6-4e3c-a18d-d8ac1cd579e6\":{\"label\":\"Top 4 values of @log_type.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"@log_type.keyword\",\"isBucketed\":true,\"params\":{\"size\":4,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"accuracyMode\":true}},\"c8a9cb17-cd4b-4f01-81e2-434709fd99a1\":{\"label\":\"Static value: 0\",\"dataType\":\"number\",\"operationType\":\"static_value\",\"isStaticValue\":true,\"isBucketed\":false,\"scale\":\"ratio\",\"params\":{\"value\":\"0\"},\"references\":[]},\"ac7425f0-7155-4853-a07e-31c237013eb3\":{\"label\":\"Throughput (Logs/s,m,h)\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"@log_count\",\"isBucketed\":false,\"scale\":\"ratio\",\"timeScale\":\"m\",\"filter\":{\"query\":\"@processing_result.keyword : \\\"success\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"ac96ec5e-dfd6-4e3c-a18d-d8ac1cd579e6\",\"c8a9cb17-cd4b-4f01-81e2-434709fd99a1\",\"ac7425f0-7155-4853-a07e-31c237013eb3\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"e64c8105-a1c2-40fe-99bb-4eef764041f2\":{\"linkToLayers\":[\"674b2b6b-ff53-43e9-bf69-6a291b8d14e2\"],\"columns\":{\"06b2761b-b245-4691-b0b6-b011c0e3aab5\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"44e965bd-544e-4b6e-8092-4405efb2dd2bX0\":{\"label\":\"Part of Throughput : Logs/min\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"@log_count\",\"isBucketed\":false,\"scale\":\"ratio\",\"filter\":{\"query\":\"@processing_result.keyword : \\\"success\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":false},\"customLabel\":true},\"44e965bd-544e-4b6e-8092-4405efb2dd2b\":{\"label\":\"Throughput (Logs/s,m,h)\",\"dataType\":\"number\",\"operationType\":\"sum\",\"sourceField\":\"@log_count\",\"isBucketed\":false,\"scale\":\"ratio\",\"timeScale\":\"m\",\"filter\":{\"query\":\"@processing_result.keyword : \\\"success\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"7cfb0b83-bb0e-4439-a7de-3fb381bd0ac3\":{\"label\":\"Top 4 values of @log_type.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"@log_type.keyword\",\"isBucketed\":true,\"params\":{\"size\":4,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"accuracyMode\":true}}},\"columnOrder\":[\"7cfb0b83-bb0e-4439-a7de-3fb381bd0ac3\",\"06b2761b-b245-4691-b0b6-b011c0e3aab5\",\"44e965bd-544e-4b6e-8092-4405efb2dd2b\",\"44e965bd-544e-4b6e-8092-4405efb2dd2bX0\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"title\":\"logsentinelai-analysis-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"9d1863d9-418d-426a-aa27-e7616d11a8b0\",\"gridData\":{\"i\":\"9d1863d9-418d-426a-aa27-e7616d11a8b0\",\"y\":0,\"x\":24,\"w\":24,\"h\":7}},{\"type\":\"lens\",\"title\":\"Linux System - Precessing Result\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"description\":\"Success / Failed\",\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-95c8cccd-56fb-4581-b44d-acf991b76ee4\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"95c8cccd-56fb-4581-b44d-acf991b76ee4\",\"primaryGroups\":[\"ba05d515-85a3-45c9-aef4-cfe8ba5dc719\"],\"metrics\":[\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"colorMapping\":{\"assignments\":[],\"specialAssignments\":[{\"rule\":{\"type\":\"other\"},\"color\":{\"type\":\"loop\"},\"touched\":false}],\"paletteId\":\"elastic_brand_2023\",\"colorMode\":{\"type\":\"categorical\"}},\"emptySizeRatio\":0.3}]},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"95c8cccd-56fb-4581-b44d-acf991b76ee4\":{\"columns\":{\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"linux_system\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true}},\"ba05d515-85a3-45c9-aef4-cfe8ba5dc719\":{\"label\":\"Top 5 values of @processing_result.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"@processing_result.keyword\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"ba05d515-85a3-45c9-aef4-cfe8ba5dc719\",\"6db0b875-9572-4fc2-950b-1cfd96d1fa0a\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"logs-*\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"logs-*\",\"title\":\"logs-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"5e0b733f-9db6-4557-b69e-f829714bcba0\",\"gridData\":{\"i\":\"5e0b733f-9db6-4557-b69e-f829714bcba0\",\"y\":31,\"x\":8,\"w\":8,\"h\":12}},{\"type\":\"lens\",\"title\":\"Linux System - Events Serverity\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsPie\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-7ecadc49-3cde-468f-9121-a487595708a9\"}],\"state\":{\"visualization\":{\"shape\":\"donut\",\"layers\":[{\"layerId\":\"7ecadc49-3cde-468f-9121-a487595708a9\",\"primaryGroups\":[\"001291ae-b7e9-49b0-baeb-c5e1836e949c\"],\"metrics\":[\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\"],\"numberDisplay\":\"percent\",\"categoryDisplay\":\"default\",\"legendDisplay\":\"default\",\"nestedLegend\":false,\"layerType\":\"data\",\"emptySizeRatio\":0.3}],\"palette\":{\"type\":\"palette\",\"name\":\"kibana_palette\"}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"7ecadc49-3cde-468f-9121-a487595708a9\":{\"columns\":{\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\":{\"label\":\"Count of records\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"linux_system\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true}},\"001291ae-b7e9-49b0-baeb-c5e1836e949c\":{\"label\":\"Top 5 values of events.severity.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"events.severity.keyword\",\"isBucketed\":true,\"params\":{\"size\":5,\"orderBy\":{\"type\":\"column\",\"columnId\":\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false}}},\"columnOrder\":[\"001291ae-b7e9-49b0-baeb-c5e1836e949c\",\"849bb0bd-d2ba-4a4d-93fd-2effa1dfa62b\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"logs-*\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"logs-*\",\"title\":\"logs-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"b03abe45-46f6-43d5-8ce3-f1b9bb012a3d\",\"gridData\":{\"i\":\"b03abe45-46f6-43d5-8ce3-f1b9bb012a3d\",\"y\":31,\"x\":0,\"w\":8,\"h\":12}},{\"type\":\"lens\",\"title\":\"Linux System - Event Serverity\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsXY\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-bf8cabe3-5930-469c-af31-08860619d27e\"}],\"state\":{\"visualization\":{\"title\":\"Empty XY chart\",\"legend\":{\"isVisible\":true,\"position\":\"right\",\"showSingleSeries\":false},\"valueLabels\":\"show\",\"preferredSeriesType\":\"bar_stacked\",\"layers\":[{\"layerId\":\"bf8cabe3-5930-469c-af31-08860619d27e\",\"accessors\":[\"dac479b4-2168-4958-9362-eba23613da8b\",\"328165b0-620e-46f6-8439-c2c38b33faf0\",\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\",\"73262379-fde7-4dfa-af60-a824c535acef\",\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\"],\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"layerType\":\"data\",\"colorMapping\":{\"assignments\":[],\"specialAssignments\":[{\"rule\":{\"type\":\"other\"},\"color\":{\"type\":\"loop\"},\"touched\":false}],\"paletteId\":\"default\",\"colorMode\":{\"type\":\"categorical\"}},\"xAccessor\":\"acafc88c-a7f3-446e-a978-cc5805a11493\",\"yConfig\":[{\"forAccessor\":\"73262379-fde7-4dfa-af60-a824c535acef\",\"color\":\"#ffed87\"},{\"forAccessor\":\"dac479b4-2168-4958-9362-eba23613da8b\",\"color\":\"#81d7d3\"},{\"forAccessor\":\"328165b0-620e-46f6-8439-c2c38b33faf0\",\"color\":\"#61a2ff\"},{\"forAccessor\":\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\",\"color\":\"#ff9d79\"},{\"forAccessor\":\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\",\"color\":\"#ff3125\"}]}],\"yTitle\":\"Count\",\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"xTitle\":\"\",\"showCurrentTimeMarker\":true,\"hideEndzones\":true,\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"yLeftExtent\":{\"mode\":\"full\",\"niceValues\":true}},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"bf8cabe3-5930-469c-af31-08860619d27e\":{\"columns\":{\"acafc88c-a7f3-446e-a978-cc5805a11493\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"73262379-fde7-4dfa-af60-a824c535acef\":{\"label\":\"INFO\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"linux_system\\\" AND events.severity.keyword : \\\"INFO\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"dac479b4-2168-4958-9362-eba23613da8b\":{\"label\":\"LOW\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"linux_system\\\" AND events.severity.keyword : \\\"LOW\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"328165b0-620e-46f6-8439-c2c38b33faf0\":{\"label\":\"MEDIUM\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"linux_system\\\" AND events.severity.keyword : \\\"MEDIUM\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\":{\"label\":\"HIGH\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"linux_system\\\" AND events.severity.keyword : \\\"HIGH\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\":{\"label\":\"CRITICAL\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"___records___\",\"filter\":{\"query\":\"@log_type.keyword : \\\"linux_system\\\" AND events.severity.keyword : \\\"CRITICAL\\\"\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true}},\"columnOrder\":[\"acafc88c-a7f3-446e-a978-cc5805a11493\",\"73262379-fde7-4dfa-af60-a824c535acef\",\"dac479b4-2168-4958-9362-eba23613da8b\",\"328165b0-620e-46f6-8439-c2c38b33faf0\",\"fa46045f-36e9-4fc3-8c5f-ca0737f64253\",\"b9587dea-da6f-4bb6-895d-b4ce509a9d57\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"title\":\"logsentinelai-analysis-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"f24d9706-d710-42e6-b79e-e9888a808277\",\"gridData\":{\"i\":\"f24d9706-d710-42e6-b79e-e9888a808277\",\"y\":31,\"x\":16,\"w\":32,\"h\":12}},{\"type\":\"lens\",\"title\":\"Critical Events\",\"embeddableConfig\":{\"enhancements\":{\"dynamicActions\":{\"events\":[]}},\"hidePanelTitles\":false,\"syncColors\":false,\"syncCursor\":true,\"syncTooltips\":false,\"searchSessionId\":\"a1483059-d8cd-430b-b5a0-bc79d6bb0490\",\"filters\":[],\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"attributes\":{\"title\":\"\",\"visualizationType\":\"lnsMetric\",\"type\":\"lens\",\"references\":[{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-e16878f4-221a-42f9-b112-99216242dea4\"},{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-d28ff653-7177-4152-9292-4e73170029e2\"},{\"type\":\"index-pattern\",\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"name\":\"indexpattern-datasource-layer-ea748f2c-104f-4a2c-9f01-dd12c021628e\"}],\"state\":{\"visualization\":{\"layerId\":\"e16878f4-221a-42f9-b112-99216242dea4\",\"layerType\":\"data\",\"palette\":{\"name\":\"custom\",\"type\":\"palette\",\"params\":{\"steps\":3,\"name\":\"custom\",\"reverse\":false,\"rangeType\":\"number\",\"rangeMin\":0,\"rangeMax\":null,\"progression\":\"fixed\",\"stops\":[{\"color\":\"#24c292\",\"stop\":1},{\"color\":\"#f6726a\",\"stop\":8}],\"colorStops\":[{\"color\":\"#24c292\",\"stop\":0},{\"color\":\"#f6726a\",\"stop\":1}],\"continuity\":\"above\",\"maxSteps\":5}},\"metricAccessor\":\"bbb32859-4273-4669-a686-29204416d87b\",\"icon\":\"alert\",\"breakdownByAccessor\":\"be47c346-8b9e-408a-946f-d715cd917953\",\"maxCols\":4,\"showBar\":false,\"trendlineLayerId\":\"ea748f2c-104f-4a2c-9f01-dd12c021628e\",\"trendlineLayerType\":\"metricTrendline\",\"trendlineTimeAccessor\":\"ccfc6ef3-c67e-40ce-a9b3-deb5d6e02952\",\"trendlineMetricAccessor\":\"a1cf296c-d831-4ef8-b08f-97becea9132e\",\"trendlineBreakdownByAccessor\":\"3bbcb218-5c29-4d4b-ae85-aa77726ec68d\"},\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filters\":[],\"datasourceStates\":{\"formBased\":{\"layers\":{\"e16878f4-221a-42f9-b112-99216242dea4\":{\"columns\":{\"bbb32859-4273-4669-a686-29204416d87b\":{\"label\":\"Critical Events\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"events.severity.keyword\",\"filter\":{\"query\":\"@processing_result.keyword : \\\"success\\\" AND events.severity.keyword : \\\"CRITICAL\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"be47c346-8b9e-408a-946f-d715cd917953\":{\"label\":\"Top 4 values of @log_type.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"@log_type.keyword\",\"isBucketed\":true,\"params\":{\"size\":4,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"accuracyMode\":true}}},\"columnOrder\":[\"be47c346-8b9e-408a-946f-d715cd917953\",\"bbb32859-4273-4669-a686-29204416d87b\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{},\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"d28ff653-7177-4152-9292-4e73170029e2\":{\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"linkToLayers\":[\"e16878f4-221a-42f9-b112-99216242dea4\"],\"columns\":{\"bdeed212-8b49-4fe7-a068-a2ca5fa20fe1\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"639fecee-1434-4dc2-80a8-a8dda933b3c4\":{\"label\":\"Requires Immediate Attention (Last 10min)\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"requires_immediate_attention\",\"filter\":{\"query\":\"@timestamp >= now-10m AND requires_immediate_attention : true\",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"3151859c-283a-4099-9976-b42ca4d818d1\":{\"label\":\"Top 4 values of @log_type.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"@log_type.keyword\",\"isBucketed\":true,\"params\":{\"size\":4,\"orderBy\":{\"type\":\"column\",\"columnId\":\"639fecee-1434-4dc2-80a8-a8dda933b3c4\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"accuracyMode\":true}}},\"columnOrder\":[\"3151859c-283a-4099-9976-b42ca4d818d1\",\"bdeed212-8b49-4fe7-a068-a2ca5fa20fe1\",\"639fecee-1434-4dc2-80a8-a8dda933b3c4\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{}},\"ea748f2c-104f-4a2c-9f01-dd12c021628e\":{\"indexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"linkToLayers\":[\"e16878f4-221a-42f9-b112-99216242dea4\"],\"columns\":{\"ccfc6ef3-c67e-40ce-a9b3-deb5d6e02952\":{\"label\":\"@timestamp\",\"dataType\":\"date\",\"operationType\":\"date_histogram\",\"sourceField\":\"@timestamp\",\"isBucketed\":true,\"scale\":\"interval\",\"params\":{\"interval\":\"auto\",\"includeEmptyRows\":true,\"dropPartials\":false}},\"a1cf296c-d831-4ef8-b08f-97becea9132e\":{\"label\":\"Critical Events\",\"dataType\":\"number\",\"operationType\":\"count\",\"isBucketed\":false,\"scale\":\"ratio\",\"sourceField\":\"events.severity.keyword\",\"filter\":{\"query\":\"@processing_result.keyword : \\\"success\\\" AND events.severity.keyword : \\\"CRITICAL\\\" \",\"language\":\"kuery\"},\"params\":{\"emptyAsNull\":true},\"customLabel\":true},\"3bbcb218-5c29-4d4b-ae85-aa77726ec68d\":{\"label\":\"Top 4 values of @log_type.keyword\",\"dataType\":\"string\",\"operationType\":\"terms\",\"scale\":\"ordinal\",\"sourceField\":\"@log_type.keyword\",\"isBucketed\":true,\"params\":{\"size\":4,\"orderBy\":{\"type\":\"alphabetical\",\"fallback\":false},\"orderDirection\":\"asc\",\"otherBucket\":false,\"missingBucket\":false,\"parentFormat\":{\"id\":\"terms\"},\"include\":[],\"exclude\":[],\"includeIsRegex\":false,\"excludeIsRegex\":false,\"accuracyMode\":true}}},\"columnOrder\":[\"3bbcb218-5c29-4d4b-ae85-aa77726ec68d\",\"ccfc6ef3-c67e-40ce-a9b3-deb5d6e02952\",\"a1cf296c-d831-4ef8-b08f-97becea9132e\"],\"sampling\":1,\"ignoreGlobalFilters\":false,\"incompleteColumns\":{}}},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"indexpattern\":{\"layers\":{},\"currentIndexPatternId\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\"},\"textBased\":{\"layers\":{},\"indexPatternRefs\":[{\"id\":\"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0\",\"title\":\"logsentinelai-analysis-*\",\"timeField\":\"@timestamp\"}]}},\"internalReferences\":[],\"adHocDataViews\":{}}}},\"panelIndex\":\"902bf19c-5499-4970-b3f3-147a58a64865\",\"gridData\":{\"i\":\"902bf19c-5499-4970-b3f3-147a58a64865\",\"y\":0,\"x\":0,\"w\":24,\"h\":7}}]","timeRestore":false,"title":"[LogSentinelAI] AI Log Analysis","version":3},"coreMigrationVersion":"8.8.0","created_at":"2025-07-19T10:21:42.274Z","created_by":"u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0","id":"6f3b3c6b-f84d-48ee-a7bb-831b05711b77","managed":false,"references":[{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"a86ae331-a867-4e9d-81cf-79477ce8d413:indexpattern-datasource-layer-95c8cccd-56fb-4581-b44d-acf991b76ee4","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"e5ed4803-f9ff-411f-aab7-88975e7304e5:indexpattern-datasource-layer-7ecadc49-3cde-468f-9121-a487595708a9","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"7fb1195e-8696-43a5-8409-cbf2b92041f7:indexpattern-datasource-layer-bf8cabe3-5930-469c-af31-08860619d27e","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"a3777294-cb97-40c6-adca-02e31b7be502:indexpattern-datasource-layer-95c8cccd-56fb-4581-b44d-acf991b76ee4","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"8882f614-a6c1-48c7-bd47-22bd1ba467ee:indexpattern-datasource-layer-7ecadc49-3cde-468f-9121-a487595708a9","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"f44217c7-6bca-4864-a7c8-54768f912f68:indexpattern-datasource-layer-bf8cabe3-5930-469c-af31-08860619d27e","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"df759446-0314-4842-a3aa-0ca04616cfb6:indexpattern-datasource-layer-95c8cccd-56fb-4581-b44d-acf991b76ee4","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"f771844a-1b72-4c64-a3d8-ade7409c340d:indexpattern-datasource-layer-7ecadc49-3cde-468f-9121-a487595708a9","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"e0f0473d-f665-48bb-aec6-82cc12ba96da:indexpattern-datasource-layer-bf8cabe3-5930-469c-af31-08860619d27e","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"9d1863d9-418d-426a-aa27-e7616d11a8b0:indexpattern-datasource-layer-674b2b6b-ff53-43e9-bf69-6a291b8d14e2","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"9d1863d9-418d-426a-aa27-e7616d11a8b0:indexpattern-datasource-layer-e64c8105-a1c2-40fe-99bb-4eef764041f2","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"5e0b733f-9db6-4557-b69e-f829714bcba0:indexpattern-datasource-layer-95c8cccd-56fb-4581-b44d-acf991b76ee4","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"b03abe45-46f6-43d5-8ce3-f1b9bb012a3d:indexpattern-datasource-layer-7ecadc49-3cde-468f-9121-a487595708a9","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"f24d9706-d710-42e6-b79e-e9888a808277:indexpattern-datasource-layer-bf8cabe3-5930-469c-af31-08860619d27e","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"902bf19c-5499-4970-b3f3-147a58a64865:indexpattern-datasource-layer-e16878f4-221a-42f9-b112-99216242dea4","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"902bf19c-5499-4970-b3f3-147a58a64865:indexpattern-datasource-layer-d28ff653-7177-4152-9292-4e73170029e2","type":"index-pattern"},{"id":"ac2f27bd-8781-4a82-8dd6-a6cb220c55d0","name":"902bf19c-5499-4970-b3f3-147a58a64865:indexpattern-datasource-layer-ea748f2c-104f-4a2c-9f01-dd12c021628e","type":"index-pattern"}],"type":"dashboard","typeMigrationVersion":"10.2.0","updated_at":"2025-07-20T09:57:21.552Z","updated_by":"u_mGBROF_q5bmFCATbLXAcCwKa0k8JvONAwSruelyKA5E_0","version":"WzEwMTUwLDNd"}
3
+ {"excludedObjects":[],"excludedObjectsCount":0,"exportedCount":2,"missingRefCount":0,"missingReferences":[]}
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Anthony Lapenna
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
File without changes
@@ -0,0 +1,144 @@
1
+ # LogSentinelAI Package Migration Guide
2
+
3
+ ## pip 라이브러리로 전환 완료
4
+
5
+ 이 프로젝트는 uv 기반의 현대적인 Python 패키지로 완전히 전환되었습니다.
6
+
7
+ ### 📦 새로운 패키지 구조
8
+
9
+ ```
10
+ LogSentinelAI/
11
+ ├── src/logsentinelai/ # 메인 패키지
12
+ │ ├── __init__.py # 패키지 진입점
13
+ │ ├── cli.py # CLI 인터페이스
14
+ │ ├── analyzers/ # 로그 분석기들
15
+ │ │ ├── httpd_access.py # HTTP 액세스 로그 분석
16
+ │ │ ├── httpd_apache.py # Apache 에러 로그 분석
17
+ │ │ ├── linux_system.py # 리눅스 시스템 로그 분석
18
+ │ │ └── tcpdump_packet.py # TCPDump 패킷 분석
19
+ │ ├── core/ # 핵심 기능
20
+ │ │ ├── commons.py # 공통 유틸리티
21
+ │ │ └── prompts.py # LLM 프롬프트 템플릿
22
+ │ ├── config/ # 설정 관리
23
+ │ │ └── settings.py # 설정 처리
24
+ │ └── utils/ # 유틸리티
25
+ │ └── geoip_downloader.py # GeoIP 데이터베이스 다운로더
26
+ ├── pyproject.toml # 패키지 정의 및 의존성
27
+ ├── uv.lock # 의존성 잠금 파일
28
+ └── README.md # 업데이트된 문서
29
+ ```
30
+
31
+ ### 🚀 새로운 설치 방법
32
+
33
+ #### 개발 설치 (추천)
34
+ ```bash
35
+ # uv 설치 (아직 없다면)
36
+ curl -LsSf https://astral.sh/uv/install.sh | sh
37
+
38
+ # 프로젝트 클론 및 설치
39
+ git clone https://github.com/call518/LogSentinelAI.git
40
+ cd LogSentinelAI
41
+ uv pip install --editable .
42
+ ```
43
+
44
+ #### 일반 설치
45
+ ```bash
46
+ # 소스에서 직접 설치
47
+ pip install git+https://github.com/call518/LogSentinelAI.git
48
+
49
+ # 또는 로컬 클론에서
50
+ git clone https://github.com/call518/LogSentinelAI.git
51
+ cd LogSentinelAI
52
+ pip install .
53
+ ```
54
+
55
+ ### ✨ 새로운 명령어
56
+
57
+ 기존의 `python analysis-*.py` 스크립트들이 편리한 CLI 명령어로 대체되었습니다:
58
+
59
+ | 기존 방식 | 새로운 방식 |
60
+ |----------|-----------|
61
+ | `python analysis-httpd-access-log.py` | `logsentinelai-httpd-access` |
62
+ | `python analysis-httpd-apache-log.py` | `logsentinelai-httpd-apache` |
63
+ | `python analysis-linux-system-log.py` | `logsentinelai-linux-system` |
64
+ | `python analysis-tcpdump-packet.py` | `logsentinelai-tcpdump` |
65
+ | `python download_geoip_database.py` | `logsentinelai-geoip-download` |
66
+
67
+ ### 📋 사용 예제
68
+
69
+ ```bash
70
+ # 기본 도움말
71
+ logsentinelai --help
72
+
73
+ # HTTP 액세스 로그 분석
74
+ logsentinelai-httpd-access --log-path /var/log/apache2/access.log
75
+
76
+ # 실시간 모니터링
77
+ logsentinelai-linux-system --mode realtime
78
+
79
+ # SSH 원격 분석
80
+ logsentinelai-tcpdump --remote --ssh admin@server.com --ssh-key ~/.ssh/id_rsa
81
+
82
+ # GeoIP 데이터베이스 다운로드
83
+ logsentinelai-geoip-download
84
+ ```
85
+
86
+ ### 🔧 프로그래밍 인터페이스
87
+
88
+ 패키지를 Python 코드에서도 사용할 수 있습니다:
89
+
90
+ ```python
91
+ import logsentinelai
92
+
93
+ # LLM 모델 초기화
94
+ model = logsentinelai.initialize_llm_model()
95
+
96
+ # 분석 설정 가져오기
97
+ config = logsentinelai.get_analysis_config("httpd_access")
98
+
99
+ # 배치 분석 실행
100
+ logsentinelai.run_generic_batch_analysis(
101
+ log_type="httpd_access",
102
+ analysis_schema_class=HTTPDAccessAnalysis,
103
+ prompt_template=PROMPT_TEMPLATE,
104
+ analysis_title="Custom Analysis"
105
+ )
106
+ ```
107
+
108
+ ### 🎯 변경사항 요약
109
+
110
+ 1. **패키지화**: 모든 코드가 `logsentinelai` 패키지로 구조화
111
+ 2. **CLI 통합**: 일관된 명령어 인터페이스 제공
112
+ 3. **의존성 관리**: `pyproject.toml`과 `uv.lock`으로 현대적 의존성 관리
113
+ 4. **확장성**: 새로운 분석기를 쉽게 추가할 수 있는 구조
114
+ 5. **호환성**: 기존 기능과 설정 파일들은 그대로 유지
115
+
116
+ ### 📖 마이그레이션 가이드
117
+
118
+ 기존 사용자들을 위한 마이그레이션 단계:
119
+
120
+ 1. **설치**: 새로운 패키지 설치
121
+ ```bash
122
+ cd LogSentinelAI
123
+ uv pip install --editable .
124
+ ```
125
+
126
+ 2. **설정 유지**: 기존 `config` 파일은 그대로 사용 가능
127
+
128
+ 3. **명령어 변경**: 스크립트 호출을 새로운 CLI 명령어로 변경
129
+
130
+ 4. **테스트**: 새로운 명령어들이 정상 작동하는지 확인
131
+ ```bash
132
+ logsentinelai-httpd-access --help
133
+ ```
134
+
135
+ ### 🚀 향후 계획
136
+
137
+ - PyPI 패키지 등록으로 `pip install logsentinelai` 지원
138
+ - Docker 이미지 업데이트
139
+ - 추가 분석기 플러그인 시스템
140
+ - 웹 인터페이스 통합
141
+
142
+ ---
143
+
144
+ **🎉 이제 LogSentinelAI는 현대적인 Python 패키지로 더욱 사용하기 쉬워졌습니다!**