最佳实践:监控 Nginx 进程存活状态

  • 2019 年 12 月 20 日
  • 筆記

如何监控部署在云服务器上的服务进程状态?

推荐您使用 云监控-自定义监控 !

目前内测阶段免费使用,无需审核,开通服务即用。诚邀您点击 申请页面 参与内测体验!


上报监控指标

步骤1:准备上报环境

安装 TCCLI 工具:

	pip install tccli

配置 TCCLI 工具:

  • secretId:云 API 密钥 SecretId
  • secretIKey:云 API 密钥 SecretKey
  • region: 云产品地域,可通过 curl http://metadata.tencentyun.com/latest/meta-data/placement/region 获取云服务器所在地域
  • output: 可选参数,请求回包输出格式,支持 json table text 三种格式,默认为 json
	tccli configure set secretId AKIDwLw1234MMfPRle2g9nR2OTI787aBCDP // 您的secretId    	tccli configure set secretKey OxXj7khcV1234dQSSYNABcdCc1LiArFd // 您的secretKey    	tccli configure set region $(curl http://metadata.tencentyun.com/latest/meta-data/placement/region 2>/dev/null)    	tccli configure set output json

更多 TCCLI 安装和配置使用相关文档请参阅 文档中心

步骤2:采集处于 Nginx 进程数量

	ps aux | grep nginx | grep -v grep | wc -l

步骤3:编写 Shell 脚本

	#!/bin/bash      	# 获取云服务器内网IP    	myip=$(curl http://metadata.tencentyun.com/latest/meta-data/local-ipv4 2>>/dev/null)      	while true    	do      	nginx_pro_cnt=$(ps aux | grep nginx | grep -v grep | wc -l)    	metrics=$(cat <<EOF    	[    	  {    	    "MetricName": "nginx_pro_cnt",    	    "Value": $nginx_pro_cnt    	  }    	]    	EOF    	)      	tccli monitor PutMonitorData --Metrics "$metrics" --AnnounceIp "$myip" --AnnounceTimestamp $(date +%s)      	sleep 60    	done

步骤4:执行 Shell 脚本,完成数据持续上报

将步骤3中的示例保存为 tcp_curr_timewait.sh 后,在当前目录下执行以下命令,即可通过 Shell 脚本在后台进行目标指标的持续上报。

	chmod +x nginx_pro_cnt.sh    	nohup ./nginx_pro_cnt.sh &

查看上报指标

完成监控指标上报后,可以在 云监控-自定义监控 控制台 查看 指标视图

配置告警策略

步骤1:确认用户消息通道已验证,可在 CAM 鉴权 页面查看验证情况

image.png

步骤2:进入自定义监控 指标视图 页面,在指标视图右上角【配置告警】

image.png

更多告警策略配置操作请参阅 文档中心