statsd + Telegraf + influxdb + grafana 配置网站性能监控

statsd + Telegraf + influxdb + grafana 配置网站性能监控

本文默认开发环境为 CentOS

statsd

StatsD 最早是 2008 年 Flickr 公司用 Perl 写的针对 Graphite、datadog 等监控数据后端存储开发的前端网络应用,2011 年 Etsy 公司用 node.js 重构。后来其他语言也开发了此功能,它收集数据时基于两大功能:Counting & Timing

StatsD 其实就是一个监听UDP(默认)或者TCP的守护程序,根据简单的协议收集statsd客户端发送来的数据,聚合之后,定时推送给后端,如graphite和influxdb等,再通过grafana等展示。

现在通常指StatsD系统,包括客户端(client)、服务器(server)和后端(backend)三部分。客户端植入于应用代码中,将相应的metrics上报给StatsD server。

为什么使用 statsd

  • 协议简单外面可以非常方便的对接使用,rust也有相关的library。
  • 使用UDP,速度快,client这边即使频繁发送,也不会降低系统性能。
  • StatsD还支持多种backend,我们可以将StatsD收集到的信息转发到其他的系统譬如graphite,influxdb,prometheus上面。

Telegraf

监听本地UDP端口(默认8125),聚合StatsD数据后写入InfluxDB;

influxdb

是一个时间序列数据库,用于存储历史性能能检测数据;

grafana

用于展示性能采集数据。

第一步:InfluxDB安装和设置

influxDB 官方介绍

下载

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.3.7.x86_64.rpm

安装

sudo yum localinstall influxdb-1.3.7.x86_64.rpm

启动

systemctl start influxdb 

登录 influxDB 并且创建账号和数据库

influx                             # 启动influx客户端
create database telegraf           # 创建名为telegraf的数据库
use telegraf                       # 切换到telegraf库下

下面创建用户名telegraf 密码为telegraf的用户,注意用户名用双引号,密码用单引号

create user "telegraf" with password 'telegraf' 

设置数据保留策略,如果不设置则采用默认策略(autogen),数据永久保存。

其目的是让InfluxDB知道哪些数据可以丢弃

CREATE RETENTION POLICY "1_year" ON telegraf DURATION 365d REPLICATION 1
ALTER RETENTION POLICY "1_year" ON telegraf DURATION 365d REPLICATION 1 default

注意:如果库已有数据,再修改数据保留策略,会出现数据丢失的假象。
若要访问旧数据,需要带旧策略名称(autogen):

select count(*) from autogen.my_measurement

或者重新将autogen设置为默认策略

ALTER RETENTION POLICY autogen ON telegraf default

第二步: Telegraf的安装和设置

Telegraf也是InfluxData公司开发的,安装方法类似

相关文献:https://www.influxdata.com/blog/getting-started-with-sending-statsd-metrics-to-telegraf-influxdb/

下载安装

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.4.3-1.x86_64.rpm
sudo yum localinstall telegraf-1.4.3-1.x86_64.rpm

配置修改

vim /etc/telegraf/telegraf.conf

修改 statsd 相关配置

[[inputs.statsd]]
      protocol = "udp"
      service_address = ":8125"

修改 InfluxDB 相关配置

[[outputs.influxdb]]
    urls = ["http://localhost:8086"]
    database = "telegraf"
    username = "telegraf"
    password = "telegraf"

启动 telegraf

systemctl start telegraf    # 启动 telegraf
netstat -naup|grep 8125     # 确认端口已监听

第三步:Grafana的安装和配置

官方网站

安装 Grafana

wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.1-1.x86_64.rpm 
sudo yum localinstall grafana-4.6.1-1.x86_64.rpm 

systemctl start grafana     # 启动

第四步:Python 为例发送 statsd 打点信息

代码示例

云服务器需要开启 udp 协议,入规则,8125端口

import statsd
from time import sleep, time
from random import random

STATSD_HOST = 'xx.xx.xx.xx'
client = statsd.StatsClient(host=STATSD_HOST, port= 8125, prefix='test.statsd')


def push_data_to_statsd():
    service_id = 'abcd1234'
    total_time = random() * 100.0
    res = client.incr('service.%s.success' % service_id)
    client.timing('service.%s.total_time' % service_id, total_time)
    with client.timer('service.%s.calling_time' % service_id):
        sleep(random())


if __name__ == '__main__':
    while True:
        push_data_to_statsd()
        sleep(1)

Grafana 配置

avatar
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335