Todos los productos
Search
Centro de documentos

Simple Log Service:Integración con Grafana

Última actualización: Sep 02, 2026

Utilice Grafana para visualizar y analizar los registros de Nginx recopilados por Simple Log Service (SLS).

Importante

Requisitos previos

  • Recopile los registros de Nginx. Para obtener más información, consulte Use Nginx configuration mode to collect text logs.

  • Habilite y configure los índices. Para obtener más información, consulte Analyze Nginx access logs.

  • Descargue el paquete del proyecto del plugin de origen de datos.

    Ejecute el siguiente comando para descargar el paquete: wget https://github.com/aliyun/aliyun-log-grafana-datasource-plugin/archive/refs/heads/master.zip.

    Nota

    Este tema utiliza el plugin SLS v2.36 como ejemplo.

  • Instale Grafana. Para obtener más información, consulte la documentación oficial de Grafana.

    Nota
    • Este tema utiliza Grafana 11.4.0 como ejemplo.

    • Si instala Grafana en su computadora local, asegúrese de que el puerto 3000 sea accesible desde su navegador.

    • Para utilizar un gráfico circular, ejecute el siguiente comando para instalar el plugin Pie Chart.

      grafana-cli plugins install grafana-piechart-panel

Compatibilidad del plugin

La siguiente tabla describe la compatibilidad entre Grafana y el plugin de SLS.

Versión de Grafana

Versión del plugin de SLS

≥8.0.0

2.x

<8.0.0

1.0

Notas de uso

Si configura una redirección basada en STS, se deben cumplir las siguientes condiciones de seguridad:

  • El usuario asociado con la accesskey del origen de datos debe tener las directivas de acceso AliyunRAMReadOnlyAccess y AliyunSTSAssumeRoleAccess, permiso para llamar a la API CreateTicket y los permisos necesarios para SLS.

  • El rol de RAM especificado en el campo RoleArn del origen de datos debe tener únicamente la directiva de acceso AliyunLogReadOnlyAccess.

  • Para obtener más información sobre cómo funciona esto, consulte Embed and share console pages.

Si configura el acceso sin inicio de sesión, compruebe que el origen de datos no se utilice en paneles de Grafana compartidos públicamente. El acceso público puede aumentar los costos de tráfico y exponer el contenido de los registros.

Nota

Para obtener más información sobre las directivas de acceso del sistema, consulte System access policies for Simple Log Service.

Paso 1: Instalar el plugin de SLS

  1. Ejecute el siguiente comando para descomprimir el paquete del plugin en el directorio de plugins de Grafana.

    • Para Grafana instalado desde un repositorio YUM o un paquete RPM:

      unzip aliyun-log-grafana-datasource-plugin-master.zip -d /var/lib/grafana/plugins
    • Para Grafana instalado desde un archivo .tar.gz:

      En este comando, {PATH_TO} es la ruta de instalación de Grafana.

      unzip aliyun-log-grafana-datasource-plugin-master.zip -d {PATH_TO}/grafana-11.4.0/data/plugins
  2. Modifique el archivo de configuración de Grafana.

    1. Abra el archivo de configuración.

      • Para Grafana instalado desde un repositorio YUM o un paquete RPM: /etc/grafana/grafana.ini

      • Para Grafana instalado desde un archivo .tar.gz: {PATH_TO}/grafana-11.4.0/conf/defaults.ini

    2. En la sección [plugins] del archivo de configuración, establezca el parámetro allow_loading_unsigned_plugins.

      allow_loading_unsigned_plugins = aliyun-log-service-datasource
  3. Reinicie Grafana.

    1. Utilice el comando kill para finalizar el proceso de Grafana.

    2. Ejecute uno de los siguientes comandos para iniciar Grafana.

      • Para Grafana instalado desde un repositorio YUM o un paquete RPM:

        systemctl restart grafana-server
      • Para Grafana instalado desde un archivo .tar.gz:

        ./bin/grafana-server web

