Есть ли способ указать целевые файлы журналов для агента мониторинга Microsoft для прослушивания и получения журналов из кода? - PullRequest
0 голосов
/ 11 октября 2019

Я рассматриваю возможность использования агента мониторинга Microsoft для сбора некоторых записей журнала из файлов журнала в системе и отправки их в рабочую область анализа журнала. Существует ли способ указания целевых файлов (пользовательских файлов журналов), которые агент будет прослушивать и направлять журналы напрямую в рабочую область Azure. Я знаю, что это можно сделать через портал Azure, добавив дополнительный источник данных в рабочую область (как указано в этой ссылке https://docs.microsoft.com/en-us/azure/azure-monitor/platform/data-sources-custom-logs).. Я ищу способ настройки этих источников данных из сценария c # code / powershell. (возможно api или sdk, о которых я не знаю).

1 Ответ

0 голосов
/ 12 октября 2019

Добавление пользовательских журналов. Используйте New-AzOperationalInsightsCustomLogDataSource.

Вот другие командлеты powershell, которые могут быть полезны для запроса и создания источника данных LogAnalytics.

get-azoperationalinsightsdatasource
New-AzOperationalInsightsApplicationInsightsDataSource 
New-AzOperationalInsightsAzureActivityLogDataSource
New-AzOperationalInsightsComputerGroup
New-AzOperationalInsightsCustomLogDataSource
New-AzOperationalInsightsLinuxPerformanceObjectDataSource
New-AzOperationalInsightsLinuxSyslogDataSource
New-AzOperationalInsightsSavedSearch
New-AzOperationalInsightsStorageInsight
New-AzOperationalInsightsWindowsEventDataSource
New-AzOperationalInsightsWindowsPerformanceCounterDataSource

https://docs.microsoft.com/en-us/powershell/module/az.operationalinsights/get-azoperationalinsightsdatasource?view=azps-2.7.0

Также найдите ссылку для API анализа аналитики журнала, которую можно легко использовать с кодом C #.

https://docs.microsoft.com/en-us/rest/api/loganalytics/ https://docs.microsoft.com/en-us/rest/api/loganalytics/datasources/createorupdate

Powershell

Пользовательский журнал для сбора

Ссылка: https://docs.microsoft.com/en-us/azure/azure-monitor/platform/powershell-workspace-configuration

$CustomLog = @"
{
    "customLogName": "sampleCustomLog1",
    "description": "Example custom log datasource",
    "inputs": [
        {
            "location": {
            "fileSystemLocations": {
                "windowsFileTypeLogPaths": [ "e:\\iis5\\*.log" ],
                "linuxFileTypeLogPaths": [ "/var/logs" ]
                }
            },
        "recordDelimiter": {
            "regexDelimiter": {
                "pattern": "\\n",
                "matchIndex": 0,
                "matchIndexSpecified": true,
                "numberedGroup": null
                }
            }
        }
    ],
    "extractions": [
        {
            "extractionName": "TimeGenerated",
            "extractionType": "DateTime",
            "extractionProperties": {
                "dateTimeExtraction": {
                    "regex": null,
                    "joinStringRegex": null
                    }
                }
            }
        ]
    }
"@




# Custom Logs

New-AzOperationalInsightsCustomLogDataSource -ResourceGroupName $ResourceGroup -WorkspaceName $WorkspaceName -CustomLogRawJson "$CustomLog" -Name "Example Custom Log Collection"
  • Шаблон ARM

Формат шаблона Arm для пользовательских журналов будет таким, как показано ниже. Смотрите подробную ссылку https://docs.microsoft.com/en-us/azure/azure-monitor/platform/template-workspace-configuration


{
          "apiVersion": "2015-11-01-preview",
          "type": "dataSources",
          "name": "[concat(parameters('workspaceName'), parameters('customlogName'))]",
          "dependsOn": [
            "[concat('Microsoft.OperationalInsights/workspaces/', parameters('workspaceName'))]"
          ],
          "kind": "CustomLog",
          "properties": {
            "customLogName": "[parameters('customlogName')]",
            "description": "this is a description",
            "extractions": [
              {
                "extractionName": "TimeGenerated",
                "extractionProperties": {
                  "dateTimeExtraction": {
                    "regex": [
                      {
                        "matchIndex": 0,
                        "numberdGroup": null,
                        "pattern": "((\\d{2})|(\\d{4}))-([0-1]\\d)-(([0-3]\\d)|(\\d))\\s((\\d)|([0-1]\\d)|(2[0-4])):[0-5][0-9]:[0-5][0-9]"
                      }
                    ]
                  }
                },
                "extractionType": "DateTime"
              }
            ],
            "inputs": [
              {
                "location": {
                  "fileSystemLocations": {
                    "linuxFileTypeLogPaths": null,
                    "windowsFileTypeLogPaths": [
                      "[concat('c:\\Windows\\Logs\\',parameters('customlogName'))]"
                    ]
                  }
                },
                "recordDelimiter": {
                  "regexDelimiter": {
                    "matchIndex": 0,
                    "numberdGroup": null,
                    "pattern": "(^.*((\\d{2})|(\\d{4}))-([0-1]\\d)-(([0-3]\\d)|(\\d))\\s((\\d)|([0-1]\\d)|(2[0-4])):[0-5][0-9]:[0-5][0-9].*$)"
                  }
                }
              }
            ]
          }
        }
...