Through the Nginx http_stub_status_module module provides the status information to monitor, so in the agent side need to configure the Nginx state to obtain the script, and add key information, and then configure the server side of the Nginx monitoring template. Please adjust according to your own situation, here is only a simple reference.
The main use of GitHub is the code for this project Zabbix-templates
Agent side
System is centos6.x, Zabbix-agent is version 3.0, nginx1.9.x official version
First to check if Nginx installed the http_stub_status_module
module, the following command can see the compilation parameters.
-V
If you do not have this module, you will need to recompile the nginx.
Configure Nginx
The server configuration of Nginx 80 port adds the following fragment
location /nginx_status { stub_statuson; access_logoff; allow127.0.0.1; deny all; }
After the configuration is complete, redload nginx, then use the simple test
>> curl http://127.0.0.1/nginx_status7server2707270712528016?
Zabbix-agent Configuration
There are 3 steps, the first is to write a script to get nginx information, then add the key information in the configuration, and then restart the agent service.
- Write Nginx monitoring script, remember the path, the later configuration needs to use.
!! Note The script permissions issue, the agent runs the user to be able to execute.
>># mkdir-p/usr/local/zabbix-agent/scripts>># cd/usr/local/zabbix-agent/scripts>># vim nginx-check.sh>># cat Nginx-check.sh#!/bin/bash################################### Zabbix Monitoring script## Nginx:#-Anything available via Nginx stub-status module#################################### Contact:# vincent.viallet@gmail.com# Zabbix requested parameterZbx_req_data="$"Zbx_req_data_url="$"# Nginx DefaultsNginx_status_default_url="Http://127.0.0.1/nginx_status"wget_bin="/usr/bin/wget"## Error Handling:#-Need to being displayable in Zabbix (avoid not_supported)#-Items need to is of type "float" (allow negative + float)#error_no_access_file=" -0.9900"error_no_access=" -0.9901"Error_wr> "-0.9902"Error_data=" -0.9903"# either can not Connect/bad Host/bad port# Handle Host and port if Non-defaultif[!-Z"$ZBX _req_data_url"]; ThenUrl="$ZBX _req_data_url"ElseUrl="$NGINX _status_default_url"fi# Save the Nginx stats in a variable for future parsingnginx_stats=$ ($WGET _bin-Q$URL-O-2>/dev/null)# Error during retrieveif[ $?-ne0-o-z"$NGINX _stats"]; ThenEcho$ERROR _dataExit1fi## Extract data from Nginx stats# Case$ZBX _req_datainchActive_connections)Echo"$NGINX _stats"| Head-1| Cut- F3- D' ';; Accepted_connections)Echo"$NGINX _stats"| Grep-ev' [a-za-z] '| Cut- F2- D' ';; Handled_connections)Echo"$NGINX _stats"| Grep-ev' [a-za-z] '| Cut- F3- D' ';; handled_requests)Echo"$NGINX _stats"| Grep-ev' [a-za-z] '| Cut- F4- D' ';; ReadingEcho"$NGINX _stats"| Tail-1| Cut- F2- D' ';; WritingEcho"$NGINX _stats"| Tail-1| Cut- F4- D' ';; Waiting)Echo"$NGINX _stats"| Tail-1| Cut- F6- D' ';; *)Echo$ERROR _wrong_param;Exit1;;EsacExit0
- The agent's configuration file
/etc/zabbix/zabbix_agentd.conf
defines the inclusion directory for other keys Include=/etc/zabbix/zabbix_agentd.d/
, and if not, add it yourself. Then /etc/zabbix/zabbix_agentd.d/
create a new file in the table nginx-params.conf
of contents as follows
"$1"
/etc/init.d/zabbix-agent restart
Web side of Server
First of all, the command line test agent is not good, confirm the use of the web-side after the template import, then you can add monitoring to the corresponding host.
>>>-s127.0.0.1-p10050-k"nginx[reading]"0
Login to the Web interface of Zabbix3.0, select > at a time, Configuration
Templates
There is a button in the upper right corner of the main interface Import
to import the template.
Template file Compare long leave a download address
After the import, you can add monitoring to the host.
'). addclass (' pre-numbering '). Hide (); $ (this). addclass (' has-numbering '). Parent (). append ($numbering); for (i = 1; i <= lines; i++) {$numbering. Append ($ ('
'). Text (i)); }; $numbering. FadeIn (1700); }); });
The above describes the [Zabbix30] add nginx monitoring, including the zabbix,nginx aspects of the content, I hope the PHP tutorial interested in a friend helpful.