zabbix3.2利用自动发现功能对fastcgi模式的php状态进行集中监控
zabbix3.2利用自动发现功能对fastcgi模式的php状态进行集中监控
前端nginx虚拟主机引用后端多个php接口,为了方便监控,将后端服务器集中配置在nginx中,具体配置如下:
- [root@eus_nginx:]# cat /usr/local/nginx/config/nginx.conf
- user apache users;
- worker_processes ;
- worker_cpu_affinity ;
- error_log /data/www/logs/nginx_log/error/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
- pid logs/nginx.pid;
- events {
- use epoll;
- worker_connections ;
- }
- http {
- include mime.types;
- default_type application/octet-stream;
- log_format main '$remote_addr - - [$time_local] - - "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_time ';
- log_format error '$remote_addr - - [$time_local] - - "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_time ';
- log_format test '[$fastcgi_script_name] [$time_local] $document_root $remote_addr $status $request_time $body_bytes_sent "$request" "$http_referer" $upstream_addr $http_x_real_ip $http_x_forwarded_for $http_user_agent ';
- log_format timed_combined '$remote_addr - $remote_user [$time_local] '
- '"$request" $status $body_bytes_sent '
- '"$http_referer" "$http_x_real_ip" "$http_x_forwarded_for" "$http_user_agent" '
- '$request_time $upstream_response_time $pipe';
- #access_log /data/www/logs/nginx_log/access/access.log main;
- access_log off;
- sendfile on;
- #tcp_nopush on;
- tcp_nodelay on;
- keepalive_timeout ;
- #----for upload file
- client_max_body_size 8M;
- client_body_buffer_size 2M;
- #--- for resolve error
- client_header_buffer_size 64k;
- large_client_header_buffers 64k;
- proxy_connect_timeout 60s;
- proxy_read_timeout 60s;
- #60s内后端服务器需要返回成功
- proxy_send_timeout 60s;
- proxy_buffer_size 16k;
- proxy_buffers 32k;
- proxy_busy_buffers_size 64k;
- proxy_temp_file_write_size 64k;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $http_x_forwarded_for;
- gzip on;
- gzip_vary off;
- gzip_min_length 1k;
- gzip_buffers 16k;
- gzip_http_version 1.0;
- gzip_comp_level ;
- gzip_disable "MSIE [1-6]\.";
- gzip_types text/plain text/css text/javascript application/javascript application/x-javascript text/xml application/xml;
- fastcgi_intercept_errors on;
- ssi on;
- ssi_silent_errors on;
- #expires 30d;
- server_names_hash_bucket_size ;
- # -------------- firewall ----------
- include blackip.conf;
- geo $whiteiplist {
- default ;
- include whiteip.conf;
- }
- map $whiteiplist $limit {
- $binary_remote_addr;
- "";
- }
- limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
- limit_req_zone $server_name zone=perserver:1024m rate=1000r/s;
- limit_req_log_level notice ;
- server {
- listen ;
- server_name localhost;
- location / {
- root /data/www/html;
- index index.html index.htm;
- }
- location /nginx_status {
- stub_status on;
- access_log off;
- allow 127.0.0.1;
- deny all;
- }
- # 集中后端php的状态
- location ~ ^/(back02_status|back02_ping)$
- {
- include fastcgi_params;
- fastcgi_pass 172.20.103.198:;
- fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
- }
- location ~ ^/(back03_status|back03_ping)$
- {
- include fastcgi_params;
- fastcgi_pass 172.20.103.196:;
- fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
- }
- location ~ ^/(back04_status|back04_ping)$
- {
- include fastcgi_params;
- fastcgi_pass 172.20.103.194:;
- fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
- }
- location ~ ^/(back05_status|back05_ping)$
- {
- include fastcgi_params;
- fastcgi_pass 172.20.103.195:;
- fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
- }
- location ~ ^/(back06_status|back06_ping)$
- {
- include fastcgi_params;
- fastcgi_pass 172.20.103.192:;
- fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
- }
- location ~ ^/(back07_status|back07_ping)$
- {
- include fastcgi_params;
- fastcgi_pass 172.20.103.193:;
- fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
- }
- #error_page /.html;
- error_page /50x.html;
- location = /50x.html {
- root html;
- }
- }
- include vhost.d/*;
- }
1.编写自动发现脚本
- [root@eus_nginx:/usr/local/zabbix_agents_3.2.0/scripts]# cat back_php_status.sh
- #!/bin/bash
- # function:monitor php connect status from zabbix
- web_ip_discovery () {
- WEB_IP=($(cat /usr/local/zabbix_agents_3.2.0/scripts/php_backs.txt|grep -v "^#"))
- printf '{\n'
- printf '\t"data":[\n'
- for((i=;i<${#WEB_IP[@]};++i))
- {
- num=$(echo $((${#WEB_IP[@]}-)))
- if [ "$i" != ${num} ];
- then
- printf "\t\t{ \n"
- printf "\t\t\t\"{#SITENAME}\":\"${WEB_IP[$i]}\"},\n"
- else
- printf "\t\t{ \n"
- printf "\t\t\t\"{#SITENAME}\":\"${WEB_IP[$num]}\"}]}\n"
- fi
- }
- }
- web_site_code () {
- ip=`echo $|awk -F ':' '{print $1}'`
- #echo $ip
- curl -s -k --connect-timeout -m -o /dev/null -w %{http_code} "http://${ip}"
- }
- case "$1" in
- web_ip_discovery)
- web_ip_discovery
- ;;
- web_site_code)
- web_site_code $
- ;;
- *)
- echo "Usage:$0 {web_ip_discovery|web_site_code [URL]}"
- ;;
- esac
2.需要监控的php连接
[root@eus_nginx:/usr/local/zabbix_agents_3.2.0/scripts]# cat php_backs.txt
127.0.0.1/back02_status:eus_chinasoft_back02
127.0.0.1/back03_status:eus_chinasoft_back03
127.0.0.1/back04_status:eus_chinasoft_back04
127.0.0.1/back05_status:eus_chinasoft_back05
127.0.0.1/back06_status:eus_chinasoft_back06
127.0.0.1/back07_status:eus_chinasoft_back07
172.20.73.207/back09_status:eus_chinasoft_back09
172.20.73.207/back10_status:eus_chinasoft_back10
172.20.73.207/back11_status:eus_chinasoft_back11
172.20.73.207/back12_status:eus_chinasoft_back12
172.20.73.207/back13_status:eus_chinasoft_back13
172.20.73.207/back14_status:eus_chinasoft_back14
3.编写配置文件
# vim /usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd/php_status_ip_discovery.conf
UserParameter=web.ip.discovery,/usr/local/zabbix_agents_3.2.0/scripts/back_php_status.sh web_ip_discovery
UserParameter=web.ip.code[*],/usr/local/zabbix_agents_3.2.0/scripts/back_php_status.sh web_site_code $1
4.zabbix服务端验证
[root@aliyun-american-guigu-zabbix:~]# zabbix_get -s 1.1.1.1 -k 'web.ip.discovery'
{
"data":[
{
"{#SITENAME}":"127.0.0.1/back02_status:eus_chinasoft_back02"},
{
"{#SITENAME}":"127.0.0.1/back03_status:eus_chinasoft_back03"},
{
"{#SITENAME}":"127.0.0.1/back04_status:eus_chinasoft_back04"},
{
"{#SITENAME}":"127.0.0.1/back05_status:eus_chinasoft_back05"},
{
"{#SITENAME}":"127.0.0.1/back06_status:eus_chinasoft_back06"},
{
"{#SITENAME}":"127.0.0.1/back07_status:eus_chinasoft_back07"},
{
"{#SITENAME}":"172.20.73.207/back09_status:eus_chinasoft_back09"},
{
"{#SITENAME}":"172.20.73.207/back10_status:eus_chinasoft_back10"},
{
"{#SITENAME}":"172.20.73.207/back11_status:eus_chinasoft_back11"},
{
"{#SITENAME}":"172.20.73.207/back12_status:eus_chinasoft_back12"},
{
"{#SITENAME}":"172.20.73.207/back13_status:eus_chinasoft_back13"},
{
"{#SITENAME}":"172.20.73.207/back14_status:eus_chinasoft_back14"}]}
[root@aliyun-american-guigu-zabbix:~]# zabbix_get -s 1.1.1.1 -k 'web.ip.code[172.20.73.207/back14_status:eus_chinasoft_back14]'
200
服务端web的配置:
{monitor_back_php_status:web.ip.code[{#SITENAME},].max(#5)}<>200
zabbix3.2利用自动发现功能对fastcgi模式的php状态进行集中监控的更多相关文章
- 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控
zabbix并没有给我们提供这么一个模板来完成在Linux中磁盘IO的监控,所以我们需要自己来创建一个,在此还是在Linux OS中添加. 由于一台服务器中磁盘众多,如果只一两台可以手动添加,但服务 ...
- zabbix自动发现功能实现批量web url监控
需求: 现在有大量url需要监控,形式如http://www.baidu.com ,要求url状态不为200即报警. 需求详细分析: 大量的url,且url经常变化,现在监控用的是zabbix,如果手 ...
- zabbix使用自动发现功能批量监控服务器端口的可用性
使用自动发现脚本批量监控服务器端口的可用性 .编写自动发现脚本 # cat /usr/local/zabbix_agents_3.2.0/scripts/web_site_code_status.sh ...
- zabbix实现自动发现功能添加磁盘监控
zabbix实现对磁盘动态监控 - Lenwood 原文 http://www.cnblogs.com/baizhantang/p/3253246.html 主题 Linux命令 zabbix 前言 ...
- zabbix3.x自动发现主机
在服务器比较多的情况下,配置加入群组,添加模板是非常费时费力的,所以利用自动发现主机.自动添加群组和模板是非常好的办法. 两步走 1.配置发现规则 2.配置发现动作 1.前提在服务器是上部署了agen ...
- zabbix3.4.8配置自动发现主机并监控
一. 自动发现功能简介 Zabbix服务器端通过网络或者主机名等方式进行客户端的扫描发现,从进行加入到监控的主机队列中,适用于批量加入多主机监控的场景. 二. 自动发现功能实施 ...
- Zabbix的自定义键值和自动发现功能监控Oracle数据库的表空间
前面介绍了利用Orabbix监控了,参考zabbix通过Orabbix监控oracle数据库,这里我们原先的模板中进行了修改,使用自动发现功能实现监控tablespace的使用情况. 1. 在被监控的 ...
- Zabbix自动发现并监控磁盘IO、报警
本文转载自: https://www.93bok.com 引言 Zabbix并没有提供模板来监控磁盘的IO性能,所以我们需要自己来创建一个,由于一台服务器中磁盘众多,如果只有一两台可以手动添加,但服务 ...
- zabbix_server的自动发现,实现批量添加主机,并链接到模板
一.需求 zabbix 服务器可以手动加入zabbix-agent客户端,对于少量的机器,这没有什么.但到了线上,我们有大量的服务器需要监控时,如果再一个个的手动加的话,工作量势必会增加很多.这时,z ...
随机推荐
- MVC和MVVM
MVC和MVVM的qu'bie 1. Mvvm定义MVVM是Model-View-ViewModel的简写.即模型-视图-视图模型.[模型]指的是后端传递的数据.[视图]指的是所看到的页面.[视图模型 ...
- ##Django中Application labels aren't unique解决方法##
pip更新了所有插件,发现了按平常编码遇到些问题,记录下. Django错误 django.core.exceptions.ImproperlyConfigured: Application labe ...
- dva
import React, { PureComponent } from "react"; import { Chart, Geom, Axis, Tooltip, Coord, ...
- array数组(n,1)和(n,)互相转换
data.shape #(172,1) result = [arr[0] for arr in data] result.shape #(172,) (172,1)表示是一个(172,1)shape大 ...
- 偶写的第一个控件,一个用选择代替输入的Edit控件…
FDataSource :=TDataSource.Create(self); FDBGrid.FreeNotification(self); FADOQuery.FreeNotification(s ...
- CMakeList.txt设置OpenCv路径
源文件imageBasics.cpp #include <iostream> #include <chrono> using namespace std; #include & ...
- mysql left join 优化
参考 https://www.cnblogs.com/zedosu/p/6555981.html
- Python 防止mysql 注入的两种方式
Python防止sql注入一般有两种方法 1.escape_string MySQLdb.escape_string(param) 注意:如果报错出现 'ascii' codec can't en ...
- vue(初探预渲染)
---恢复内容开始--- 一.前言 1.简介预渲染 2.案例演示(不配置预渲染) 3.配置预渲染, 二.主要内容 1.简 ...
- I/O模型系列之三:IO通信模型BIO NIO AIO
一.传统的BIO 网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请 ...