前言
随着公司业务的不断发展,业务的种类在不断增加,服务数量的不断增长,网络环境的越发复杂,我们发版更加频繁。
这样就会不可避免地导致线上事故的增多,因此需要对服务器到应用的全方位监控和预警,我们急需一个工具来解决这些问题,而Grafana的出现正好完美的解决了这个问题。
1.我们为什么要用Grafana?
Grafana是一种流行的开源数据可视化和监测工具,它提供了许多功能强大的仪表盘和图形来帮助用户更好地理解其数据。
以下是一些grafana的优点:
- 灵活性:Grafana支持各种数据源,并且可以自由地配置大量的插件和面板,以展示不同类型的数据。
- 易用性:Grafana非常易于使用,因为它提供了一个直观的用户界面,使用户能够轻松地创建、编辑和共享仪表板。
- 实时监控:Grafana可以实时监测各种指标,包括应用程序性能、网络流量、服务器资源等等。
- 可视化:Grafana有丰富的数据可视化选项,如曲线图、柱状图、饼图等,使得数据可以以直观的方式呈现出来。
- 多样性:Grafana支持多种数据来源,如prometheus、elasticsearch、influxdb等,能够适用于不同类型的数据监控场景。
总之,Grafana提供了一个强大的平台,使得用户可以更好的监视和管理他们的数据,从而提高应用程序的性能和可靠性。
2.Grafana有哪些好用的功能?
Grafana提供了许多丰富的功能,包括但不限于以下几点:
- 数据可视化:Grafana能够将各种类型的数据以图表、表格和仪表盘等形式进行展示和可视化。
- 数据源支持:Grafana支持多种数据源,包括InfluxDB、Graphite、Elasticsearch、Prometheus等。用户可以根据自己的需求选择不同的数据源进行数据查询和可视化。
- 灵活的面板布局:Grafana提供了丰富的面板选项,用户可以自由地定制面板的大小、位置、颜色、标题等。
- 高度可定制性:Grafana的模板语言非常强大,用户可以使用它来自定义各种功能,例如警报规则、动态标记、样式等。
- 图表交互性:Grafana提供了丰富的图表交互选项,例如缩放、平移、鼠标悬停、工具提示等。
- 数据导出和分享:Grafana提供了数据导出和分享功能,使用户可以方便地将结果导出为PDF、PNG、CSV等格式,并与团队成员分享分析结果。
我们公司也搭建了一套监控系统,可以从Grafana上查看JVM使用情况、CPU使用情况、线程使用情况、内存使用情况、用户并发量、接口耗时等等,用Grafana可以查看多个维度的数据。
特别是分布式日志系统:Loki,能够跟Grafana完美相结合,我们可以通过Grafana平台查看系统日志,想查看本地日志一样方便。
3.阿里云上如何使用Grafana?
其实国内有很多云服务器厂商,已经支持Grafana了,在这里推荐使用阿里云的Grafana,因为它使用起来更方便,而且功能更加强大。
那么,我们如何在阿里云上如何使用Grafana呢?
3.1 启用创建Grafana服务
在grafana服务进行下单,需要填入【工作区名称】与【Admin密码】 阿里云grafana托管服务,可使用的用户可以通过阿里云账户进行单点登录转跳,也可以通过管理员账户admin完成登陆。
完成grafana专家版服务的创建。
点击ID,进入工作区管理界面,此处可以看到grafana的连接信息,这个url就是我们访问grafana的地址,下方提供了云服务集成。
访问连接信息,即可访问grafana的主页
3.2 手动添加数据源
我手上刚好有四台ECS资源,这里就对ECS云服务进行一个监控数据展示的配置。对ECS的监控数据源配置有几种,包括【企业云监控】、【Prome云监控探针到ECS】等,这里针对我个人没有那么多云资产的情况,就使用【aliyun-cms数据源插件】完成grafana到云监控数据源的配置。
3.2.1 手动配置云监控数据源插件
在【Configuraion】下,点击【Data sources】,此处可以手动添加数据源 点击【Add data source】
阿里grafana提供了多种数据源接入,此处我们选择【CMS Grafana Service】,点击【Select】
配置【Aliyun UserId】输入用户ID、【AccessKeyId】、【AccessKey】,点击【Save&test】进行保存与测试连接
OK,我们的信息么问题,提示数据源工作了
完成了对云监控数据的手动添加,此时cms显示default默认数据源
3.2.2 完成Dashboard展示面板的创建
先看一下我的四台ECS在云监控下的情况,所有主机监控正常,插件运行中
在grafana上选择【+】,create创建【Dashboard】
在dashboard页面点击【Add panel】新建面板
这里测试举例几种面板的形式,可能观测的内容和展示的方式不太合适,这个见仁见智咯。
-
【Time series时序图】ECS的CPU使用率展示 进入面板的新建,这里我们的data
source数据源是默认的cms,即为云监控的数据。【Namespace】选择acs_ecs_dashboard,为ECS的相关监控
【Metric】选择cpuutilzation,为CPU使用率
【Dimensions】选择需要展示的ECS云服务器实例
【Y-column】选择Average平均值,当然也有最大值max与最小值min
【X-column】默认timestamp
右侧为面板的相关配置,这里我修改了【Title】标题,完成配置点击右上角【Apply】
所有需要配置的几项参数,都会自动展开或补全 【Namesapce】:监控的云服务 【Metric】:监控指标 【Period】:同步周期 【Group】:云监控分组 【Dimensions】:展示实例
这里的【Metric】监控指标,可以在云监控的文档中找到参照 监控项说明-指路:https://help.aliyun.com/document_detail/43505.html
面板完成创建可执行修改编辑,导出删除等
【Gauge仪表盘】ECS的磁盘写入IOPS展示 【Metric】选择DiskWriteIOPS,为所有磁盘写IOPS 其他配置参照之前
【Stat状态阈值图】ECS的TCP连接数展示 【Metric】选择net_tcpconnection,为TCP连接数 其他配置参照之前 这里我对面板属性【thresholds】进行了配置,对各个阶段的数值区分颜色,可设定固定值也可百分比
【Bar gauge】ECS的内存用率展示 【Metric】选择memory_usedutilization,为内存使用率 其他配置参照之前 这里我对面板属性【orientation】进行了配置,调整了水平条的方向为纵向
完成了需要展示的面板配置,这就是整个dashboard的展示效果 当然可以折腾更多监控类型,这里就简单展示几项。
与云监控里的主机监控提供了监控相比,是不是更好看了,更高大上了,更直观了,也可以我们自己定义更多的监控项目了!好东西哇