Paso 2: Agregar un origen de datos

  1. Inicie sesión en Grafana.

  2. En el panel de navegación izquierdo, seleccione Connections > Data Sources.

  3. En la pestaña Data Sources, haga clic en Add data source.

  4. En la página Add data source, busque y haga clic en log-service-datasource.

  5. En la página aliyun-log-service-datasource, configure los siguientes ajustes.

    • La siguiente tabla describe los parámetros obligatorios.

      Parámetro

      Descripción

      Endpoint

      El endpoint del proyecto, por ejemplo, http://cn-qingdao.log.aliyuncs.com. Utilice su endpoint real. Para obtener más información, consulte Endpoints.

      Project

      El nombre del proyecto de SLS.

      AccessKeyID

      La AccessKey ID se utiliza para identificar a un usuario. Para obtener más información, consulte Access key pair.

      Se recomienda otorgar únicamente los permisos necesarios a un usuario de RAM según el principio de menor privilegio. Para obtener más información sobre cómo otorgar permisos a un usuario de RAM, consulte Create a RAM user and grant permissions y RAM custom policy examples.

      AccessKeySecret

      La AccessKey secret se utiliza para cifrar y verificar una cadena de firma. La AccessKey secret debe mantenerse confidencial.

    • La siguiente tabla describe los parámetros opcionales.

      Parámetro

      Descripción

      Name

      El nombre del origen de datos. El valor predeterminado es aliyun-log-service-datasource.

      Default

      Este interruptor está habilitado de forma predeterminada.

      Default LogStore

      Si omite el logstore, asegúrese de que su accesskey tenga el permiso ListProject para el proyecto actual.

      RoleArn

      Obligatorio para la redirección basada en STS. Especifique el ARN del rol de RAM.

      HTTP headers

      Se admiten encabezados personalizados y solo surten efecto cuando el tipo de origen de datos es MetricStore(PromQL). Para obtener detalles sobre la configuración, consulte los ajustes de FormValue en Accelerate queries. La siguiente lista describe los campos de Headers:

      • x-sls-parallel-enable: Especifica si se habilita el cómputo concurrente. Deshabilitado de forma predeterminada.

      • x-sls-parallel-time-piece-interval: La unidad de tiempo para la fragmentación por rango de tiempo, en segundos. El rango compatible es [3600, 86400*30]. El valor predeterminado es 21600 (6 horas).

      • x-sls-parallel-time-piece-count: El número de shards al fragmentar por rango de tiempo. El rango compatible es de 1 a 16. El valor predeterminado es 8.

      • x-sls-parallel-count: La concurrencia global. El rango compatible es de 2 a 64. El valor predeterminado es 8.

      • x-sls-parallel-count-per-host: La concurrencia por host. El rango compatible es de 1 a 8. El valor predeterminado es 2.

      • x-sls-global-cache-enable: Especifica si se habilita la caché global. Deshabilitado de forma predeterminada.

      Region

      Admite firma v4 para mayor seguridad.

  6. Después de completar la configuración, haga clic en Save & test.

Paso 3: Agregar un panel

Para agregar un panel a Grafana:

  1. En el panel de navegación izquierdo, haga clic en Dashboards.

  2. En el panel Dashboards, haga clic en + Created dashboard. Luego, haga clic en + Add visualization.

  3. En la página Select data source, seleccione aliyun-log-service-datasource como origen de datos.

  4. Agregue un panel de visualización.

    La siguiente lista describe los ajustes:

    • Data Source Type: Hay cuatro tipos disponibles, basados en la sintaxis (SQL y PromQL) y el tipo de almacenamiento: ALL(SQL), Logstore(SQL), MetricStore(SQL) y MetricStore(PromQL).

      • Los logstores admiten SQL para query and analysis.

      • Los metricstores admiten SQL y PromQL para query and analysis.

      • MetricStore(PromQL) permite agregar encabezados personalizados en la página de configuración del origen de datos.

    • Logstore list: Seleccione el nombre del logstore que desea consultar.

    • Query: Introduzca una sentencia de consulta, por ejemplo:

      * | select count(*) as c, __time__-__time__%60 as t group by t
    • ycol: null

    • xcol: Seleccione TimeSeries / Custom e introduzca t.

    • goto SLS: Redirección con un solo clic a la consola de SLS.

      En las páginas de exploración y del panel, puede hacer clic en goto SLS para saltar a la consola de SLS y realizar comparaciones. También puede utilizar las funciones más avanzadas y las capacidades flexibles de búsqueda de registros de la consola de SLS. Al redirigirse, la información de la consulta y del tiempo se transfieren automáticamente, lo que elimina la necesidad de introducirlas manualmente.

      Este método de redirección lo lleva directamente a la consola de SLS y no requiere configuración. Sin embargo, ya debe haber iniciado sesión en la consola de SLS en su navegador; de lo contrario, se le redirigirá a la página de inicio de sesión.

      Nota

      Esta función está disponible en la versión 2.30 y posteriores del plugin SLS para Grafana.

  5. En Panel options a la derecha, introduzca un título y luego haga clic en Save dashboard en la esquina superior derecha. En el cuadro de diálogo que aparece, haga clic en Save.

