Grafana

最近在调研InfluxDB的时候接触到了Grafana,Grafana是什么?一个类似Kibana的东西,也是对后端的数据进行实时展示,那么Grafana和Kibana有什么区别?在我看来区别不大,不过在大家的日常使用中Kibana是跟着Logstash、ElasticSearch等组件一起使用做日志展示、索引、分析的,造成了一种假象就是Kibana就只有这种用法了,Kibana也可以接入其他数据源的,不过大家最长用的还是展示日志,Grafana是什么呢?该项目你可能没听过,也比较年轻,他一般是和一些时间序列数据库进行配合来展示数据的,例如:Graphite、OpenTSDB、InfluxDB等。下面看看官方是怎么解释Grafana的:

  • grafana是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。dashboard中显示了你不同metric数据源中的数据。
  • grafana最常用于因特网基础设施和应用分析,但在其他领域也有机会用到,比如:工业传感器、家庭自动化、过程控制等等。
  • grafana有热插拔控制面板和可扩展的数据源,目前已经支持Graphite、InfluxDB、OpenTSDB、Elasticsearch。

下面我们就练练手,先安装:

grafana官方已经有打包好的deb和rpm包以及编译好的二进制包,同时grafana还支持Mac OS X、windows等等,下载页面在:download

作为第一次尝试,我们选择编译好的二进制包:grafana-2.1.3.linux-x64.tar.gz,后面熟练后可选择deb或者rpm。二进制包解压后,进入其中的conf目录,里面有一个defaults.ini文件,在grafana的conf目录下,把defaults.ini配置文件重命名为custom.ini。进入grafana的bin目录下,有一个grafana-server二进制文件,直接执行./grafana-server web即可启动应用程序。更详细的安装在这里:here

grafana和LDAP集成:

可惜我们这公司竟没有使用AD/LDAP的习惯,在这里看过程:here

批量安装配置:

grafana支持puppet、ansible、docker、chef等安装,感觉没啥用就不介绍了

grafana后端数据源配置:

grafana主要是支持一些时间序列数据库,我们调研的是influxdb,所以就以influxdb为例了,界面上点点就配置好了,主要过程看这里:here

grafana的配置文件:

grafana后端的配置文件可以是多个以.ini结尾的配置文件,主要从三个配置文件读取配置:默认是$WORKING_DIR/conf/defaults.ini,其次用户配置是$WORKING_DIR/conf/custom.ini,用户配置则可以在命令行启动grafana时通过--config参数重新指定配置文件来覆盖。如果你是以deb或者rpm安装的,则默认的配置文件是/etc/grafana/grafana.ini,这个文件是在init.d的启动脚本中通过--config参数指定的。

所有在配置文件中的配置都可以通过环境变量来覆盖,使用的语法如下:GF_<SectionName>_<KeyName>,例如:

[security]
admin_user = admin

[auth.google]
client_secret = 0ldS3cretKey

如果使用环境变量,则是如下:

export GF_SECURITY_ADMIN_USER=true
export GF_AUTH_GOOGLE_CLIENT_SECRET=newS3cretKey

