提供了多种灵活的图形选项。此外,它还支持许多不同的数据源存储后端。每个数据源都有一个针对该特定数据源的特性和功能定制的查询编辑器。Grafana官方支持以下数据源:Graphite、InfluxDB、OpenTSDB、Prometheus、Elasticsearch、Cloudwatch。每个数据源的查询语言和能力明显不同,你可以将来自多个数据源的数据混合到一个仪表板上,但每个面板都绑定到属于特定组织的特定数据源。它支持经过身份验证的登录和基于角色的访问控制方案。它作为独立软件部署,使用Go和JavaScript编写。在本文中,我将介绍如何在Ubuntu16.04上安装Grafana并使用它来配置Docker监控。先决条件安装了Docker的服务器安装了Grafana我们可以在Docker中构建我们的Grafana。有一个官方的GrafanaDocker镜像可用。请运行以下命令来构建Grafana容器。root@ubuntu:~#dockerrun-i-p3000:3000grafana/grafanaUnabletofindimage'grafana/grafana:latest'locallylatest:Pullingfromgrafana/grafana5c90d4a2d1a8:Pullcompleteb1a9a0b6158e:Pullcompleteacb23b0d58de:PullcompleteDigest:sha256:34ca2f9c7986cb2d115eea373083f7150a2b9b753210546d14477e2276074ae1Status:Downloadednewerimageforgrafana/grafana:latestt=2016-07-27T15:20:19+0000lvl=infomsg="StartingGrafana"logger=mainversion=3.1.0commit=v3.1.0compiled=2016-07-12T06:42:28+0000t=2016-07-27T15:20:19+0000lvl=infomsg="Configloadedfrom"logger=settingsfile=/usr/share/grafana/conf/defaults.init=2016-07-27T15:20:19+0000lvl=infomsg="Configloadedfrom"logger=settingsfile=/etc/grafana/grafana.init=2016-07-27T15:20:19+0000lvl=infomsg="Configoverridenfromcommandline"logger=settingsarg="default.paths.data=/var/lib/grafana"t=2016-07-27T15:20:19+0000lvl=infomsg="Configoverridenfromcommandline"logger=settingsarg="default.paths.logs=/var/log/grafana"t=2016-07-27T15:20:19+0000lvl=infomsg="Configoverridenfromcommandline"logger=settingsarg="default.paths.plugins=/var/lib/grafana/plugins"t=2016-07-27T15:20:19+0000lvl=infomsg="PathHome"logger=settingspath=/usr/share/grafanat=2016-07-27T15:20:19+0000lvl=infomsg="PathData"记录器=settingspath=/var/lib/grafanat=2016-07-27T15:20:19+0000lvl=infomsg="PathLogs"logger=settingspath=/var/log/grafanat=2016-07-27T15:20:19+0000lvl=infomsg="PathPlugins"logger=settingspath=/var/lib/grafana/pluginst=2016-07-27T15:20:19+0000lvl=infomsg="InitializingDB"logger=sqlstoredbtype=sqlite3t=2016-07-27T15:20:20+0000lvl=infomsg="执行迁移"logger=migratorid="createplaylistitemtablev2"t=2016-07-27T15:20:20+0000lvl=infomsg="执行迁移"logger=migratorid="createplaylistitemtablev2"t=2016-07-27T15:20:20+0000lvl=infomsg="Executingmigration"logger=migratorid="droppreferencestablev2"t=2016-07-27T15:20:20+0000lvl=infomsg="Executingmigration"logger=migratorid="droppreferencestablev3"t=2016-07-27T15:20:20+0000lvl=infomsg="Executingmigration"logger=migratorid="createpreferencestablev3"t=2016-07-27T15:20:20+0000lvl=infomsg="Createddefaultadminuser:[admin]"t=2016-07-27T15:20:20+0000lvl=infomsg="Startingpluginsearch"logger=pluginst=2016-07-27T15:20:20+0000lvl=infomsg="ServerListening"logger=serveraddress=0.0.0.0:3000protocol=httpsubUrl=我们可以通过运行这个来确认Grafana容器的工作状态命令“dockerps-a”或通过此网址访问http://DockerIP:3000。所有Grafana配置设置都是使用环境变量定义的,这在使用容器技术时非常有用。Grafana配置文件路径为/etc/grafana/grafana.ini.了解配置项Grafana可以在其ini配置文件中指定几个配置选项,也可以指定我们荷兰国际集团上述环境变量。配置文件位置通常配置文件路径:默认配置文件路径:$WORKING_DIR/conf/defaults.ini自定义配置文件路径:$WORKING_DIR/conf/custom.iniPS:当你使用deb、rpm或docker镜像安装Grafana时,你配置文件在/etc/grafana/grafana.ini中。了解配置变量现在让我们看一下配置文件中的一些变量:instance_name:这是Grafana服务器实例的名称。默认值从${HOSTNAME}获取,其值为环境变量HOSTNAME,如果该变量为空或不存在,Grafana会尝试使用系统调用获取机器名。[paths]>:这些路径通常在init.d脚本或systemd服务文件中的命令行中指定。data:这是Grafana存储sqlite3数据库(如果使用)、基于文件的会话(如果使用)和其他数据的路径。logs:这是Grafana存放日志的路径。[server]http_addr:应用监听的IP地址。如果为空,则监视所有接口。http_port:应用程序监听的端口,默认为3000,你可以使用以下命令将你的80端口重定向到3000端口:$iptables-tnat-APREROUTING-ptcp--dport80-jREDIRECT--to-端口3000root_url:此URL用于从浏览器访问Grafana。cert_file:证书文件的路径(如果协议是HTTPS)。cert_key:证书密钥文件的路径(如果协议是HTTPS)。[数据库]:Grafana使用数据库来存储用户和仪表板等信息,默认配置是使用嵌入在主Grafana二进制文件中的SQLite3。type:可以根据需要选择MySQL、Postgres、SQLite3。path:只用于选择SQLite3数据库,这是存放数据库的路径。主机:仅限MySQL或Postgres。它包括一个IP地址或主机名和一个端口。例如Grafana和MySQL运行在同一台主机上,设置为:host=127.0.0.1:3306。name:Grafana数据库的名称,设置为Grafana或其他名称。user:数据库用户(不适用于SQLite3)。password:数据库用户密码(不适用于SQLite3)。ssl_mode:对于Postgres,使用disable、require或verify-full等值。对于MySQL,使用true、false或skip-verify。ca_cert_path:(仅限MySQL)CA证书文件路径,在大多数Linux系统上,证书可以在/etc/ssl/certs中找到。client_key_path:(仅适用于MySQL)客户端密钥的路径,仅在服务器需要客户端身份验证时使用。client_cert_path:(仅适用于MySQL)客户端证书的路径,仅在服务器需要客户端身份验证时使用。server_cert_name:(仅限MySQL)MySQL服务器使用的证书的通用名称字段。如果ssl_mode设置为skip-verify,则不能设置。[security]admin_user:这是Grafana默认管理员用户的用户名,默认设置为admin。admin_password:这是Grafana默认管理员用户的密码,第一次运行时设置,默认为admin。login_remember_days:保持登录/记住我的天数。secret_key:保持登录/记住我cookie的签名。设置监控的重要组件我们可以使用以下组件来创建我们的Docker监控系统。cAdvisor:称为ContainerAdvisor。它为用户提供资源利用率和性能特征的解释。它收集、汇总、处理和导出有关正在运行的容器的信息。您可以在本文档中了解更多信息。InfluxDB:这是一个时间序列、指标和分析数据库。我们使用此数据源来设置我们的监控。cAdvisor仅显示实时信息,并不存储这些指标。InfluxDb帮助保存cAdvisor提供的监控数据,展示某段时间不在的数据。GrafanaDashboard:可以帮助我们可视化的整合所有的信息。这个功能强大的仪表板允许我们对InfluxDB数据存储进行查询,并将它们放在布局精美的图表中。要安装Docker监控,我们需要在我们的Docker系统中逐步安装以下每个组件:安装InfluxDB我们可以使用此命令拉取InfluxDB镜像并部署influxDB容器。root@ubuntu:~#dockerrun-d-p8083:8083-p8086:8086--expose8090--expose8099-ePRE_CREATE_DB=cadvisor--nameinfluxsrvtutum/influxdb:0.8.8Unabletofindimage'tutum/influxdb:0.8.8'locally0.8.8:Pullingfromtutum/influxdba3ed95caeb02:Alreadyexists23efb549476f:Alreadyexistsaa2f8df21433:Alreadyexistsef072d3c9b41:Alreadyexistsc9f371853f28:Alreadyexistsa248b0871c3c:Alreadyexists749db6d368d0:Alreadyexists7d7c7d923e63:Pullcompletee47cc7808961:Pullcomplete1743b6eeb23f:PullcompleteDigest:sha256:8494b31289b4dbc1d5b444e344ab1dda3e18b07f80517c3f9aae7d18133c0c42Status:Downloadednewerimagefortutum/influxdb:0.8.8d3b6f7789e0d1d01fa4e0aacdb636c221421107d1df96808ecbe8e241ceb1823-p8083:8083:userinterface,loginwithusername-admin,pass-admin-p8086:8086:与其他应用程序的交互--nameinfluxsrv:containerhavenameinfluxsrv,usetocAdvisorlinkit。你可以通过访问这个网址http://你的IP地址:8083来测试InfluxDB是否安装好,用户名和密码都是“root”。我们可以在这个界面上创建我们需要的数据库。安装cAdvisor我们的下一步是安装cAdvisor容器并将其链接到InfluxDB容器。您可以使用此命令来创建它。root@ubuntu:~#dockerrun--volume=/:/rootfs:ro--volume=/var/run:/var/run:rw--volume=/sys:/sys:ro--volume=/var/lib/docker/:/var/lib/docker:ro--publish=8080:8080--detach=true--linkinfluxsrv:influxsrv--name=cadvisorgoogle/cadvisor:latest-storage_driver_db=cadvisor-storage_driver_host=influxsrv:8086Unabletofindimage'google/cadvisor:latest'locallylatest:Pullingfromgoogle/cadvisor09d0220f4043:Pullcomplete151807d34af9:Pullcomplete14cd28dce332:PullcompleteDigest:sha256:8364c7ab7f56a087b757a304f9376c3527c8c60c848f82b66dd728980222bd2fStatus:Downloadednewerimageforgoogle/cadvisor:latest3bfdf7fdc83872485acb06666a686719983a1172ac49895cd2a260deb1cdde29root@ubuntu:~#--publish=8080:8080:userinterface--link=influxsrv:influxsrv:linktocontainerinfluxsrv-storage_driver=influxdb:setthestoragedriverasInfluxDBSpecifywhatInfluxDBinstancetopushdatato:-storage_driver_host=influxsrv:8086:Theip:portofthedatabase.Defaultis'localhost:8086'-storage_driver_db=cadvisor:databasename.Usesdb'cadvisor'bydefault你可以通过访问这个地址来测试是否安装了cAdvisorhttp://你的IP地址:8080这将提供你的Docker主机和容器的统计信息。安装GrafanaDashboard最后,我们需要安装GrafanaDashboard并连接到InfluxDB,你可以执行下面的命令来设置它。root@ubuntu:~#dockerrun-d-p3000:3000-eINFLUXDB_HOST=localhost-eINFLUXDB_PORT=8086-eINFLUXDB_NAME=cadvisor-eINFLUXDB_USER=root-eINFLUXDB_PASS=root--linkinfluxsrv:influxsrv--namegrafanagrafana/grafanaf3b7598529202b110e4e6b998dca6b6e60e8608d75dcfe0d2b09ae408f43684a现在我们可以登录Grafana来配置数据源。访问http://你的IP地址:3000或http://你的IP地址(如果你之前做了端口映射):用户名-admin密码-admin一旦我们安装好了Grafana,我们就可以连接InfluxDB了。登录仪表板,然后单击面板左上角的Grafana图标(那个火球)。单击数据源以对其进行配置。现在您可以将新图表添加到我们的默认数据源InfluxDB中。我们可以通过在测量页面上编辑和调整我们的查询来调整我们的图表。您可以在此处了解有关Docker监控的更多信息。谢谢阅读。希望您能留下宝贵的建议和意见。希望你今天过得愉快。
