2019-11-28 15:27:54 +03:00
# PSRule to Azure Monitor
2019-11-28 14:49:36 +03:00
2019-11-28 15:27:54 +03:00
Log PSRule analysis results to Azure Monitor.
2019-11-28 14:49:36 +03:00
2019-11-28 15:27:54 +03:00
![ci-badge]
2019-11-28 14:49:36 +03:00
2019-11-28 15:27:54 +03:00
## Disclaimer
2020-07-01 15:19:46 +03:00
This project is open source and **not a supported product** .
2019-11-28 15:27:54 +03:00
2020-07-01 14:34:50 +03:00
If you are experiencing problems, have a feature request, or a question, please check for an [issue] on GitHub.
If you do not see your problem captured, please file a new issue, and follow the provided template.
2019-11-28 15:27:54 +03:00
2019-12-13 17:19:34 +03:00
If you have any problems with the [PSRule][engine] engine, please check the project GitHub [issues ](https://github.com/Microsoft/PSRule/issues ) page instead.
2019-12-16 08:35:29 +03:00
## Getting the modules
This project requires the `PSRule` PowerShell module. For details on each see [install].
You can download and install these modules from the PowerShell Gallery.
Module | Description | Downloads / instructions
------ | ----------- | ------------------------
2020-07-01 14:34:50 +03:00
PSRule.Monitor | Log PSRule analysis results to Azure Monitor. | [latest][module] / [instructions][install]
2019-12-16 08:35:29 +03:00
2019-11-29 06:55:53 +03:00
## Getting started
### Upload results
To upload results from PSRule to Azure Monitor, use the `Send-PSRuleMonitorRecord` cmdlet.
Results can by piped directly from `Invoke-PSRule` or stored and piped from a variable.
2020-07-01 14:34:50 +03:00
The `Send-PSRuleMonitorRecord` cmdlet requires a Log Analytics workspace to send data to.
A workspace can be specified by using the `-WorkspaceId` and `-SharedKey` parameters.
2019-11-29 06:55:53 +03:00
For example:
```powershell
2020-07-01 14:34:50 +03:00
$data | Invoke-PSRule | Send-PSRuleMonitorRecord -WorkspaceId < workspaceId > -SharedKey < primaryKey > ;
2019-11-29 06:55:53 +03:00
```
The following example shows using analysis results from a pre-built module:
```powershell
$results = Invoke-PSRule -InputPath .\*.json -Module 'PSRule.Rules.Azure';
$results | Send-PSRuleMonitorRecord -WorkspaceId < workspaceId > -SharedKey < primaryKey > ;
```
### Querying logs from Azure Monitor
2020-07-01 14:34:50 +03:00
By default, PSRule results are stored in the `PSRule_CL` table.
The following query returns all rule records from the last hour that failed:
2019-11-29 06:55:53 +03:00
```text
PSRule_CL
| where Outcome_s == "Fail" and TimeGenerated > ago(1h)
```
2020-07-01 14:34:50 +03:00
To query these results from PowerShell use:
```powershell
Invoke-AzOperationalInsightsQuery -WorkspaceId < workspaceId > -Query 'PSRule_CL | where Outcome_s == "Fail" and TimeGenerated > ago(1h)'
```
2019-11-29 06:55:53 +03:00
## Language reference
### Commands
The following commands exist in the `PSRule.Monitor` module:
- [Send-PSRuleMonitorRecord ](docs/commands/PSRule.Monitor/en-US/Send-PSRuleMonitorRecord.md ) - Send analysis results from PSRule to Azure Monitor.
2019-11-28 15:27:54 +03:00
## Changes and versioning
Modules in this repository will use the [semantic versioning ](http://semver.org/ ) model to declare breaking changes from v1.0.0.
Prior to v1.0.0, breaking changes may be introduced in minor (0.x.0) version increments.
For a list of module changes please see the [change log ](CHANGELOG.md ).
> Pre-release module versions are created on major commits and can be installed from the PowerShell Gallery.
> Pre-release versions should be considered experimental.
> Modules and change log details for pre-releases will be removed as standard releases are made available.
## Contributing
This project welcomes contributions and suggestions.
If you are ready to contribute, please visit the [contribution guide ](CONTRIBUTING.md ).
## Code of Conduct
2019-11-28 14:49:36 +03:00
This project has adopted the [Microsoft Open Source Code of Conduct ](https://opensource.microsoft.com/codeofconduct/ ).
2019-11-28 15:27:54 +03:00
For more information see the [Code of Conduct FAQ ](https://opensource.microsoft.com/codeofconduct/faq/ )
or contact [opencode@microsoft.com ](mailto:opencode@microsoft.com ) with any additional questions or comments.
## Maintainers
- [Bernie White ](https://github.com/BernieWhite )
## License
2019-11-29 06:55:53 +03:00
This project is [licensed under the MIT License ](LICENSE ).
2019-11-28 15:27:54 +03:00
2019-12-16 08:35:29 +03:00
[install]: docs/scenarios/install-instructions.md
2020-07-14 09:53:19 +03:00
[ci-badge]: https://dev.azure.com/bewhite/PSRule.Monitor/_apis/build/status/PSRule.Monitor-CI?branchName=main
2019-12-16 08:35:29 +03:00
[module]: https://www.powershellgallery.com/packages/PSRule.Monitor
[engine]: https://github.com/Microsoft/PSRule
2020-07-01 14:34:50 +03:00
[issue]: https://github.com/Microsoft/PSRule.Monitor/issues