首页 >> 大全

Prometheus监控学习笔记之容器监控Grafana模块

2023-09-11 大全 32 作者:考证青年

0x00 概述

是一个开源的,可以用于大规模指标数据的可视化项目,甚至还能对指标进行报警。基于友好的 2.0 开源协议,目前是监控展示的首选。优点如下:

1.使用: 2.二次开发:

如果默认的不能满足你的需求,要二次开发,官方也提供了很多支持:

+ 做为监控组合很方便,很强大,改造了鉴权之后更加香。一开始我们还尝试使用自带的报警功能,可惜比较鸡肋,无法用于生产,报警的issue一大堆官方也不想修改,作罢

0x01 -k8s部署 步骤一:安装

提供了很多种部署方式,如果你的展示报警是在K8S集群外,可以二进制直接部署,如果本身在集群内,或者管理端也是k8s集群,可以用yaml部署:

配置:

apiVersion: apps/v1
kind: Deployment
metadata:namespace: kube-systemname: grafana
spec:replicas: 1selector:matchLabels:app: grafanatemplate:metadata:namespace: kube-systemannotations:grafana-version: '1.0'name: grafanalabels:app: grafanaspec:containers:- name: grafanaimage: grafana/grafana:5.1.0imagePullPolicy: AlwayssecurityContext:runAsUser: 0env: - name: GF_SECURITY_ADMIN_PASSWORDvalue: "admin"ports:- name: grafanacontainerPort: 3000resources:requests:memory: "100Mi"cpu: "100m"limits:memory: "2048Mi"cpu: "1024m"

配置:

apiVersion: v1
kind: Service
metadata:namespace: kube-systemname: grafanaannotations:prometheus.io/scrape: 'true'labels:name: grafana
spec:selector:app: grafanatype: LoadBalancerports:- name: grafanaprotocol: TCPport: 3000

配置文件的字段含义:

app_mode:应用名称,默认是production[path]
data:一个grafana用来存储sqlite3、临时文件、回话的地址路径
logs:grafana存储logs的路径[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则需要设置[database]
grafana默认需要使用数据库存储用户和dashboard信息,默认使用sqlite3来存储,你也可以换成其他数据库
type:可以是mysql、postgres、sqlite3,默认是sqlite3
path:只是sqlite3需要,定义sqlite3的存储路径
host:只是mysql、postgres需要,默认是127.0.0.1:3306
name:grafana的数据库名称,默认是grafana
user:连接数据库的用户
password:数据库用户的密码
ssl_mode:只是postgres使用[security]
admin_user:grafana默认的admin用户,默认是admin
admin_password:grafana admin的默认密码,默认是admin
login_remember_days:多少天内保持登录状态
secret_key:保持登录状态的签名
disable_gravatar:[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[auth.anonymous]
enabled:设置为true,则开启允许匿名访问,默认是false
org_name:为匿名用户设置组织名称
org_role:为匿名用户设置的访问规则,默认是Viewer[auth.github]
针对github项目的,很明显,呵呵
enabled = false
allow_sign_up = false
client_id = some_id
client_secret = some_secret
scopes = user:email
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
team_ids =
allowed_domains =
allowed_organizations =[auth.google]
针对google app的,呵呵
enabled = false
allow_sign_up = false
client_id = some_client_id
client_secret = some_client_secret
scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
auth_url = https://accounts.google.com/o/oauth2/auth
token_url = https://accounts.google.com/o/oauth2/token
api_url = https://www.googleapis.com/oauth2/v1/userinfo
allowed_domains =[auth.basic]
enabled:当设置为true,则http api开启基本认证[auth.ldap]
enabled:设置为true则开启LDAP认证,默认是false
config_file:如果开启LDAP,指定LDAP的配置文件/etc/grafana/ldap.toml[auth.proxy]
允许你在一个HTTP反向代理上进行认证设置
enabled:默认是false
header_name:默认是X-WEBAUTH-USER
header_property:默认是个名称username
auto_sign_up:默认是true。开启自动注册,如果用户在grafana DB中不存在[analytics]
reporting_enabled:如果设置为true,则会发送匿名使用分析到stats.grafana.org,主要用于跟踪允许实例、版本、dashboard、错误统计。默认是true
google_analytics_ua_id:使用GA进行分析,填写你的GA ID即可[dashboards.json]
如果你有一个系统自动产生json格式的dashboard,则可以开启这个特性试试
enabled:默认是false
path:一个全路径用来包含你的json dashboard,默认是/var/lib/grafana/dashboards[session]
provider:默认是file,值还可以是memory、mysql、postgres
provider_config:这个值的配置由provider的设置来确定,如果provider是file,则是data/xxxx路径类型,如果provider是mysql,则是user:password@tcp(127.0.0.1:3306)/database_name,如果provider是postgres,则是user=a password=b host=localhost port=5432 dbname=c sslmode=disable
cookie_name:grafana的cookie名称
cookie_secure:如果设置为true,则grafana依赖https,默认是false
session_life_time:session过期时间,默认是86400秒,24小时以下是官方文档没有,配置文件中有的
[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[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天后删除

注意的几个点:

_prometheus应用监控_prometheus监控原理

对所有的资源都做、limit限制,防止耗尽主机资源的一些配置可以通过变量传入:如admin的密码如果要对的数据进行持久化,建议挂或者外部存储,持久化的内容一般都是面板配置。监控面板的配置可以导入导出:因为版本问题,如果提示的权限不足,可以配置: 0

创建了之后,可以通过暴露的端口地址查看页面:

_prometheus应用监控_prometheus监控原理

登录成功后,会显示需要初始化的内容

_prometheus应用监控_prometheus监控原理

步骤二:配置数据源

支持多种数据源,可以在“type”的下拉框选项中看到,这里我们选择作为数据源。HTTP的访问方式选择proxy,URL填写能访问到的地址。

因为和都在同一个k8s集群中,这里用svc地址

prometheus应用监控_prometheus监控原理_

点击“save and test”测试连接性。

步骤三:创建面板

_prometheus应用监控_prometheus监控原理

有了数据源,接下来就是如何更好地展示数据,支持多种类型的图表,如Graph、、Table等。可以组合出多种形式。这里先创建一个Demo,保存现有模板的快捷键是Ctrl + S

prometheus监控原理__prometheus应用监控

_prometheus应用监控_prometheus监控原理

你的所有面板都可以在左上角的下拉框中找到:

prometheus监控原理__prometheus应用监控

我们还可以导入现有的面板(),大家贡献的模板地址:

prometheus监控原理__prometheus应用监控

选择左上角的➕号,然后,有两种形式的导入:

的面板、图表有很多配置,接下来我们说几个常用的配置项

0x02 常用配置

示例:K8S的节点数量趋势图

_prometheus应用监控_prometheus监控原理

prometheus应用监控_prometheus监控原理_

编辑图表时默认进入的是,内容包括:

Data :填写刚刚配置过的数据源的名称,这里是和B指的是这张图有几条线,这里是A一条线、右侧的小眼睛代表是否隐藏该线A线中,输入框填写的是查询语句,这里指合法的, 指A线的显示名称

除了之外,还有几个选项,含义分别是:

Title:图表标题;
Description:图表描述;
Span:图表间隔,无需设定,在前端可手动调整图表大小;
Height:图表高度,无需设定,在前端可手动调整图表高度;
Transparent:背景是否透明,默认情况下不勾选,如果觉得不需要深灰色背景,可以勾选此项;
Templating和Drilldown / detail link用处不大,忽略即可。

Override relative time:  覆盖右上角选择的时间,设置要显示的时间范围,这里我设置24h(单位自己可选)。 
Add time shift:  这里是偏移量设置,比如填写2h表示不显示最近2h的数据。 
Hide time ocerride info:  上边相对时间设置之后在graph中会显示本图表的时间信息,在此处选择后可以把显示的信息隐藏掉

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了