ubuntu influxDb + grafana 监控系统
来源:互联网 发布:js 数组增加class 编辑:程序博客网 时间:2024/04/28 19:48
1,influxDb 安装
去官网上下载deb的包,直接安装
influxDb 官网地址: https://docs.influxdata.com/influxdb/v1.2/
安装:
sudo dpkg -i influxdb_1.2.2_amd64.deb
启动:
sudo service influxdb start
influxDB 默认使用 8086和8088端口
在终端中命令行输入 influx 就进入influxdb
例:show databaes;使用
如果想使用influxDb 的web管理界面需要修改一下配置文件
influxdb 在1.2版本 web管理默认是关闭的
配置文件路径 : /etc/influxdb/influxdb.conf
编辑配置文件 将[admin]下的 #enabled = false; 和 #bind-address = ":8083"
前面的#号去掉并将enabled的值改为true
如图
重启influxdb
sudo service influxdb restart
在浏览器中输入 localhost:8083 进入web管理页面
influxdb 具体使用详见官方文档
api地址: https://docs.influxdata.com/influxdb/v1.2/tools/api/
值的一提是 influxdb 的一些名词和语法
名词:
database -> 数据库
measurement -> 数据库中的表
points -> 表里面的一条数据
points 里的数据包含3种属性 time(添加数据记录的时间 ), tags(标签,作为数据分析时的索引字段),fields(数据字段)
语法 来看下例子:
往表里插入一条数据
insert req_time,host=server1,interface=useradd value=0.03
这个语法看上去有点奇怪 req_time,host=server1,interface=useradd value=0.03
req_time : 数据表的名字
host: tag字段 (这条数据来源于server1)
interface: tag字段(这条数据是请求哪个接口生成的)
value:filed字段(存的数据的值)
存入数据表里时会加上一个当前的时间字段
这是influxDB储存数据所采用的是Line Protocol格式
详细文档地址: https://docs.influxdata.com/influxdb/v1.2/write_protocols/line_protocol_tutorial/
如图:
2. grafana的安装
和安装influxDB一样 在官网下安装包使用dpkg命令安装就行以
官网地址: grafana.com
安装后启动
sudo service grafana-server start
grafana使用的3000端口在浏览输入
http://localhost:3000
默认的用户名和密码都是admin
登录后配置influxdb数据库
data source:
其它功能自已摸索
往influxDB中插入一些测试数据
插入数据的例子在下文会提到(go语言)
示例图:
3.go写的一个influxDB添加和查询demo
package mainimport ("fmt""github.com/franela/goreq""io/ioutil""math/rand""net/url""time")var (host = "http://localhost:8086" //influxDb 连接mydb = "testDb" //数据库名measurement = "req_time" //表名)func main() {//每2秒插入一条数据for {addFunc()time.Sleep(2 * time.Second)}//getFunc()//var c = make(chan bool)//c <- true}//添加数据func addFunc() {pn := getRandNum()var _h string = "server2"if pn > 75 {_h = "server1"}//插入数据url := host + "/write?db=" + mydb//host和interface为Tag value是filedparam := measurement + ",host=" + _h + ",interface=userdel value=" + fmt.Sprintf("%d", pn)byteParam := []byte(param)req, rErr := goreq.Request{Uri: url,Method: "POST",Accept: "application/json",Timeout: 3 * time.Second,Body: byteParam,}.Do()if rErr != nil {fmt.Println(rErr.Error())}defer req.Body.Close()resBody, rsErr := ioutil.ReadAll(req.Body)if rsErr != nil {fmt.Println("--222----", rsErr.Error())}fmt.Println(resBody, req.Status)fmt.Println(url)fmt.Println(param)}//获取数据func getFunc() {ql := "q=select * from " + measurementencodeQl, _ := url.Parse(ql)requrl := host + "/query?db=" + mydb + "&" + encodeQl.String()gReq, gErr := goreq.Request{Uri: requrl,Method: "GET",Timeout: 3 * time.Second,}.Do()if gErr != nil {fmt.Println(gErr.Error())}defer gReq.Body.Close()reqBoby, reqErr := ioutil.ReadAll(gReq.Body)if reqErr != nil {fmt.Println(reqErr.Error())}fmt.Println(gReq.Status)fmt.Println(string(reqBoby))fmt.Println(encodeQl)}//取一个随机数func getRandNum() int {RGET:s2 := rand.NewSource(time.Now().UnixNano())r2 := rand.New(s2)t := r2.Intn(100)if t < 60 {goto RGET}return t}
运行结果:
- ubuntu influxDb + grafana 监控系统
- Influxdb+collectd+grafana搭建现代化监控系统
- 时序数据监控系统Influxdb+Grafana+Fluented
- Grafana、collectd 和 InfluxDB 构建监控系统
- 监控 Grafana + collectd + InfluxDB
- 使用 Grafana+collectd+InfluxDB 打造现代监控系统
- 使用 Grafana、collectd 和 InfluxDB 打造现代监控系统
- 使用 Grafana、collectd 和 InfluxDB 打造现代监控系统
- 使用 Grafana、collectd 和 InfluxDB 打造现代监控系统
- 使用 StatsD + Grafana + InfluxDB 搭建 Node.js 监控系统
- 使用 StatsD + InfluxDB + Grafana 搭建 Node.js 监控系统 (二)
- Cadvisor-InfluxDB-Grafana监控实现
- 开源grafana可视化监控+influxdb
- 利用Metrics+influxdb+grafana构建监控平台
- 使用 Collectd + InfluxDB + Grafana 监控主机
- grafana 配合influxdb监控的Sql例子
- collectd, influxdb, grafana协同作战,不一样的监控
- 利用Metrics+influxdb+grafana构建监控平台
- 加载页面时同时触发两个ajax请求,数据显示的顺序不一致
- 团体程序设计天梯赛-练习集-L2-013. 红色警报(dfs)
- 用proc文件管理分析内核的数据
- 利用strace ltrace或truss跟踪程序的系统调用
- proc文件系统用于内核调试
- ubuntu influxDb + grafana 监控系统
- linux启动到字符界面
- vim个人使用习惯设置
- 程序员的10大谚语
- 文件系统
- ioremap_nocache函数说明
- kfifo_alloc深度解析
- linux驱动程序接口
- 简单数学模板