prometheus学习笔记之Grafana安装与配置与使用

一、Grafana简介

grafana是⼀个可视化组件,⽤于接收客户端浏览器的请求并连接到prometheus查询数据,最后经过渲染并在浏览器进⾏体系化显示,需要注意的是, grafana查询数据类似于zabbix⼀样需要⾃定义模板,模板可以⼿动制作也可以导⼊已有模板。

Grafana的基础架构主要包括以下几个核心组件:

前端Web界面:Grafana的前端界面是基于JavaScript和React构建的,用户可以通过Web浏览器访问这个界面进行数据查看、图表展示、仪表盘设计等操作。

后端服务:Grafana的后端服务主要负责数据的查询、处理和存储等功能。这些服务包括数据源插件、图表渲染引擎、警报引擎等,用来处理用户请求并生成相应的数据展示。

数据源插件:Grafana支持各种不同类型的数据源,比如InfluxDB、Prometheus、Elasticsearch等。数据源插件负责与这些数据源进行交互,查询数据并将结果返回给用户。

图表渲染引擎:Grafana中的图表渲染引擎负责将用户查询到的数据转换成图表展示,支持各种不同类型的图表,比如折线图、柱状图、饼图等。

警报引擎:Grafana的警报引擎可以帮助用户监控系统的状态,并在特定条件满足时发送警报通知。

基于以上组件,Grafana实现了一个灵活、可扩展的数据可视化平台,用户可以根据自己的需求配置不同的数据源和插件,设计个性化的仪表盘,实现对系统数据的实时监控和分析。其架构设计考虑了性能、可靠性和易用性等方面的需求,使得Grafana成为一个广泛应用于各种领域的数据可视化工具。

二、Grafana安装

1.Grafana版本

Grafana 分为以下两个版本,通常我们选择Enterprise版本,因为虽然是企业版,但是在使用过程中并没有什么限制
1.Grafana OSS(Open Source Software,开源软件)
2.Enterprise(企业版)

版本区别:
功能特性:Enterprise 版本可能提供一些高级的功能和特性,例如更强大的权限管理、数据保留策略、高级的告警功能等,而这些功能在 OSS 版本中可能不存在或者相对简单。
安全性和合规性:Enterprise 版本可能针对企业级的安全和合规要求进行了更多的优化和增强。
扩展插件:某些特定的扩展插件可能只在 Enterprise 版本中可用或者得到更好的支持。

2.rpm安装

#下载地址:https://grafana.com/grafana/download 
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-11.1.4-1.x86_64.rpm
yum install -y fontconfig #安装依赖
rpm -ivh grafana-enterprise-11.1.4-1.x86_64.rpm
systemctl daemon-reload
systemctl enable grafana-server.service
systemctl start grafana-server.service
netstat -tnlp|grep 3000  #默认监听所有网卡的3000端口

3.k8s安装

---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: monitoring
  labels:
    app: grafana
  name: grafana
spec:
  selector:
    matchLabels:
      app: grafana
  template:
    metadata:
      labels:
        app: grafana
    spec:
      securityContext:
        fsGroup: 472
        supplementalGroups:
          - 0
      containers:
        - name: grafana
          image: registry-vpc.cn-shanghai.aliyuncs.com/zdbl-base/grafana-enterprise:11.1.4
          ports:
            - containerPort: 3000
              name: http-grafana
              protocol: TCP
          readinessProbe:
            failureThreshold: 3
            httpGet:
              path: /robots.txt
              port: 3000
              scheme: HTTP
            initialDelaySeconds: 10
            periodSeconds: 30
            successThreshold: 1
            timeoutSeconds: 2
          livenessProbe:
            failureThreshold: 3
            initialDelaySeconds: 30
            periodSeconds: 10
            successThreshold: 1
            tcpSocket:
              port: 3000
            timeoutSeconds: 1
          resources:
            requests:
              cpu: 500m
              memory: 1500Mi
          volumeMounts:
            - mountPath: /var/lib/grafana
              name: grafana-data
      volumes:
        - name: grafana-data
          persistentVolumeClaim:
            claimName: grafana-data
---
apiVersion: networking.k8s.io/v1  #如果没有ingress可以设置service为NodePort类型直接访问
kind: Ingress
metadata:
  name: monitoring-grafana
  namespace: monitoring
spec:
  ingressClassName: nginx
  rules:
   - host: t1-grafana.xxxx.com
     http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: grafana
            port:
              number: 3000
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: grafana-data
  namespace: monitoring
spec:
  storageClassName: nfs-client
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 100G
---
apiVersion: v1
kind: Service
metadata:
  name: grafana
  namespace: monitoring
  labels:
    app: grafana
spec:
  ports:
    - port: 3000
      targetPort: 3000
      protocol: TCP
  selector:
    app: grafana

4.访问Grafana

RPM安装浏览器访问当前主机IP的3000端口,k8s访问ingress域名或NodePort端口,默认密码admin admin

登录后需要重新设置admin密码,否则后续每次登陆都会提示更改密码

登录后默认界面如下

三、配置文件说明

1.相关安装路径

安装目录:/usr/share/grafana/
grafana-cli:/usr/share/grafana/bin/grafana-cli
全局配置文件:/etc/grafana/grafana.ini
默认配置文件:/usr/share/grafana/conf/defaults.ini
plugins 安装目录:/var/lib/grafana/plugins/
默认数据存储文件路径:/var/lib/grafana/grafana.db
日志文件存储路径:/var/log/grafana/
邮件默认发送模板路径:/usr/share/grafana/public/emails/
自定义配置文件夹:/etc/grafana/provisioning

