实验环境:
106.12.88.74 ---> influxdb 1.7.6 Centos 7.5
106.12.88.228 ---> Grafana 6.2.2.1 Centos 7.5
119.3.92.176 ----> Nginx 1.8.1 Centos 7.5
+++++++++++++++++++++++++++++++++
nginx编译的时候,参数必须要加 --with-http_stub_status_module
修改nginx 配置文件,添加如下内容。(在nginx 服务器上操作)
location /status {
allow 127.0.0.1;
deny all;
stub_status on;
access_log off;
}
重启Nginx
测试能否获取状态:(在influxdb[ 106.12.88.74 ]服务器上操作)
连接总数、握手总数、请求总数
监控nginx 的python脚本:
vim /data/influxdb/nginx_status.py #在 119.3.92.176 上,编写python 脚本。
from influxdb import InfluxDBClient
import urllib2
response=urllib2.urlopen('http://119.3.92.176/status')
result = response.read()
list_result = result.split('\n')
nginx_result = list_result[2].split()
client = InfluxDBClient('127.0.0.1', 8086, 'xc', 'w…123', 'shijiange')
data_list = [{'measurement': 'nginx_status', 'tags': {'item': 'nginx.accepts'}, 'fields': {'value': int(nginx_result[0]) }}]
client.write_points(data_list)
data_list = [{'measurement': 'nginx_status', 'tags': {'item': 'nginx.handled'}, 'fields': {'value': int(nginx_result[1]) }}]
client.write_points(data_list)
data_list = [{'measurement': 'nginx_status', 'tags': {'item': 'nginx.requests'}, 'fields': {'value': int(nginx_result[2]) }}]
client.write_points(data_list)
保存退出。执行脚本,登录influxdb ( 106.12.88.74 ) 查看数据:
119.3.92.176上面,添加到linux的crontab任务,然后图表展示观察。
vim /etc/crontab
登录Grafana ( 106.12.88.228 )添加新的面板,再添加图形。
使用脚本观察nginx的连接数 (在influxdb[ 106.12.88.74 ]服务器上操作)
while true;do curl -s 119.3.92.176;echo; sleep 1; done
查看nginx 监控图:
yum install nc -y
while true;do nc -v -z -w 1 119.3.92.176 80; sleep 1; done #只探测80端口,不发送请求,执行一分钟左右。
