GitXplorerGitXplorer
a

zbx_nginx_template

public
126 stars
93 forks
13 issues

Commits

List of commits on branch master.
Verified
e3484c88ee0cd9fb5ffa6765b8c3e0cf55c1e4f2

Merge pull request #17 from bryant1410/master

aadubkov committed 7 years ago
Verified
ee2bfb82b0de069a54fd3a9b51d3237baa2263c0

Merge pull request #13 from EnyMan/master

aadubkov committed 7 years ago
Verified
3095dea54ec8a382948e429ea1e905a02b84bc9e

Merge pull request #12 from AndreMarthaler/master

aadubkov committed 7 years ago
Unverified
346c483c90c05aada98fb1384d3ebea3d8314d52

Fix broken Markdown headings

bbryant1410 committed 8 years ago
Unverified
b54f90fd35bf8a15ad6bfbf7fb0b41ad7c1122e6

Merge pull request #1 from EnyMan/EnyMan-patch-1

EEnyMan committed 8 years ago
Unverified
5508fbf593b731226c54509092d54d319c258c0b

regex fix for sec when similar patern apear in URL

EEnyMan committed 8 years ago

README

The README file for this repository.

zbx_nginx_template

Zabbix template for Nginx (python)

It's accumulate nginx stats and parse the access.log (just pice of log at once) and push result in Zabbix through trap-messages

System requirements

  • python
  • nginx with configured http_stub_status_module and access.log

What's logging:

  • Request\sec
  • Response codes (200,301,302,403,404,500,503)\min
  • Active\Keepalive connections
  • Header and body reading
  • Accepted, handled connections

Install

  1. Put zbx_nginx_stats.py into your scripts path (like: /etc/zabbix/script/nginx/) on your Zabbix agent hosts.

  2. Change next section in zbx_nginx_stats.py, to your configuration:

zabbix_host = '127.0.0.1'   # Zabbix server IP
zabbix_port = 10051         # Zabbix server port
hostname = 'Zabbix Agent'   # Name of monitored host, like it shows in zabbix web ui
time_delta = 1              # grep interval in minutes

# URL to nginx stat (http_stub_status_module)
stat_url = 'https://nginx.server/nginx_stat'

# Nginx log file path
nginx_log_file_path = '/var/log/nginx/access.log'

# Optional Basic Auth
username = 'user'
password = 'pass'

# Temp file, with log file cursor position
seek_file = '/tmp/nginx_log_stat'
  1. In script path (/etc/zabbix/script/nginx/) do:
chmod +x zbx_nginx_stats.py
  1. Configure cron to run script every one minute:
$ sudo crontab -e

*/1 * * * * /etc/zabbix/script/nginx/zbx_nginx_stats.py
  1. Import zbx_nginx_template.xml into zabbix in Tepmplate section web gui.

  2. Add the following configurations to you Nginx configuration file.

location /nginx_stat {
  stub_status on;       # Turn on nginx stats
  access_log   off;     # We do not need logs for stats
  allow 127.0.0.1;      # Security: Only allow access from IP
  allow ::1;            # Security IPv6: allow only from localhost
  deny all;             # Deny requests from the other of the world
}

That is all :)