V.Talog.Server 的部分接口虽然是公开的,但是后台管理页面并不是公开的,因此如果想要使用 V.Talog.Server 的功能,需要自行搭建一个实例。本文将介绍一下 V.Talog.Server 的搭建过程。
使用 Release 包搭建
可以从 项目 Release 页面
下载已经打包好的压缩包,解压后直接运行可执行文件即可(windows 直接双击 V.Talog.Server.exe,linux 运行 ./V.Talog.Server
)。
如果服务启动后,打印出类似以下的日志,即为运行成功。
[10:10:31 INF] Talogger 55909147 init.
[10:10:31 INF] LogShipper inited.
[10:10:31 INF] LogShipper started.
[10:10:32 INF] Default Quartz.NET properties loaded from embedded resource file
[10:10:32 INF] Initialized Scheduler Signaller of type: Quartz.Core.SchedulerSignalerImpl
[10:10:32 INF] Quartz Scheduler v.3.1.0.0 created.
[10:10:32 INF] RAMJobStore initialized.
[10:10:32 INF] Scheduler meta-data: Quartz Scheduler (v3.1.0.0) 'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED'
Scheduler class: 'Quartz.Core.QuartzScheduler' - running locally.
NOT STARTED.
Currently in standby mode.
Number of jobs executed: 0
Using thread pool 'Quartz.Simpl.DefaultThreadPool' - with 10 threads.
Using job-store 'Quartz.Simpl.RAMJobStore' - which does not support persistence. and is not clustered.
[10:10:32 INF] Quartz scheduler 'DefaultQuartzScheduler' initialized
[10:10:32 INF] Quartz scheduler version: 3.1.0.0
[10:10:32 INF] JobFactory set to: V.Quartz.CustomJobFactory
[10:10:32 INF] Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
[10:10:32 INF] Trigger: V.Talog.Server.AutoCleanJob_RightNow Job: V.Talog.Server.AutoCleanJob TriggerFired
[10:10:32 INF] Trigger: V.Talog.Server.AutoCleanJob_RightNow Job: V.Talog.Server.AutoCleanJob TriggerComplete Runtime: 00:00:00.0031643
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://0.0.0.0:7166
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\repos\V.Talog\src\V.Talog.Server\bin\Release\net6.0\win-x64\publish\
使用最新代码编译
若想用使用最新代码重新编译,你需要本地拥有 git 以及 .net6.0 环境。
- git clone https://github.com/venyowong/V.Talog
- cd V.Talog/src/V.Talog.Server
- windows: dotnet publish -c Release -r win-x64 /p:PublishSingleFile=True
- linux: dotnet publish -c Release -r linux-x64 /p:PublishSingleFile=True
- 运行
.\V.Talog.Server.exe
或./V.Talog.Server
修改配置
V.Talog.Server 的主要配置项都位于 appsettings.json 文件中。
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"Urls": "http://0.0.0.0:7166", // 服务监听的 ip 与端口
"AllowedHosts": "*",
"Jwt": {
"Secret": "c786e0fb7a2547788fc7fb79b67b2db8" // jwt 密钥
},
"Admin": {
"Password": "!QAZ+{:>" // 后台管理页面登录密码
},
"Logs": [ // 本地日志文件监听列表,具体配置参考上一篇文章
],
"Cors": {
"Origins": "http://localhost;https://vbranch.cn;http://localhost:8080;http://192.168.1.4:8080;http://192.168.1.4" // 跨域
},
"DataRetentionDuration": 30 // PageView、Metrics 数据保留天数
}
访问后台管理页面
访问 http://localhost:7166,首次打开将会自动跳转到 http://localhost:7166/login.html,使用你所配置的密码登录,将会看到以下页面。此时管理页面还看不到任何数据,使用上一篇文章中介绍的公共 API 向 V.Talog.Server 写入数据吧。
线上实例资源占用情况
V.Talog.Server 在我个人的云服务器上已经运行了一段时间,宿主机是 2C2G 的配置,内存方面我使用 top 命令查看,占用在 20% 左右,也就是 400M 左右。
CPU 方面可以直接看腾讯云的监控数据,在这台机器也运行了其他服务的情况下,CPU 利用率大部分情况都不超过 1%,最大值不超过 4%。
因此个人认为 V.Talog.Server 运行在 1C1G 的机器上是完全没问题的,这也符合一开始设计 Talog 的初衷。
最后
下一篇文章将会介绍一下我封装的两个用于向 V.Talog.Server 上报数据的 .net 类库,如果你的服务是用其他语言开发的,可以直接发起 http 请求调用公共 API。