日志服务CLS对接Grafana

背景:

腾讯云CLB(负载均衡)与CLS(日志服务)集成。然后看日志服务CLS专栏有一篇
CLS 对接 Grafana的博文。个人就也想尝试一下。当然了我的grafana是 Prometheus-oprator方式搭建在kubernetes集群中的。详见:https://cloud.tencent.com/developer/article/1807805。
下面开始记录下自己搭建的过程

一. Grafana中的配置

参照https://cloud.tencent.com/developer/article/1785751,但是饼形图的插件个人已经在Prometheus-oprator的搭建过程中安装了。现在重要的就是按照cls的插件和更改grafana的配置

1. 关于Grafana cls插件的安装

插件安装的过程还是简单的

###查看grafana pods的名称
kubectl get pods -n monitoring
###进入grafana容器
kubectl exec -it grafana-57d4ff8cdc-8hwsq bash -n monitoring
###下载cls插件并解压
cd /var/lib/grafana/plugins/
wget https://github.com/TencentCloud/cls-grafana-datasource/releases/latest/download/cls-grafana-datasource.zip
unzip cls-grafana-datasource.zip

日志服务CLS对接Grafana
至于版本的要求验证就忽略了…因为我的granfa image版本是7.4.3,是已经确认过的…。至于如何让grafana插件加载生效呢?我一遍都是用最笨的方法delete一下pod…

kubectl delete pods  grafana-57d4ff8cdc-8hwsq  -n monitoring
kubectl get pods -n monitoring

日志服务CLS对接Grafana
当然了这个时候如果进入grafana确认插件的安装成功与否一般的(grafana-cli plugins install通过官方源下载或者安装的)就可以了。但是安装cls这个插件是不可以的…为什么呢?强调一下腾讯云这个插件是一个非官方认证的插件。如果需要信任非官方的插件grafana是要开启配置参数的

2. 如何修改grafana的配置文件呢?

参照https://cloud.tencent.com/developer/article/1785751。部署完了插件的安装,是要修改grafana.ini的配置文件的。仔细观察一下prometheus-operator中 grafana的配置文件是默认的,并没有其他方式进行挂载,那该怎么办呢?
参照:https://blog.csdn.net/u010918487/article/details/110522133

将grafana的配置文件以configmap的方式进行挂载

具体流程:

1. 将grafana容器中的grafana.ini文件复制到本地

就是复习一下kubectl cp命令了:

kubectl cp grafana-57d4ff8cdc-ms4z9:/etc/grafana/grafana.ini /root/grafana/grafana.ini  -n monitoring

然后本地修改grafana.ini配置文件:
嗯: ;allow_loading_unsigned_plugins =
这一句配置修改为下面的这句

allow_loading_unsigned_plugins = tencent-cls-grafana-datasource

图中没有删除上面那句只是为了方便演示:
日志服务CLS对接Grafana
这配置的作用就是开启tencent-cls-grafana-datasource这个非认证插件的加载。

2. 将修改后的grafana.ini以configmap的方式挂载到kubernetes集群

kubectl create cm grafana-config --from-file=`pwd`/grafana.ini -n monitoring

日志服务CLS对接Grafana

3. 修改grafana-deployment.yaml挂载grafana-config

########volumeMounts部分新增以下内容:
      - mountPath: /etc/grafana
        name: grafana-config
        readOnly: true
########volumes部分新增以下内容:
    - configMap:
        name: grafana-config
      name: grafana-config

日志服务CLS对接Grafana
日志服务CLS对接Grafana

kubectl apply -f grafana-deployment.yaml -n monitoring

等待grafana pod 重新部署成功:
日志服务CLS对接Grafana

3. grafana dashboard中的配置

1. 在左侧导航栏中,单击【Creat Dashboards】。

日志服务CLS对接Grafana

2. 在 Data Sources 页面,单击【Add data source】。

日志服务CLS对接Grafana

3. 选中【Tencent Cloud Log Service Datasource】,并按照如下说明配置数据源

引用自:[https://cloud.tencent.com/developer/article/1785751]

日志服务CLS对接Grafana

日志服务CLS对接Grafana
嗯登陆腾讯云后台cam控制台https://console.cloud.tencent.com/cam。快速新建用户,新建一个名为cls的用户:登陆方式:编程访问,用户权限:QcloudCLSReadOnlyAccess,可接收消息类型全部就注释掉了。

日志服务CLS对接Grafana

进行测试 sava&test。嗯 结果是显示操作未授权应该是下面的这个
日志服务CLS对接Grafana
果断进入腾讯云后台加上了QcloudCLSFullAccess的权限

日志服务CLS对接Grafana
再运行sava&test,ok成功。但是个人对权限比较敏感,这样的fullaccess的 都比较怕…腾讯云官方开源的好多组件对权限的声明都不是那么的多。 也希望能明确一下权限的边界。
日志服务CLS对接Grafana

4. 配置 dashboard

  1. 在左侧导航栏中,单击【Creat Dashboards】。
  2. 在 Dashboard 页面,单击【Add new panel】。
  3. 将数据源选择为您新建的日志数据源。如下图所示:

日志服务CLS对接Grafana
一下图片引用自https://cloud.tencent.com/developer/article/1785751

日志服务CLS对接Grafana

4. 展示图表

本来图表都该在上面搞完的。但是个人觉得还是单独列出来吧

1. 时间折线图

日志服务CLS对接Grafana
输入的 Query 语句如下所示:

* | select histogram( cast(__TIMESTAMP__ as timestamp),interval 1 minute) as time, count(*) as pv,count( distinct remote_addr) as uv group by time order by time limit 1000

  • Format:选择 Graph,Pie,Gauge panel。
  • Metrics:pv,uv。
  • Bucket:无聚合列,不填写。
  • Time : time。

日志服务CLS对接Grafana
记得在Visualization中选择折线图。 Graph 和Time Series两个出来的是一样的…也没有搞清楚区别.

2. 饼形图

搞不出来一般就是没有安装饼形图插件吧。一定记得前提安装了饼形图插件

输入的 Query 语句如下所示:

* | select count(*) as count, status group by status

  • Format:选择 Graph,Pie,Gauge panel。
  • Metrics:count。
  • Bucket:status。
  • Time:不是连续时间数据,不填写。

日志服务CLS对接Grafana
不管那种图表都的在Visualization选择要展现的形式啊…

3. 柱状图,压力图

柱状图,压力图(bar gauge)统计访问延时前10的页面
日志服务CLS对接Grafana

输入的 Query 语句如下所示:

* | select http_referer,avg(request_time) as lagency group by http_referer order by lagency desc limit 10

  • Format:选择** Graph,Pie,Gauge panel**。
  • Metrics:lagency。
  • Bucket:http_referer。
  • Time:不是连续时间数据,不填写

为什么我做出来跟https://cloud.tencent.com/developer/article/1785751中的不一样呢?
日志服务CLS对接Grafana
参照http://codetd.com/article/11171054
日志服务CLS对接Grafana
可能cls官方这文章木有考虑我太小白…,按照大佬的文章修改下OK了
日志服务CLS对接Grafana
但是 颜色是不是也搞的绚丽点?Color scheme Thresholds 两个的配置可以满足你的需要…哈哈哈

日志服务CLS对接Grafana

4. 表格Table

表格的应该就算是简单的了
日志服务CLS对接Grafana

输入的 Query 语句如下所示:

* | select remote_addr,count(*) as count group by remote_addr order by count desc limit 10

  • Format:Table

5. 最终效果

日志服务CLS对接Grafana


上一篇:金融科技之NLP:上市公司新闻标题分类


下一篇:【日志服务CLS】初体验