阿里云SLS
日志服务 Simple Log Service 是服务于阿里云客户以及阿里云集团内部自用的云原生观测与分析,一站式可观测数据的 Data to Insight 平台,为 Log、Metric、Trace 等数据提供大规模、低成本、实时的平台化服务。日志服务一站式提供数据采集、加工、查询与分析、可视化、告警、消费与投递等功能,全面提升研发、运维、运营、安全等场景的数字化能力。
项目代码
package main
import (
"fmt"
"github.com/aliyun/aliyun-log-go-sdk"
"github.com/gin-gonic/gin"
"net/http"
"time"
)
func main() {
router := gin.Default()
router.GET("/download-logs", func(c *gin.Context) {
// 地区
endpoint := "cn-beijing.log.aliyuncs.com"
// key
accessKeyID := "LTAI5tShzYy1VMGR17H"
// 密钥
accessKeySecret := "QELEeTCudJHYhYY3mpuD"
provider := sls.NewStaticCredentialsProvider(accessKeyID, accessKeySecret, "")
client := sls.CreateNormalInterfaceV2(endpoint, provider)
ProjectName := "dean"
LogStoreName := "nginx"
logstore, err := client.GetLogStore(ProjectName, LogStoreName)
if err != nil {
fmt.Println("出现报错了")
panic(err)
}
fmt.Println("get logstore successfully:", logstore.Name)
// 设置查询的时间范围
fromTime := time.Now().Unix() - (60 * 60 * 24) // 24小时之前
toTime := time.Now().Unix() // 当前时间
// 设置查询的参数
query := "*"
line := int64(100) // 每页日志条数
offset := int64(0) // 偏移量
// 获取日志
resp, err := logstore.GetLogs("", fromTime, toTime, query, line, offset, false)
if err != nil {
fmt.Println(err)
c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to get logs"})
return
}
logs := resp.Logs
// 将所有日志转换为JSON格式返回
c.JSON(http.StatusOK, logs)
//// 设置文件名(可以根据需要自定义)
//filename := "access_log_" + time.Now().Format("20060102150405") + ".txt"
//
//// 设置HTTP头信息,指示这是一个文件下载响应
//c.Header("Content-Disposition", "attachment; filename=\""+filename+"\"")
//c.Header("Content-Type", "text/plain")
//
//// 写入文件内容
//c.String(http.StatusOK, logs)
// 设置下载相关的头部信息
c.Header("Content-Description", "File Transfer")
c.Header("Content-Disposition", "attachment; filename=logs.txt")
c.Header("Content-Type", "application/octet-stream")
// 将日志内容写入响应体
for _, log := range resp.Logs {
c.Writer.Write([]byte(fmt.Sprintf("%v\n", log)))
}
})
router.Run(":8080")
}
启动代码程序:
图片
访问Nginx服务,然后查看阿里云SLS日志服务:
图片
访问接口:
http://127.0.0.1:8080/download-logs
可以看到接口返回内容是Nginx的服务日志,其他功能自行探索。
图片