example
example

教程 Grafana+Loki(日志系统)安装教程

Cata_a

论坛名人
管理成员
FiveM版主
论坛元老
高级用户
认证用户

效果展示​

1706790146169.png
ox_lib的lib.logger函数可以将数据发送到Datadog或Grafana Loki,来实现记录日志的功能。
两家官方都有推出免费的方案,优点是不用自己搭建,省心方便,缺点就是存在各种限制,好在Grafana Loki支持自托管。
ox_inventory也是使用这一函数对物品操作来进行记录,那么本教程将手把手带你安装Grafana+Loki,并记录物品捡起、丢弃、交换等等操作。

基础知识​

Grafana+Loki可以直接与FiveM服务器在一台主机上运行,同时也推荐你这样做。
因为默认情况下,自托管Loki不会进行身份验证,需要依靠外部身份验证层,例如NGINX basic auth或Cloudflare Access,但如果是搭建在一台主机上,我们只需要禁止公网访问Loki的端口即可(Loki端口默认3100,一般云服务器都是拒绝公网访问所有端口,只放行特定的端口)。

然后我们需要知道Grafana、Loki、Promtail这三者的关系:
  • Grafana:一个网页界面,可以对包括Loki在内的等等数据进行显示、筛选等等操作
  • Loki:日志引擎
  • Promtail:将日志发送给Loki
所以我们想要记录日志并展示出来,这三者缺一不可。

下载程序​

前往https://grafana.com/grafana/download?edition=enterprise&platform=windows,下载Windows版本的Grafana安装程序。
1706681855565.png

下载完成后打开无脑下一步即可,此处可以选择安装位置。
1706682128519.png
如果需要通过公网来访问Grafana,参考https://cloud.tencent.com/developer/article/2337875,开放3000端口的TCP。

前往https://github.com/grafana/loki/releases,下载最新版本、Windows系统的Loki和Promtail。
注意:不要下载 LogCLI 或 Loki Canary。LogCLI可以在命令行界面中运行 Loki 查询,Loki Canary是审计Loki性能的工具。我们用不到。
这两个才是我们需要的,如图。
1706682443614.png 1706682464812.png

前往https://raw.githubusercontent.com/grafana/loki/v2.9.4/cmd/loki/loki-local-config.yaml,下载对应版本的Loki配置文件。

在任意位置新建一个文件夹(建议还是在之前安装Grafana的文件夹里,如C:\Program Files\GrafanaLabs\loki),命名为loki,并且将刚刚下载的三个文件放进去。
1706692605146.png

在loki的文件夹内新建一个文本文档,命名为start_loki.cmd,内容为.\loki-windows-amd64.exe --config.file=loki-local-config.yaml,保存关闭。
完成以上操作之后loki的文件夹应该长这样,如图。
1706682988483.png

启动程序​

Grafana安装完后会自动作为服务,每次开机自动运行。
Loki通过上面创建的start_loki.cmd来启动即可。

配置Grafana​

登录​

默认用户名和密码都是admin,登录进去后会提示你修改密码。

设置中文​

1706684786676.png
弹出提示选择Save即可

添加Loki为数据源​

1706685058476.png
如图,连接地址填写http://localhost:3100,滚动到最下面点击Save & test即可。

1706689536244.png

导入仪表盘​

前往https://github.com/Cata-a1138/grafana-ox_inventory,下载仪表板模板。
按下图操作后选择导入仪表板,选择之前下载的文件后点击Import即可。
1706691177075.png

配置ox_lib和ox_inventory​

在你的cfg中加入以下代码。
代码:
set ox:logger "loki"
set loki:user ""
set loki:password ""
set loki:endpoint "http://localhost:3100"
# 通过ox_lib记录库存日志(0:禁用,1:标准,2:所有包括AddItem、RemoveItem、商店购买)
set inventory:loglevel 1

完成​

现在进入游戏,扔掉物品试试看吧!
本教程只是一本“启蒙书”,你可以在自己的插件中使用lib.logger记录你想要的信息,或详细了解Grafana,对数据进行更多处理。

参考文档​

 
最后编辑:

HaoEr2047

哀殿天下第一
论坛元老
高级用户
认证用户
emmmmmmmm
可能是我背包的问题,即使我设置了2,商店和管理员物品事件也依然没有记录
 

HaoEr2047

哀殿天下第一
论坛元老
高级用户
认证用户
这个日志过一段时间之前的就不见了
 
顶部