grafana酷炫图表
Grafana 可视化大型测量数据工具
############################################################ # $Name: grafana可视化大型测量数据工具 # $Author: zhangshoufu # $organization: http://blog.51cto.com/13447608 # $Create Date: 2018-10-14 ############################################################
grafana是什么?
1)grafana是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。dashboard中显示了你不同metric数据源中的数据。
2)grafana最常用于因特网基础设施和应用分析,但在其他领域也有机会用到,比如:工业传感器、家庭自动化、过程控制等等。
3)grafana有热插拔控制面板和可扩展的数据源,目前已经支持Graphite、InfluxDB、OpenTSDB、Elasticsearch。
安装,配置Grafana软件
1,安装grafana软件
[grafana官网安装说明](http://docs.grafana.org/installation/rpm/)
我们这里介绍5.1.4版本的grafana的安装,如果需要其他版本请点击上述连接到官网自行下载安装
sudo yum install https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.4-1.x86_64.rpm //granfan软件的目录结构 /usr/sbin/grafana-server 安装的二进制文件,可执行的命令 /etc/sysconfig/grafana-server 默认和软件相关的环境变量 /etc/grafana/grafana.ini 默认的配置文件 /var/log/grafana/grafana.log 默认的日志文件 /var/lib/grafana/grafana.db 默认使用的时候是sqlite3数据库,里面存放的连接信息,刚安装好服务没启动之前这个文件是不存在的 systemctl start grafana-server.service //启动服务 systemctl enable grafana-server.service //把服务加入开机启动文件中
说明:
1,默认是以grafana用户来启动grafana的,默认监听在3000端口。
2,默认的登录用户是admin/admin
3,我们可以通过http://IP:3000来访问grafana的web界面
4,默认使用的数据库是sqlite3
登录上去之后的默认页面
2,配置grafana软件
1)/etc/sysconfig/grafana-server 环境变量配置文件说明
[root@zabbix grafana]# cat /etc/sysconfig/grafana-server GRAFANA_USER=grafana // 启动grafana的用户身份 GRAFANA_GROUP=grafana // 启动grafana的用户组身份 GRAFANA_HOME=/usr/share/grafana // garfana软件默认的目录 LOG_DIR=/var/log/grafana // grafana日志文件存放的位置 DATA_DIR=/var/lib/grafana // grafana默认数据存放的位置,sqlite3数据库 MAX_OPEN_FILES=10000 // 最大打开的文件数 CONF_DIR=/etc/grafana // 默认配置文件存在的目录 CONF_FILE=/etc/grafana/grafana.ini // 默认的配置文件 RESTART_ON_UPGRADE=true // 从新启动升级开启 PLUGINS_DIR=/var/lib/grafana/plugins // 插件存放的目录 PROVISIONING_CFG_DIR=/etc/grafana/provisioning # Only used on systemd systems PID_FILE_DIR=/var/run/grafana // 软件启动pid号存放的在那个文件中 // 我们更改上述信息重启grafana生效
2)解读
/etc/grafana/grafana.ini默认的配置文件,优先级高于上个文件
这个文件中 ; 代表注释,注释的值代表默认的值 [root@zabbix /]# cat /etc/grafana/grafana.ini ##################### Grafana Configuration Example ##################### # # Everything has defaults so you only need to uncomment things you want to # change # possible values : production, development ;app_mode = production # instance name, defaults to HOSTNAME environment variable value or hostname if HOSTNAME var is empty ;instance_name = ${HOSTNAME} // 设置grafana-server实例的名称如果HOSTNAME的值为空默认使用HOSTNAME的环境变量或者主机名 #################################### Paths #################################### [paths] # Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used) ;data = /var/lib/grafana // grafana存放数据的地方,默认存放的sqlite3和session会话信息(如果你使用sqlite3) # Directory where grafana can store logs ;logs = /var/log/grafana // 默认日志信息存放的位置 # Directory where grafana will automatically scan and look for plugins ;plugins = /var/lib/grafana/plugins // 插件存放的文职 # folder that contains provisioning config files that grafana will apply on startup and while running. ;provisioning = conf/provisioning // 包含grafana将在启动时和运行时应用的配置配置文件的文件夹。 #################################### Server #################################### [server] # Protocol (http, https, socket) ;protocol = http // 使用的http协议 # The ip address to bind to, empty will bind to all interfaces ;http_addr = // 监听的地址 # The http port to use ;http_port = 3000 // 监听的端口 # The public facing domain name used to access grafana from a browser ;domain = localhost // 使用的域名 # Redirect to correct domain if host header does not match domain # Prevents DNS rebinding attacks ;enforce_domain = false // 如果主机头与域名不匹配,则重定向到正确的域名防止DNS重新绑定*** # The full public facing url you use in browser, used for redirects and emails # If you use reverse proxy and sub path specify full url (with sub path) ;root_url = http://localhost:3000 // 网站默认首页的URL,如果我们更改上面的domain和port这个也要改成对应的 # Log web requests ;router_logging = false // 默认不记录web请求 # the path relative working path ;static_root_path = public // web静态文件存放的路径 # enable gzip ;enable_gzip = false // 是否开始http传输时候的gzip压缩,默认不使用 # https certs & key file ;cert_file = ;cert_key = // 使用https加密协议的时候证书和存放的证书和key的位置 # Unix socket path ;socket = #################################### Database #################################### [database] // 连接数据库的配置文件,应该都能看懂,不解释 # You can configure the database connection by specifying type, host, name, user and password # as separate properties or as on string using the url properties. # Either "mysql", "postgres" or "sqlite3", it's your choice ;type = sqlite3 ;host = 127.0.0.1:3306 ;name = grafana ;user = root # If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;""" ;password = // 如果密码包含#或;您必须用三重引号包装它。"""#password;""" # Use either URL or the previous fields to configure the database # Example: mysql://user:secret@host:port/database ;url = # For "postgres" only, either "disable", "require" or "verify-full" ;ssl_mode = disable # For "sqlite3" only, path relative to data_path setting ;path = grafana.db # Max idle conn setting default is 2 ;max_idle_conn = 2 # Max conn setting default is 0 (mean not set) ;max_open_conn = # Connection Max Lifetime default is 14400 (means 14400 seconds or 4 hours) ;conn_max_lifetime = 14400 # Set to true to log the sql calls and execution times. log_queries = #################################### Session #################################### [session] # Either "memory", "file", "redis", "mysql", "postgres", default is "file" ;provider = file # Provider config options # memory: not have any config yet # file: session dir path, is relative to grafana data_path # redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=grafana` # mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1:3306)/database_name` # postgres: user=a password=b host=localhost port=5432 dbname=c sslmode=disable ;provider_config = sessions # Session cookie name ;cookie_name = grafana_sess # If you use session in https only, default is false ;cookie_secure = false # Session life time, default is 86400 ;session_life_time = 86400 #################################### Data proxy ########################### [dataproxy] # This enables data proxy logging, default is false ;logging = false #################################### Analytics #################################### [analytics] # Server reporting, sends usage counters to stats.grafana.org every 24 hours. # No ip addresses are being tracked, only simple counters to track # running instances, dashboard and error counts. It is very helpful to us. # Change this option to false to disable reporting. ;reporting_enabled = true # Set to false to disable all checks to https://grafana.net # for new vesions (grafana itself and plugins), check is used # in some UI views to notify that grafana or plugin update exists # This option does not cause any auto updates, nor send any information # only a GET request to http://grafana.com to get latest versions ;check_for_updates = true # Google Analytics universal tracking code, only enabled if you specify an id here ;google_analytics_ua_id = #################################### Security #################################### [security] # default admin user, created on startup ;admin_user = admin // 默认登录网站的用户名 # default admin password, can be changed before first start of grafana, or in profile settings ;admin_password = admin // 默认使用的密码 # used for signing ;secret_key = SW2YcwTIb9zpOOhoPsMm // 用于签署一些数据源设置 # Auto-login remember days ;login_remember_days = 7 //记住登录的天数 ;cookie_username = grafana_user //用户cookie记录的文件 ;cookie_remember_name = grafana_remember # disable gravatar profile images ;disable_gravatar = false // 禁用个人图片文件 # data source proxy whitelist (ip_or_domain:port separated by spaces) ;data_source_proxy_whitelist = # disable protection against brute force login attempts ;disable_brute_force_login_protection = false #################################### Snapshots ########################### [snapshots] # snapshot sharing options ;external_enabled = true ;external_snapshot_url = https://snapshots-origin.raintank.io ;external_snapshot_name = Publish to snapshot.raintank.io # remove expired snapshot ;snapshot_remove_expired = true #################################### Dashboards History ################## [dashboards] # Number dashboard versions to keep (per dashboard). Default: 20, Minimum: 1 ;versions_to_keep = 20 #################################### Users ############################### [users] # disable user signup / registration ;allow_sign_up = true // 设置为false就禁止用户注册/创建用户了,但是管理员还是能操作 # Allow non admin users to create organizations ;allow_org_create = true // false禁止用户创建组织 # Set to true to automatically assign new users to the default organization (id 1) ;auto_assign_org = true // 设置为true自动将新用户添加到主组织(标识1)。设置为时false,新用户将自动为该新用户创建新组织。 # Default role new users will be automatically assigned (if disabled above is set to true) ;auto_assign_org_role = Viewer // 将为主组织分配新用户的角色 # Background text for the user field on the login page ;login_hint = email or username # Default UI theme ("dark" or "light") ;default_theme = dark # External user management, these options affect the organization users view ;external_manage_link_url = ;external_manage_link_name = ;external_manage_info = # Viewers can edit/inspect dashboard settings in the browser. But not save the dashboard. ;viewers_can_edit = false [auth] # Set to true to disable (hide) the login form, useful if you use OAuth, defaults to false ;disable_login_form = false # Set to true to disable the signout link in the side menu. useful if you use auth.proxy, defaults to false ;disable_signout_menu = false #################################### Anonymous Auth ########################## [auth.anonymous] # enable anonymous access ;enabled = false # specify organization name that should be used for unauthenticated users ;org_name = Main Org. # specify role for unauthenticated users ;org_role = Viewer #################################### Github Auth ########################## [auth.github] ;enabled = false ;allow_sign_up = true ;client_id = some_id ;client_secret = some_secret ;scopes = user:email,read:org ;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_organizations = #################################### Google Auth ########################## [auth.google] ;enabled = false ;allow_sign_up = true ;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 = #################################### Generic OAuth ########################## [auth.generic_oauth] ;enabled = false ;name = OAuth ;allow_sign_up = true ;client_id = some_id ;client_secret = some_secret ;scopes = user:email,read:org ;auth_url = https://foo.bar/login/oauth/authorize ;token_url = https://foo.bar/login/oauth/access_token ;api_url = https://foo.bar/user ;team_ids = ;allowed_organizations = #################################### Grafana.com Auth #################### [auth.grafana_com] ;enabled = false ;allow_sign_up = true ;client_id = some_id ;client_secret = some_secret ;scopes = user:email ;allowed_organizations = #################################### Auth Proxy ########################## [auth.proxy] ;enabled = false ;header_name = X-WEBAUTH-USER ;header_property = username ;auto_sign_up = true ;ldap_sync_ttl = 60 ;whitelist = 192.168.1.1, 192.168.2.1 #################################### Basic Auth ########################## [auth.basic] ;enabled = true #################################### Auth LDAP ########################## [auth.ldap] ;enabled = false ;config_file = /etc/grafana/ldap.toml ;allow_sign_up = true #################################### SMTP / Emailing ########################## [smtp] ;enabled = false ;host = localhost:25 ;user = # If the password contains # or ; you have to wrap it with trippel quotes. Ex """#password;""" ;password = ;cert_file = ;key_file = ;skip_verify = false ;from_address = admin@grafana.localhost ;from_name = Grafana # EHLO identity in SMTP dialog (defaults to instance_name) ;ehlo_identity = dashboard.example.com [emails] ;welcome_email_on_sign_up = false #################################### Logging ########################## [log] # Either "console", "file", "syslog". Default is console and file # Use space to separate multiple modes, e.g. "console file" ;mode = console file # Either "debug", "info", "warn", "error", "critical", default is "info" ;level = info # optional settings to set different levels for specific loggers. Ex filters = sqlstore:debug ;filters = # For "console" mode only [log.console] ;level = # log line format, valid options are text, console and json ;format = console # For "file" mode only [log.file] ;level = # log line format, valid options are text, console and json ;format = text # This enables automated log rotate(switch of following options), default is true ;log_rotate = true # Max line number of single file, default is 1000000 ;max_lines = 1000000 # Max size shift of single file, default is 28 means 1 << 28, 256MB ;max_size_shift = 28 # Segment log daily, default is true ;daily_rotate = true # Expired days of log file(delete after max days), default is 7 ;max_days = 7 [log.syslog] ;level = # log line format, valid options are text, console and json ;format = text # Syslog network type and address. This can be udp, tcp, or unix. If left blank, the default unix endpoints will be used. ;network = ;address = # Syslog facility. user, daemon and local0 through local7 are valid. ;facility = # Syslog tag. By default, the process' argv[0] is used. ;tag = #################################### Alerting ############################ [alerting] # Disable alerting engine & UI features ;enabled = true # Makes it possible to turn off alert rule execution but alerting UI is visible ;execute_alerts = true #################################### Internal Grafana Metrics ########################## # Metrics available at HTTP API Url /metrics [metrics] # Disable / Enable internal metrics ;enabled = true # Publish interval ;interval_seconds = 10 # Send internal metrics to Graphite [metrics.graphite] # Enable by setting the address setting (ex localhost:2003) ;address = ;prefix = prod.grafana.%(instance_name)s. #################################### Distributed tracing ############ [tracing.jaeger] # Enable by setting the address sending traces to jaeger (ex localhost:6831) ;address = localhost:6831 # Tag that will always be included in when creating new spans. ex (tag1:value1,tag2:value2) ;always_included_tag = tag1:value1 # Type specifies the type of the sampler: const, probabilistic, rateLimiting, or remote ;sampler_type = const # jaeger samplerconfig param # for "const" sampler, 0 or 1 for always false/true respectively # for "probabilistic" sampler, a probability between 0 and 1 # for "rateLimiting" sampler, the number of spans per second # for "remote" sampler, param is the same as for "probabilistic" # and indicates the initial sampling rate before the actual one # is received from the mothership ;sampler_param = 1 #################################### Grafana.com integration ########################## # Url used to to import dashboards directly from Grafana.com [grafana_com] ;url = https://grafana.com #################################### External image storage ########################## [external_image_storage] # Used for uploading images to public servers so they can be included in slack/email messages. # you can choose between (s3, webdav, gcs, azure_blob, local) ;provider = [external_image_storage.s3] ;bucket = ;region = ;path = ;access_key = ;secret_key = [external_image_storage.webdav] ;url = ;public_url = ;username = ;password = [external_image_storage.gcs] ;key_file = ;bucket = ;path = [external_image_storage.azure_blob] ;account_name = ;account_key = ;container_name = [external_image_storage.local] # does not require any configuration
用户认证方式的位置:garfana几种用户认证方式
3)修改配置文件
// grafana默把数据存在sqlite3里,我们更改到mysql重 [root@zabbix /]# grep "^[a-z]" /etc/grafana/grafana.ini domain = test.garfana.com root_url = http://test.garfana.com:3000 type = mysql host = 172.16.1.51:3306 name = grafana user = grafana password = "zsf123.com" log_queries = admin_user = zsf admin_password = "zsf123.com"
4)mysql创建库和用户并授权
MariaDB [(none)]> create database grafana ; MariaDB [(none)]> grant all privileges on grafana.* to grafana@"172.16.1.71" identified by 'zsf123.com'; MariaDB [(none)]> flush privileges;
5)重启grafana使其配置生效,登录web界面连接配置,安装Plugin插件
通过grafana与zabbix的配合使用来介绍grafana的使用方式
1)安装zabbix插件,进入grafana-web首页---> install apps & Plugin安装zabbix插件
选择Zabbix插件
[root@zabbix /]# [root@zabbix /]# grafana-cli plugins install alexanderzobnin-zabbix-app installing alexanderzobnin-zabbix-app @ 3.9.1 from url: https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/3.9.1/download into: /var/lib/grafana/plugins ✔ Installed alexanderzobnin-zabbix-app successfully Restart grafana after installing plugins . <service grafana-server restart> // 安装完插件之后重启一下grafana端 [root@zabbix /]# systemctl restart grafana-server.service
2)然后进入到web首页点击
进入启用zabbix插件
3)添加一个报表的数据源
4)查看模版的信息
到首页点击home
5)指定义指示盘
先创建一个garfana的行来归类
创建一个图表
大概页面就是这么一个情况,
添加一个饼图插件
和安装Zabbix插件是一样的过程
grafana-cli plugins install grafana-piechart-panel installing grafana-piechart-panel @ 1.3.3 from url: https://grafana.com/api/plugins/grafana-piechart-panel/versions/1.3.3/download into: /var/lib/grafana/plugins ✔ Installed grafana-piechart-panel successfully Restart grafana after installing plugins . <service grafana-server restart> [root@zabbix /]# systemctl restart grafana-server.service
安装完成之后就能在添加模块的地方看到饼图了,即可创建,内存的饼图
安装插件介绍到这,基本使用已经能正常了,后期继续推出相关教程
- Android 一个酷炫的图表制作框架
- zabbix安装grafana 酷炫监控插件
- 一个酷炫的Android图表制作框架
- zabbix插件之grafana-zabbix实现炫酷图表
- 一款简单、实时、酷炫的图表制作软件
- FushionChart一个酷炫的图表插件
- grafana-大数据图表监控分析框架
- grafana http-api 批量添加图表
- 使用Grafana 展示Docker容器的监控图表并设置邮件报警规则
- 如何安装和配置Grafana绘制美丽的图表从Zabbix在CentOS 7
- 使用Grafana 展示Docker容器的监控图表并设置邮件报警规则
- grafana图表配置详解
- FushionChart一个酷炫的图表插件
- 使用Grafana 展示Docker容器的监控图表并设置邮件报警规则(图解)
- grafana之JAVA自动化配置图表
- 导出导入grafana完整的dashboard(非单个图表)
- 使用Grafana结合Zabbix进行监控图表展示
- zabbix实现炫酷图表插件grafana
- 简单、易用、酷炫的图表插件
- HTML5 Canvas 的图表报表开发