Configurar variables de plantilla

Las variables de plantilla en Grafana permiten cambiar dinámicamente los datos mostrados en un gráfico.

Configurar una variable de intervalo de tiempo

  1. En la esquina superior derecha de la página New dashboard, haga clic en Edit > Settings.

  2. Haga clic en Variables.

  3. Haga clic en New variable.

  4. Configure la variable de plantilla con los siguientes parámetros y luego haga clic en Add.

    La siguiente tabla describe los parámetros clave.

    Parámetro

    Descripción

    Name

    El nombre de la variable, como myinterval. Esta variable se utiliza en su configuración y debe introducirse como $$myinterval en una condición de consulta.

    Type

    Seleccione Interval.

    Label

    Establezca como time interval.

    Values

    Establezca como 1m,10m,30m,1h,6h,12h,1d,7d,14d,30d.

    Auto Option

    Habilite el interruptor Auto Option y mantenga los demás parámetros en sus valores predeterminados.

  5. Resultado. Después de la configuración, aparece una lista desplegable de time interval en la parte superior del panel, que permite seleccionar intervalos como Auto, 1m, 10m, 30m, 1h, 6h, 12h o 1d.

Configurar una variable de nombre de dominio

  1. En la página Variables, haga clic en New.

  2. Configure la variable de plantilla con los siguientes parámetros y luego haga clic en Add.

    Parámetro

    Descripción

    Name

    El nombre de la variable, por ejemplo, hostname. Esta es la variable que utiliza en su configuración; si el nombre de la variable es hostname, debe especificar $hostname en la condición de consulta.

    Type

    Seleccione Custom.

    Label

    Introduzca un nombre de dominio.

    Custom Options

    Si establece el parámetro en *,example.com,example.org,example.net, podrá ver el estado de acceso de todos los nombres de dominio. También puede ver el estado de acceso de example.com, example.org o example.net por separado.

    Selection Options

    Mantenga la configuración predeterminada.

  3. Resultado. Después de la configuración, aparece una lista desplegable de nombres de dominio en la parte superior del panel, que permite seleccionar * (todos los dominios), example.com, example.org o example.net.

Configurar variable de lista de logstores

  1. En la página de configuración de Variables, seleccione el tipo Custom. El campo name sirve como identificador único y debe contener la cadena 'logstore', sin distinción entre mayúsculas y minúsculas. En Custom Options, introduzca los valores de la variable separados por comas.

    image.webp

  2. En el editor del panel, cambie la opción Logstore list a su variable personalizada, seleccione un valor y actualice el panel para ver los resultados.image.webp

Configuración de gráficos

Paneles Stat y Gauge

Formato de xcol: stat.

Formato de ycol: <numeric_column>, <numeric_column>.

Importante

