Overview
Nginx is a web server that can also be used as a reverse proxy, load balancer, mail proxy and HTTP cache. Deploy this integration to ship Nginx metrics.
Telegraf is a plug-in driven server agent for collecting and sending metrics and events from databases, systems and IoT sensors.
To send your Prometheus-format Nginx metrics to Layerlog, you need to add the inputs.nginx and outputs.http plug-ins to your Telegraf configuration file.
Configuring Telegraf to send your metrics data to Layerlog
Configure Nginx server
-
Enable
stub_statusmodule in the NGINX configuration file - nginx.conf:server { listen 80; server_name localhost; location / { stub_status; allow `<<YOUR-LOCALHOST-ADDRESS>>`; deny all; } } - Replace
<<YOUR-LOCALHOST-ADDRESS>>with your localhost address. - Restart Nginx.
Set up Telegraf v1.17 or higher
For Windows:
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.19.2_windows_amd64.zip
After downloading the archive, extract its contents into C:\Program Files\Logzio\telegraf\.
The configuration file is located at C:\Program Files\Logzio\telegraf\.
For MacOS:
brew install telegraf
The configuration file is located at /usr/local/etc/telegraf.conf.
For Linux:
Ubuntu & Debian
sudo apt-get update && sudo apt-get install telegraf
The configuration file is located at /etc/telegraf/telegraf.conf.
RedHat and CentOS
sudo yum install telegraf
The configuration file is located at /etc/telegraf/telegraf.conf.
SLES & openSUSE
# add go repository
zypper ar -f obs://devel:languages:go/ go
# install latest telegraf
zypper in telegraf
The configuration file is located at /etc/telegraf/telegraf.conf.
FreeBSD/PC-BSD
sudo pkg install telegraf
The configuration file is located at /etc/telegraf/telegraf.conf.
Add the inputs.nginx plug-in
First you need to configure the input plug-in to enable Telegraf to scrape the Nginx data from your hosts. To do this, add the following code to the configuration file:
[[inputs.nginx]]
## An array of Nginx stub_status URI to gather stats.
urls = ["http://localhost/server_status"]
## Optional TLS Config
# tls_ca = "/etc/telegraf/ca.pem"
# tls_cert = "/etc/telegraf/cert.pem"
# tls_key = "/etc/telegraf/key.pem"
## Use TLS but skip chain & host verification
# insecure_skip_verify = false
## HTTP response timeout (default: 5s)
response_timeout = "5s"
[[inputs.disk]]
[[inputs.net]]
[[inputs.mem]]
[[inputs.system]]
[[inputs.cpu]]
## Whether to report per-cpu stats or not
percpu = false
## Whether to report total system cpu stats or not
totalcpu = true
## If true, collect raw CPU time metrics.
collect_cpu_time = true
## If true, compute and report the sum of all non-idle CPU states.
report_active = true
Add the outputs.http plug-in
After you create the configuration file, configure the output plug-in to enable Telegraf to send your data to Layerlog in Prometheus-format. To do this, add the following code to the configuration file:
[[outputs.http]]
url = "https://<<LISTENER-HOST>>:8053"
data_format = "prometheusremotewrite"
[outputs.http.headers]
Content-Type = "application/x-protobuf"
Content-Encoding = "snappy"
X-Prometheus-Remote-Write-Version = "0.1.0"
Authorization = "Bearer <<PROMETHEUS-METRICS-SHIPPING-TOKEN>>"
Replace the placeholders to match your specifics. (They are indicated by the double angle brackets << >>):
- Replace
<<PROMETHEUS-METRICS-SHIPPING-TOKEN>>with a token for the Metrics account you want to ship to.
Here’s how to look up your Metrics token. - Replace
<<LISTENER-HOST>>with the Layerlog Listener URL for your region, configured to use port 8052 for http traffic, or port 8053 for https traffic. For example,listener.layerlog.comif your account is hosted on AWS US East, orlistener-nl.layerlog.comif hosted on Azure West Europe.
Check Layerlog for your metrics
Log in to your Layerlog account and navigate to the current instructions page inside the Layerlog app. Install the pre-built dashboards to enhance the observability of your metrics.
To view the metrics on the main dashboard, log in to your Layerlog Metrics account, and open the Layerlog Metrics tab.