Skip to content
A tool for Azure Monitor at Microsoft Azure
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
CHANGELOG.md
Gopkg.lock
Gopkg.toml
LICENSE
README.md
azure.go
azure_test.go
check.go
check_test.go
main.go
metric.go
metric_test.go
wercker.yml

README.md

azmon

wercker status Go Report Card

A tool for Azure Monitor at Microsoft Azure that possible to collect metrics and check it.

Usage

Azmon has two sub-commands named check and metric. When you invoke sub-commands, must be specified global options (see Global options).

azmon check can check metric data as Nagios plugin. You specify the target metric name in --metric-name option.
Also, azmon check provides options --*-over and --*-under, because whether we should check "over than threshold" or "under than threshold" is different by type of metric data.

$ azmon <global options> check --metric-name "Percentage CPU" --warning-over 70 --critical-over 90
CRITICAL - <resource name> Percentage CPU is 95.885000 that over than 90.000000

azmon metric can print metric data in the Sensu plugin format.
The --metric-names option can specify one or more metric data with comma separated. When you invoke without --metric-names option, target metric data is all of the metric data contained namespace.

$ azmon <global options> metric --metric-names "Percentage CPU,Network In,Network Out,Disk Read Bytes"
azure.Microsoft.ComputevirtualMachines.<resouce group>.<resource name>.PercentageCPU.Average     5.932500        1550223420
azure.Microsoft.ComputevirtualMachines.<resouce group>.<resource name>.NetworkIn.Average         37235.038462    1550223420
azure.Microsoft.ComputevirtualMachines.<resouce group>.<resource name>.NetworkOut.Average        5743.250000     1550223420
azure.Microsoft.ComputevirtualMachines.<resouce group>.<resource name>.DiskReadBytes.Average     0.000000        1550223420

Global options

  • --subscriptionID
    • Set the subscription id
  • --resource-group
    • Set the resource group name
  • --namespace
    • Set the metric namespace
  • --resource
    • Set the target resource name
  • --aggregation
    • Set the aggregation type. Choose from "Total", "Average", "Maximum", "Minimum" ("Count" is not supported)"
  • --auth-file
    • Set the azure auth file path (default "/etc/nagios/azure.auth")
    • See also Authentication

Subcommands

check

check sub-command fetches metric data and check it as Nagios plugin.

Options

  • --metric-name
    • Set the name of the metric
  • --warning-over
    • Set the warning threshold. Occur warning level alert when metric data over than threshold
  • --warning-under
    • Set the warning threshold. Occur warning level alert when metric data under than threshold
  • --critical-over
    • Set the critical threshold. Occur critical level alert when metric data over than threshold
  • --critical-under
    • Set the critical threshold. Occur critical level alert when metric data under than threshold

metric

metric sub-command fetches metric data and print it in the Sensu plugin format.

Options

  • --metric-names
    • Set the names of the metric
    • When omitting this option, print metric data contains in metric namespace specified by the global option
      • However except metrics that required dimension
  • --prefix
    • Set the metric key prefix (default "azure")

Authentication

Azmon fetches metric data from Azure API, that required authentication with Azure API.

azure-sdk-for-go used in azmon provides several authentication methods.
Currently, azmon supports file-based authentication only.
https://docs.microsoft.com/en-us/go/azure/azure-sdk-go-authorization#use-file-based-authentication

To generate an authentication file, you can run the following command.

az ad sp create-for-rbac --sdk-auth > azure.auth

In the default, azmon reads /etc/nagios/azure.auth as authentication file. You can change the authentication file path by --auth-file option.

License

Apache License 2.0

You can’t perform that action at this time.