net核心

支持技术

确认tCell代理支持你的.NET Core配置,如下所示:

版本 应用程序服务器 Web框架 操作系统 体系结构 验证框架
2.倍
3.倍
5.0
6.0
Kestral
IIS
Windows Server 2012 R2及以上版本
* Windows Nanoserver
Ubuntu 14 +
Debian 8 +
高山3.7.1 +
32位
64位
登录只钩子

.NET核心支持图例

* - Windows Nanoserver不支持instrumentation, .NET Profiler API (OS Commands, LFI)

关于。net核心支持的说明

  • 操作系统命令和本地文件包含特性将与使用。net Profiling API的New Relic和App Dynamics等监控工具发生冲突。如果您正在运行这些工具中的任何一个,请在为tCell代理设置可选的Profiler之前卸载或禁用它们。

  • 删除. net日志文件将停止代理的日志记录。需要重新启动应用程序。

先决条件

. net Core Agent可以通过多种方式部署,但本文描述的是部署到Azure的常见情况。

循序渐进的指导

  • 下载tcell_agent。配置配置文件

    1. 点击顶部导航栏中的“tCell Admin”。
    2. 点击“下载代理”。
    3. 选择”。网络核心”代理。
    4. 选择“Create New API Key”(默认)。
    5. 单击“下载配置文件”下载代理的配置文件(其中预先填充了应用程序和API密钥信息)。
  • 在现有项目中安装。net Core Agent

    1. 在命令行中导航到项目文件夹。
    2. 运行:
                
    安装代理命令
    1
    添加Tcell包。代理
    1. 通过将using block添加到类(通常在Program.cs中),启用对tCell Agent名称空间的访问。
                    
      示例使用语句
      1
      使用existingA;
      2
      使用existingB;
      3.
      使用Tcell.Agent.AspNetCore;//在之前的文件中添加这个
      4
      / /类定义
    2. 通过将UseTcellAgent添加到你的CreateWebHostBuilder方法来启用tCell代理。
          
样本CreateWebHostBuilder
1
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
2
WebHost.CreateDefaultBuilder (args)
3.
.UseTcellAgent(env => env. isproduction()) //添加这一行
4
.UseStartup启动< > ();

注意:"env => env. "“IsProduction”是可选选项,但推荐使用。代理不在开发环境中操作。

在此之后,应该以标准方式构建和部署。但是,请确保tcell_agent。在发布时,Config放在应用程序根文件夹中。

通过环境变量进行配置

上面的步骤是最常见的安装路径,通过配置文件提供代理配置数据。有时,通过环境变量配置代理更容易。注意,要完全通过环境变量进行配置,必须设置一个最小值TCELL_AGENT_APP_IDTCELL_AGENT_API_KEY

配置一个ASP。Net Core网站与AppSettings.json

背景

您使用AppSettings。jsonfile to configure an ASP.Net Core website for sites based on ASP.NET Core MVC. Though AppSettings.json files can be found in subdirectories at many levels, the .NET Core Agent uses only the AppSettings.json file in the root folder of a web application when searching for settings.

tCell配置添加

代理配置通常使用tcell_agent。配置文件,也位于。net Core web应用程序的根目录。tcell_agent。配置和AppSettings。jsonfiles can coexist there, with the AppSettings.json file serving as an alternative means for applying tCell settings.

在tcell_agent中定义的设置。config也可以在AppSettings.json中定义。AppSettings。jsonsettings have the same key names (for the most part) and are defined in a tcell config section. See the following AppSettings.json file example.

         
1
2
" tcell ": {
3.
“tcell_api_url”:“https://us.agent.tcell.insight.rapid7.com/api/v1”,
4
“tcell_input_url”:“https://us.input.tcell.insight.rapid7.com/api/v1”,
5
“js_agent_api_base_url”:“https://us.agent.tcell.insight.rapid7.com/api/v1”,
6
“log_level”:“调试”,
7
“log_enabled”:“真正的”,
8
“allow_log_payloads”:“真正的”,
9
“allow_payloads”:“真正的”,
10
"app_id": "——app id这里——",
11
"api_key": "——API键在这里——",
12
“inspect_json_posts”:“真正的”,
13
“reverse_proxy”:“真正的”,
14
"reverse_proxy_ip_address_header": "——头值——"
15
16

AppSettings中的设置。jsonoverride any other settings from the tcell_agent.config file. Any missing setting is excluded where defaults or values from other sources are used. The configuration is considered bad if app_id or api_key is left out and other application-specific configuration remains.

请注意

作为ASP的标准。NET Core网站,更新AppSettings。jsonfile will trigger application recycling to load new settings. This recycling allows dynamic-like behavior of settings stored in the AppSettings.json file.

OS命令和本地文件支持

操作系统命令本地文件. net核心代理中的特性支持利用. net剖析API。有一个。net Profiling API系统限制一个分析器一次可以分析一个程序.因此,如果你想在。net Core代理中启用OS命令或本地文件特性支持,首先为应用程序禁用现有的基于分析器的系统,如New Relic。

为. net Core代理启用分析可以通过Visual Studio或. net Core命令行工具完成。

通过Visual Studio启用。net核心额外检测

在Visual Studio Package Manager控制台中运行以下命令。

          
使用Visual Studio包管理器控制台安装
1
安装包Tcell.Agent.Instrumentation

通过命令行启用。net核心额外检测

在命令行中运行以下命令。

          
通过命令行安装
1
dotnet add package Tcell.Agent.Instrumentation

第二步是设置.NET分析环境变量

          
.NET核心代理环境变量
1
CORECLR_ENABLE_PROFILING = 1
2
CORECLR_PROFILER = {06 d0b220 - 00 - ff - 45 - c6 - 9732 bfce91663987}
3.
CORECLR_PROFILER_PATH = INSTRUMENTAITON_LIBRARY_FILENAME

INSTRUMENTATION_LIBRARY_FILENAME是在“dotnet发布”或“dotnet构建”命令步骤中创建的检测库的名称。例如,如果一个人跑了-o /app/ -c发布如果这是一台linux机器,则值为“/app/Tcell.Agent.Instrumentation.so”。

故障排除

进行故障排除的最佳方法是查看日志文件。日志文件可以在位于TCELL_AGENT_HOME路径下的tcelllogs目录中找到(默认是应用程序的根目录)。

您可以在日志列表中自定义日志级别tcell_agent.config文件通过添加一个块,如以下:

         
json
1
“logging_options”
2
“启用”真正的
3.
“水平”“信息”
4

看到tcell / tcell_agent.config.template了一个例子。

启动错误

要启用启动错误日志记录,请设置TCELL_AGENT_STARTUP_ERROR_LOGGING将环境变量设置为true或指定有效路径。该标志将在运行的应用程序的根文件夹中创建一个名为tcell_critical_error.log的文件,如果在启动时出现错误,则在指定的路径中创建该文件。

注意:这将把所有应用程序的所有启动错误写到这个文件中,所以如果有大量的应用程序和大量的错误,一个人可能不得不扫描整个文件来找到应用程序特定的错误消息。

日志级别

有效的日志级别包括:

  • 错误
  • 警告
  • 信息(默认)
  • 调试
  • 跟踪

上面的列表显示了级别之间从上到下的优先级。当启用日志级别时,较高的日志级别也同时启用。例如,如果您启用WARN,那么ERROR也会启用。

当日志文件已满时,将在新的日志文件中继续记录日志。看到日志滚动为更多的信息。