下面具体看看每个配置段的配置:

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:[email protected](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 = [email protected]

[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天后删除

启动grafana:

./grafana-server -config="/opt/grafana-2.1.3/conf/custom.ini"

下面的就是初始化过程了,会有大片的输出,再次重启grafana的时候则不会进行初始化:

下面访问grafana看看:

时间: 2024-10-07 21:40:24

Grafana的相关文章

zabbix2.2安装grafana

1.操作环境 CentOS release 6.4 (Final) Kernel \r on an \m [[email protected] ~]# uname -r 2.6.32-358.el6.x86_64 [[email protected] ~]# uname -m x86_64 2.下载grafana以及安装 [[email protected] ~]# wget https://grafanarel.s3.amazonaws.com/builds/grafana-2.1.1-1.x

influxdb+grafana业务数据可视化

了解数据库的TPS.QPS是作为一个运维DBA是非常必要的,那什么是TPS.QPS呢,简单的理解是: QPS:每秒查询数,即对数据库每秒的DML的操作数 TPS:每秒事物处理,即对数据库每秒DDL操作数 通过了解他们,可以掌握一个实例的基本工作运行状态 如何对于对他们进行页面可视化,是DBA的一个装逼神器,本章主要介绍通过时序数据库(influxdb)+grafana+简单的python代码实现 时时监控它们,什么是时序数据库可以在其他章节了解,这里不做过多介绍 Let's go..... 1.

ELK stat集群部署+Grafana及可视化图形

1.ELK stat集群部署+Grafana及可视化图形 2.后续会更新.................

grafana数据迁移

grafana是用于可视化大型测量数据的开源程序.界面比kibana更加美观,适合在电视展示! 最近grafana更新到4.0版本,增加了报警功能.正好grafana需要迁移,就升级迁移一起搞定. 具体操作: wget  https://grafanarel.s3.amazonaws.com/builds/grafana-4.0.2-1481203731.x86_64.rpm yum install initscripts fontconfig rpm -Uvh grafana-4.0.2-14

使用telegraf+influxdb+grafana监控ceph集群

telegraf是一个收集监控项的agent,有支持收集多种数据的插件比如ceph,apache,docker,haproxy,system等,同时有支持多种输出的插件比如influxdb,graphite等. influxdb是时序数据库,多用于监控场景 grafana是很棒的绘图工具 这三者的结合有三个主要过程: 1.安装在ceph集群所有节点(包括mon和osd节点)上的telegraf通过ceph_input插件收集ceph集群信息,这里踩了两个坑,ceph_input插件报了两个错,一

附12 grafana配置文件

一.配置文件位置 /usr/local/opt/grafana/share/grafana/default.ini /usr/local/etc/grafana/grafana.ini 二.init格式 1.注释: 以";"开头,不管多长或多短,独占一行 三.配置文件调用顺序 1.grafana启动时,首先会调用/usr/local/opt/grafana/share/grafana/default.ini(定义了默认的启动信息) 2.之后会调用我们写的--config所指向的配置文件

安装grafana

安装 grafana 安装依赖程序: sudo  rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch vi /etc/yum.repos.d/elasticsearch.repo   [elasticsearch-1.0]   name=Elasticsearch repository for 1.0.x packages   baseurl=http://packages.elasticsearch.org/

grafana 开源图标系统 &amp; InfluxDB 介绍。

1,开源图表系统grafana grafana提供的监控列表效果非常的漂亮.直接部署在nginx上面就行,使用node.js 实现的数据抓取. http://grafana.org/ demo页面: http://play.grafana.org/ 这个报表展示可以跑在 Graphite, InfluxDB & OpenTSDB. 监控的数据库上面. 其中InfluxDB 是用golang编写的比感兴趣. 2,InfluxDB InfluxDB 是一个开源,分布式,时间序列,事件,可度量和无外部

kafka监控实战(jmxtrans+InfluxDb+Grafana)

一.前言 从上周一直在调研找一款好用的kafka监控,我测试使用过的KafkaOffsetMonitor.Burrow.kafka-monitor.Kafka-Manager,他们各有优缺点,具体情况我这里就不展开描述了,大家可以到它们的git上去查看, 并且它们基本上都是监控topic的写入和读取等等,没有提供对于整体集群的监控信息,比如集群的分片.延时.内存使用情况等等,无意中发现了jmxtrans,jmxtrans它是一个通过jmx采集java应用的数据采集器,他的输出可以是Graphit

Grafana中多租户设置

Grafana中通过设置不同的组织,以及将用户分配到不同组织,来做到多租户,类似门户的概念. Grafana默认是不允许非管理员用户创建新的组织的,这个可以通过修改配置文件以允许非管理员用户创建组织: 下面演示下怎么新建组织,以及将组织和用户进行关联: 点击上图中的"New organization",我们可以看到"多组织常用于多租户部署",如下所示 输入组织名,点击"Create",创建完组织后,可以为组织选择不同的用户: 除此之外,也可以在全