2./etc/grafana/grafana.ini 常用配置

1.相关数据、服务安装路径
[paths]
data = /var/lib/grafana  一个grafana用来存储sqlite3、临时文件、回话的地址路径
temp_data_lifetime = 24h
logs = /var/log/grafana
plugins = /var/lib/grafana/plugins
provisioning = conf/provisioning

2.服务器访问地址、协议、域名等相关配置
[server]
http_addr:监听的ip地址,,默认是0.0.0.0
http_port:监听的端口,默认是3000
protocol:http或者https,,默认是http
domain:这个设置是root_url的一部分,当你通过浏览器访问grafana时的公开的domian名称,默认是localhost
enforce_domain:如果主机的header不匹配domian,则跳转到一个正确的domain上,默认是false
root_url:这是一个web上访问grafana的全路径url,默认是%(protocol)s://%(domain)s:%(http_port)s/
router_logging:是否记录web请求日志,默认是false
cert_file:如果使用https则需要设置
cert_key:如果使用https则需要设置


3.数据库相关配置 默认sqlite3
[database]
grafana默认需要使用数据库存储用户和dashboard信息,默认使用sqlite3来存储,你也可以换成其他数据库,如MySQL
type:可以是mysql、postgres、sqlite3,默认是sqlite3
path:只是sqlite3需要,定义sqlite3的存储路径
host:只是mysql、postgres需要,默认是127.0.0.1:3306
name:grafana的数据库名称,默认是grafana
user:连接数据库的用户
password:数据库用户的密码
ssl_mode:只是postgres使用

4.安全相关

[security]
admin_user:grafana默认的admin用户,默认是admin
admin_password:grafana admin的默认密码,默认是admin
login_remember_days:多少天内保持登录状态
secret_key:保持登录状态的签名
disable_gravatar:

5.用户配置
[users]
allow_sign_up:是否允许普通用户登录,如果设置为false,则禁止用户登录,默认是true,则admin可以创建用户,并登录grafana
allow_org_create:如果设置为false,则禁止用户创建新组织,默认是true
auto_assign_org:当设置为true的时候,会自动的把新增用户增加到id为1的组织中,当设置为false的时候,新建用户的时候会新增一个组织
auto_assign_org_role:新建用户附加的规则,默认是Viewer,还可以是Admin、Editor
default_language = en-US 界面语言,zh-Hans可以设置为中文

5.匿名用户配置
[auth.anonymous]
enabled:设置为true,则开启允许匿名访问,默认是false
org_name:为匿名用户设置组织名称
org_role:为匿名用户设置的访问规则,默认是Viewer

6.邮箱服务配置
[smtp]
enabled = false
host = localhost:25
user =
password =
cert_file =
key_file =
skip_verify = false
from_address = admin@grafana.localhost

[emails]
welcome_email_on_sign_up = false
templates_pattern = emails/*.html

7.日志配置
[log]
mode:可以是console、file,默认是console、file,也可以设置多个,用逗号隔开
buffer_len:channel的buffer长度,默认是10000
level:可以是"Trace", "Debug", "Info", "Warn", "Error", "Critical",默认是info

[log.console]
level:设置级别

[log.file]
level:设置级别
log_rotate:是否开启自动轮转
max_lines:单个日志文件的最大行数,默认是1000000
max_lines_shift:单个日志文件的最大大小,默认是28,表示256MB
daily_rotate:每天是否进行日志轮转,默认是true
max_days:日志过期时间,默认是7,7天后删除

四、基本插件安装

在线安装
1
.饼图 piechart grafana-cli plugins install grafana-piechart-panel 2.散点图 plotly grafana-cli plugins install natel-plotly-panel 3.数据源 json类型 grafana-cli plugins install grafana-simple-json-datasource 4.背景插件 grafana-cli plugins install yesoreyeram-boomtheme-panel https://github.com/gilbN/theme.park/wiki/Themes#grafana-themes

离线安装:
# pwd
/var/lib/grafana/plugins
# unzip grafana-piechart-panel-v1.3.8-0-g4f34110.zip
# mv grafana-piechart-panel-4f34110 grafana-piechart-panel
# systemctl restart grafana-server

五、配置prmetheus 数据源

1.点击Data source标签,老版本在Administration下

2.添加数据源

3.选择prometheus

配置prometheus相关信息

保存并测试,确保配置正常后回到首页

参考地址

下载地址:https://grafana.com/grafana/download
安装文档:https://grafana.com/docs/grafana/latest/installation/requirements/ 

 

posted @ 2024-08-27 13:19  百衲本  阅读(380)  评论(0编辑  收藏  举报
cnblogs_post_body { color: black; font: 0.875em/1.5em "微软雅黑" , "PTSans" , "Arial" ,sans-serif; font-size: 15px; } cnblogs_post_body h1 { text-align:center; background: #333366; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 23px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } cnblogs_post_body h2 { text-align:center; background: #006699; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 20px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } cnblogs_post_body h3 { background: #2B6695; border-radius: 6px 6px 6px 6px; box-shadow: 0 0 0 1px #5F5A4B, 1px 1px 6px 1px rgba(10, 10, 0, 0.5); color: #FFFFFF; font-family: "微软雅黑" , "宋体" , "黑体" ,Arial; font-size: 18px; font-weight: bold; height: 25px; line-height: 25px; margin: 18px 0 !important; padding: 8px 0 5px 5px; text-shadow: 2px 2px 3px #222222; } 回到顶部 博客侧边栏 回到顶部 页首代码 回到顶部 页脚代码