Si proporciona una columna no numérica donde se requiere una columna numérica, el valor se establece en 0.

  • Ejemplo 1

    Tipo de panel: Stat

    xcol: stat

    ycol: PV, deltaPercent

    query:

    * | select diff[1] as "PV", round((diff[1] - diff[2])/diff[2] * 100, 2) as deltaPercent from (select compare("PV", 86400) as diff from (select count(*) as "PV" from log))

    El resultado de la consulta se muestra en un panel Stat, que presenta dos métricas numéricas: PV y deltaPercent. Los valores positivos se muestran en verde y los negativos en rojo, con un mini gráfico de líneas de tendencia debajo de cada métrica.

  • Ejemplo 2

    Tipo de panel: Gauge

    xcol: stat

    ycol: c

    query:

    * | select count(distinct labels['hostname']) as c from (select promql_query('${metricName}{cluster =~ "${cluster}"}') from metrics ) limit 100000

    El resultado de la consulta se muestra en un panel Gauge. El valor se presenta como un indicador de arco en un medidor, con una transición de color de verde a rojo para representar el rango del valor.

Gráfico circular

Formato de xcol: pie.

Formato de ycol: <grouping_column>, <numeric_column>.

  • Ejemplo 1

    Tipo de panel: Pie Chart

    xcol: pie

    ycol: request_method, c

    query:

    request_method: "$method" | select count(*) as c, request_method group by request_method

    El resultado de la consulta se muestra como un gráfico circular que presenta la distribución de diversos métodos de solicitud HTTP, como GET, POST, PUT y DELETE.

  • Ejemplo 2

    Tipo de panel: Pie Chart

    xcol: pie

    ycol: http_user_agent, pv

    query:

    * | select count(1) as pv, case when http_user_agent like '%Chrome%' then 'Chrome' when http_user_agent like '%Firefox%' then 'Firefox' when http_user_agent like '%Safari%' then 'Safari' else 'unKnown' end as http_user_agent group by case when http_user_agent like '%Chrome%' then 'Chrome' when http_user_agent like '%Firefox%' then 'Firefox' when http_user_agent like '%Safari%' then 'Safari' else 'unKnown' end order by pv desc limit 10

    El resultado de la consulta se muestra como un gráfico circular que indica el porcentaje de tráfico proveniente de diferentes navegadores: Chrome, Firefox, Safari y unKnown.

  • Otros casos de uso

    El formato para paneles Stat también puede aplicarse a gráficos circulares para generar una visualización válida.

    Tipo de panel: Pie Chart

    xcol: stat

    ycol: hostNameNum, ipNum

    query:

    * | select count(distinct labels['hostname']) as hostNameNum, count(distinct labels['ip']) + 20 as ipNum from (select promql_query('${metricName}{cluster =~ ".*"}') from metrics ) limit 100000

    El resultado de la consulta se muestra como un gráfico circular que presenta la proporción de las métricas hostNameNum e ipNum.

Series temporales

Formato de xcol: <time_column>.

Formato de ycol: <numeric_column> [, <numeric_column>, ...] (sintaxis de logstore) o <labels / grouping_column>#:#<numeric_column> (sintaxis de metricstore o sintaxis de agregación de registros).

  • Ejemplo 1

    Tipo de panel: Time series

    xcol: time

    ycol: pv, uv

    query:

    * | select __time__ - __time__ % $${myinterval} as time, COUNT(*)/ 100 as pv, approx_distinct(remote_addr)/ 60 as uv GROUP BY time order by time limit 2000

    El resultado de la consulta se muestra como un gráfico de líneas de series temporales que ilustra las tendencias de dos series, pv y uv, a lo largo del tiempo.

  • Ejemplo 2

    Tipo de panel: Time series

    xcol: time

    ycol: labels#:#value

    query:

    * | select time, * from (select promql_query_range('${metricName}') from metrics) limit 1000

    El resultado de la consulta se muestra como un gráfico de líneas de series temporales, donde cada serie recibe un nombre automático y se agrupa según sus etiquetas.

  • Ejemplo 3

    También puede utilizar SQL para personalizar la visualización de las etiquetas de las series temporales.

    Tipo de panel: Time series

    xcol: time

    ycol: customLabelsExtract#:#value

    query:

    * | select concat(labels['ip'], ' -> ', labels['cluster']) as customLabelsExtract, value from (select promql_query_range('${metricName}') from metrics) limit 1000

    El resultado de la consulta se muestra como un gráfico de líneas de series temporales, con nombres de serie definidos por el campo SQL personalizado customLabelsExtract (formato: IP -> cluster).

