一、目的:
-
Tnginx实现基于uri的健康状态检查,当uri对应的服务器故障时,自动剔除此IP,恢复时自动加入集群。
-
Zabbix实现自动发现Tengin集群结点,自动加入监控列表,当服务器故障时,自动发送告警信息。Tengine官网:http://tengine.taobao.org
二、Tengine编译参数
--prefix=/data/program/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/cache/nginx/client_temp \
--http-proxy-temp-path=/var/cache/nginx/proxy_temp\
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp\
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
--user=nginx --group=nginx --with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-mail \
--with-mail_ssl_module \
--with-file-aio --with-ipv6
三、配置nginx.conf,开启健康状态检查
location /healt {
allow all;
check_status json;
access_log off;
}
四、由于zabbix自动发现的规则不是以上格式,需要进行修改
curl -s http://dev-sz.valueonline.cn/healt | sed '1,3c\{' | sed 's@}}@}@g' | sed 's/server/data/g' | sed 's@name@{#NAME}@g' | sed 's@upstream@{#UPSTREAM}@g'
五、编写zabbix配置文件,重新zabbix-agent服务(之后使用zabbix-get测试是否能获取值)
六、在zabbix web端编写自动发现规则