在使用链路追踪控制台追踪Nginx的链路数据之前,需要将链路数据上报至链路追踪服务台。本文介绍如何通过SkyWalking Nginx LUA module上报Nginx的链路追踪数据。
前提条件
获取接入点信息
- 登录ARMS控制台,在左侧导航栏选择。
- 在应用列表页面顶部选择目标地域,然后单击目标链路追踪应用名称。
说明 语言列显示

图标的应用为接入应用监控的应用,显示
-图标的应用为接入链路追踪的应用。
- 在弹出的页面中,单击左侧导航栏上方的
图标,返回上一层。
- 在左侧导航栏单击集群配置,然后在右侧页面单击接入点信息页签。
- 在页面顶部选择需要接入的地域,然后在集群信息区域打开显示Token开关。
- 在客户端采集工具区域单击SkyWalking。
在下方表格的相关信息列中,获取接入点信息。

说明 如果应用部署于阿里云生产环境,则选择私网接入点,否则选择公网接入点。
背景信息
SkyWalking是一款广受欢迎的国产应用性能监控APM(Application Performance Monitoring)产品,主要针对微服务、Cloud
Native和容器化(Docker、Kubernetes、Mesos)架构的应用。SkyWalking的核心是一个分布式追踪系统。
要通过SkyWalking将Java应用数据上报至链路追踪控制台,首先需要完成埋点工作。SkyWalking既支持自动埋点(Dubbo、gRPC、JDBC、OkHttp、Spring、Tomcat、Struts、Jedis等),也支持手动埋点(OpenTracing)。本文介绍自动埋点方法。
通过Docker镜像快速配置skywalking-nginx-lua
使用打包好的Docker配置skywalking-nginx-lua。
- 从Registry中拉取镜像。
docker pull registry.cn-hangzhou.aliyuncs.com/public-community/skywalking-nginx-lua:0.2
- 运行Nignx Docker。
docker run --rm -p 80:80 -e "BACKEND_URL=$skywalking-nginx-lua" -d registry.cn-hangzhou.aliyuncs.com/public-community/skywalking-nginx-lua:0.2
$skywalking-nginx-lua
是前提条件中保存的nginx-lua接入点信息。
例如:
docker run --rm -p 80:80 -e "BACKEND_URL=http://tracing-analysis-dc-hz.aliyuncs.com/adapt_123@abc_456@efg" -d registry.cn-hangzhou.aliyuncs.com/public-community/skywalking-nginx-lua:0.2
- 访问Nginx页面。
- 在浏览器上访问
localhost/nginx.conf
。
- 执行命令
curl "localhost/nginx.conf"
。
通过Dockerfile配置skywalking-nginx-lua
- 下载Dockerfile。
wget https://arms-apm.oss-cn-hangzhou.aliyuncs.com/demo/nginx-skywalking-docker.tgz
tar -xzvf nginx-skywalking-docker.tgz
cd nginx-lua
- 编译Docker。
docker build --rm --tag skywalking-nginx-lua:0.2 .
- 运行Docker。
docker run --rm -p 80:80 -e "BACKEND_URL=$skywalking-nginx-lua" -d skywalking-nginx-lua:0.2
$skywalking-nginx-lua
是前提条件中保存的nginx-lua接入点信息。
例如:
docker run --rm -p 80:80 -e "BACKEND_URL=http://tracing-analysis-dc-hz.aliyuncs.com/adapt_123@abc_456@efg" -d skywalking-nginx-lua:0.2
- 访问Nginx页面。
- 在浏览器上访问
localhost/nginx.conf
。
- 执行命令
curl "localhost/nginx.conf"
。
在ECS上配置skywalking-nginx-lua
此处以在CentOS 7.0上的操作为例。
- 配置Lua运行环境。
- 安装工具库。
yum install gcc gcc-c++ kernel-devel -y
yum install readline-devel -y
yum install ncurses-devel -y
- 下载并安装Lua 5.3.5。
cd /usr/local/src
wget http://www.lua.org/ftp/lua-5.3.5.tar.gz
tar -zxvf lua-5.3.5.tar.gz
cd /usr/local/src/lua-5.3.5 && echo "INSTALL_TOP= /usr/local/lua_5.3.5" >> Makefile && make linux && make install
- 下载并安装LuaRocks 2.2.2。
cd /usr/local/src
wget http://keplerproject.github.io/luarocks/releases/luarocks-2.2.2.tar.gz
tar -xzvf luarocks-2.2.2.tar.gz
cd luarocks-2.2.2
./configure --prefix=/usr/local/luarocks_2.2.2 --with-lua=/usr/local/lua_5.3.5
make build
make install
- 在/etc/profile文件中添加以下内容。
export LUA_HOME=/usr/local/lua_5.3.5
export LUALOCKS_HOME=/usr/local/luarocks_2.2.2
PATH=$PATH:$HOME/bin:$LUALOCKS_HOME/bin:$LUA_HOME/bin
export PATH
export LUA_PATH="$LUALOCKS_HOME/share/lua/5.3/?.lua;?.lua;;"
export LUA_CPATH="$LUALOCKS_HOME/lib/lua/5.3/?.so;?.so;;"
- 刷新/etc/profile配置文件。
- 安装Lua组件。
luarocks install luasocket
luarocks install lua-resty-jit-uuid
luarocks install luaunit
luarocks install lua-cjson 2.1.0-1
- 确认Lua组件是否安装成功。
- 下载并安装OpenResty Nginx。
yum install pcre-devel openssl-devel gcc curl postgresql-devel
cd /usr/local/src
wget -c https://openresty.org/download/openresty-1.15.8.1rc2.tar.gz
tar -zxvf openresty-1.15.8.1rc2.tar.gz
cd openresty-1.15.8.1rc2
./configure --prefix=/usr/local/openresty/ --with-http_stub_status_module --with-luajit --without-http_redis2_module --with-http_iconv_module --with-http_postgres_module --with-stream && gmake && gmake install
export PATH=/usr/local/openresty/nginx/sbin:$PATH
- 下载并安装skywalking-nginx-lua。
- 下载并解压skywalking-nginx-lua安装包。
cd /usr/local/skywalking-nginx-lua
wget https://mirrors.tuna.tsinghua.edu.cn/apache/skywalking/nginx-lua/0.5.0/skywalking-nginx-lua-0.5.0-src.tgz
tar -xzvf skywalking-nginx-lua-0.5.0-src.tgz
- 修改nginx.conf文件中的lua_package_path和startBackendTimer。
例如:
- lua_package_path改为
/usr/local/skywalking-nginx-lua/lib/?.lua;;"
。
- startBackendTimer改为
require("skywalking.client"):startBackendTimer("http://tracing-analysis-dc-hz.aliyuncs.com/adapt_***")
。
- 启动skywalking-nginx-lua。
nginx -c /usr/local/skywalking-nginx-lua/examples/nginx.conf
查看结果
登录
ARMS控制台后,在页面选择目标应用,查看链路数据。
说明 语言列显示

图标的应用为接入应用监控的应用,显示
-图标的应用为接入链路追踪的应用。