Gráfico de barras

Formato de xcol: bar.

Formato de ycol: <grouping_column>, <numeric_column> [, <numeric_column>, ...].

  • Ejemplo 1

    Tipo de panel: Bar chart

    xcol: bar

    ycol: host, pv, pv2, uv

    query:

    * | select host, COUNT(*)+10 as pv, COUNT(*)+20 as pv2, approx_distinct(remote_addr) as uv GROUP BY host ORDER BY uv desc LIMIT 5

    El resultado de la consulta se muestra como un gráfico de barras horizontales que compara las métricas pv, pv2 y uv para cada host.

Tabla

El panel Table admite la ordenación por tiempo con precisión de nanosegundos si existe un campo de nanosegundos.

Admite la modificación del recuento de totalLogs. El valor predeterminado es 100, el mínimo es 1 y el máximo es 5000. Esto aplica únicamente a sentencias de consulta, no a sentencias de análisis.

Sintaxis de xcol: <empty>.

Formato de ycol: Deje este campo vacío o especifique <display_column> [, <display_column>, ...].

  • Ejemplo 1

    Tipo de panel: Table

    xcol: Table/Log

    ycol: <empty>

    query:

    * | select __time__ - __time__ % 60 as time, COUNT(*)/ 100 as pv, approx_distinct(remote_addr)/ 60 as uv GROUP BY time order by time limit 2000

    El resultado de la consulta se muestra en una tabla con columnas para time, pv y uv.

Registros

Sintaxis de xcol: <empty>.

Sintaxis de ycol: <empty>.

Ejemplo

Tipo de panel: Logs

xcol: <Empty>

ycol: <Empty>

query:

host: www.vt.mock.com

El resultado de la consulta se muestra en un panel Logs que presenta entradas de registro sin procesar, donde cada entrada muestra pares clave-valor correspondientes a sus campos.

Trazas

Tipo de panel: Traces

xcol: trace

ycol: <empty>

query:

traceID: "f88271003ab7d29ffee1eb8b68c58237"

El resultado de la consulta se muestra en un panel Traces que presenta la información de la traza. El lado izquierdo enumera Service & Operation, y el lado derecho muestra una línea de tiempo de diagrama de Gantt para cada span, lo que ilustra la jerarquía y la duración de la traza.

Nota

Este ejemplo utiliza un logstore que contiene datos de trazas. Debe habilitar el servicio Trace en SLS. SLS admite la ingesta nativa de datos de trazas de OpenTelemetry y también permite ingerir datos de trazas de otros sistemas de rastreo. Para obtener más información, consulte Overview of ingesting trace data.

En Grafana 10.0 y versiones posteriores, se admite el filtrado de spans para datos de trazas. Si utiliza una versión anterior de Grafana, también puede definir filtros de spans personalizados en su consulta. Por ejemplo:

traceID: "f88271003ab7d29ffee1eb8b68c58237" and resource.deployment.environment : "dev" and service : "web_request" and duration > 10

GeoMap

Formato de xcol: map.

Formato de ycol: <country_column>, <geolocation_column>, <numeric_column>.

Ejemplo

Tipo de panel: GeoMap

xcol: map

ycol: country, geo, pv

query:

* | select count(1) as pv ,geohash(ip_to_geo(arbitrary(remote_addr))) as geo,ip_to_country(remote_addr) as country from log group by country having geo <>'' limit 1000

El resultado de la consulta se muestra en un GeoMap, que presenta la distribución del tráfico en diferentes regiones sobre un mapa mundial. El tamaño de los círculos indica el volumen de tráfico.

Preguntas frecuentes

  • ¿Dónde se almacenan los registros de Grafana?

    Los registros de Grafana se almacenan en los siguientes directorios:

    • macOS: /usr/local/var/log/grafana

    • Linux: /var/log/grafana

  • ¿Qué debo hacer si aparece aliyun-log-plugin_linux_amd64: permission denied en los registros?

    Otorgue permisos de ejecución al directorio dist/aliyun-log-plugin_linux_amd64 dentro del directorio del plugin.