Monitoring Windows Server using OTel & Prometheus
This tutorial demonstrates how to monitor Windows Server - including IIS and MSSQL - for logs, metrics, and traces using OpenTelemetry Collector and Prometheus Windows Exporter.
Prerequisites
-
admin user in Windows with the ability to install services
-
tar.gz
files unpacked
Configuration
Windows Exporter
STEP 1. Download the latest MSI from GitHub (0.22.0.msi as of 30 April '23).
STEP 2. Open the command line and navigate to C:\Users\Administrator\Downloads
or the MSI folder.
STEP 3. Select which exporter collectors you require - including MSSQL and IIS - from this verbose list: cpu,cs,logical_disk,net,os,service,system,textfile,iis,mssql
.
STEP 4. Open Command Prompt.
STEP 5. Run the following command to install the MSI with the collectors chosen:
OpenTelemetry Collector
STEP 1. Download the latest tar.gz from GitHub (0.76.1.tar.gz as of 30 April '23).
STEP 2. Unpack the content into a C:\\cx-otel
. This may require you to install a program to unpack tar.gz files.
STEP 3. Create a config.yaml
based on the following configuration.
receivers:
filelog:
include: [ C:\inetpub\logs\LogFiles\*.* ]
prometheus:
config:
scrape_configs:
- job_name: 'windows_exporter'
scrape_interval: 15s
static_configs:
- targets: ['0.0.0.0:9182']
processors:
resourcedetection:
detectors: [system]
system:
hostname_sources: ["os"]
batch:
exporters:
coralogix:
metrics:
endpoint: "ingress.<span class="domain-value"></span>:443"
logs:
endpoint: "ingress.<span class="domain-value"></span>:443"
private_key: "coralogix-api-key"
application_name: "WinServer"
subsystem_name: "Host"
service:
pipelines:
metrics:
receivers: [prometheus]
processors: [resourcedetection, batch]
exporters: [coralogix]
logs:
receivers: [filelog]
processors: [resourcedetection, batch]
exporters: [coralogix]
Notes:
-
The example configuration captures metrics from windows_exporter and logs from IIS. Modify as necessary.
-
You are required to input the following variables:
-
endpoint
: Select the OpenTelemetry endpoint associated with your Coralogix domain -
private_key
: Your Coralogix Send-Your-Data API key -
application_name
&subsystem_name
: Application and subsystem names as they will appear in your Coralogix UI
-
STEP 4. Install the collector as a service by running the following command:
sc.exe create cx-otelcol displayname=cx-otelcol start=delayed-auto binPath="C:\cx-otel\otelcol-contrib.exe --config C:\cx-otel\config.yaml"
STEP 5. Run the service.
Additional Configurations
Configure Windows exporter dashboards and the OpenTelemetry Kubernetes Extension to monitor the collector itself.
Validation & Testing
STEP 1. Open Services and check that both windows_exporter
and cx-otelcol
service are running.
STEP 2. To validate which metrics exist in windows_exporter
, navigate to http://localhost:9182/metrics.
Notes:
-
windows_exporter.exe
is unsafe and may require a specific "unblock" in its settings. -
Both
windows_exporter
andotelcol
can be run without services to check for logs in the command prompt.
STEP 3. Navigate to Grafana Explore to confirm that windows_*
metrics are arriving in your Coralogix dashboard.
Additional Links
Support
Need help?
Our world-class customer success team is available 24/7 to walk you through your setup and answer any questions that may come up.
Feel free to reach out to us via our in-app chat or by sending us an email at [email protected].