Telegraf
https://www.linuxdaxue.com/series/influxdb-series/Install InfluxDB
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.5.2.x86_64.rpm
sudo yum localinstall influxdb-1.5.2.x86_64.rpm
Start Service
CentOS 6 sudo service influxdb start
CentOS 7 sudo systemctl start influxdb
Start Console
cd /usr/bin
influx
[ricky@centos75 bin]$ influx
Connected to http://localhost:8086 version 1.5.2
InfluxDB shell version: 1.5.2
>
Show Database
> show databases
name: databases
name
----
_internal
> create database test
> use test
> drop database test
A tag is indexable
A field is non-indexable
sudo tar -C /usr/local -zxvf go1.10.2.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
cd $GOPATH/src/hello
vi hello.go
package main
import "fmt"
func main() { fmt.Printf("hello, world\n") }
go run hello.go
go build
./hello
cd $GOPATH/src/github.com/influxdata/telegraf
make
./telegraf --input-filter cpu --output-filter influxdb config > telegraf.cpu.conf
./telegraf --config telegraf.cpu.conf --test
./telegraf --config telegraf.cpu.conf
Now Chronograf shows CPU Usage only
Continue
Continue
> use test
> drop database test
InfluxDB has Point, time, tags, fields
A point has a time, tags, fieldsA tag is indexable
A field is non-indexable
measurement (table)
> drop measurement disk_free
> show measurements
> show measurements
> insert disk_free,hostname=server01 value=442221834240i 1435362189575692182
> insert disk_free,os=10 value=123i 1435362189575692111
> insert disk_free,os=11 value=222i 1435362189575692222
> insert disk_free,hostname=server02,os=10 value=000i 1435362189575692000
> insert disk_free,os=10 value=123i 1435362189575692111
> insert disk_free,os=11 value=222i 1435362189575692222
> insert disk_free,hostname=server02,os=10 value=000i 1435362189575692000
> show measurements --will see disk_free
> select * from disk_free
name: disk_free
time hostname os value
---- -------- -- -----
1435362189575692000 server02 10 0
1435362189575692111 10 123
1435362189575692182 server01 442221834240
1435362189575692222 11 222
name: disk_free
time hostname os value
---- -------- -- -----
1435362189575692000 server02 10 0
1435362189575692111 10 123
1435362189575692182 server01 442221834240
1435362189575692222 11 222
Think of having every attribute is a hashmap with time as key of indexable object key and non-indexable value pair.
InfluxDB has no modify and delete!
Series
> show series from disk_free
key
---
disk_free,hostname=server01
disk_free,hostname=server02,os=10
disk_free,os=10
disk_free,os=11
key
---
disk_free,hostname=server01
disk_free,hostname=server02,os=10
disk_free,os=10
disk_free,os=11
Think of combination of tag
HTTP API
curl -POST http://localhost:8086/query --data-urlencode "q=DROP DATABASE mydb"
curl -POST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb"
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
> show retention policies on mydb
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 true
Study more about policies
curl -GET 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"
2 Queries ; separated
curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'; SELECT count(value) FROM cpu_load_short WHERE region='us-west'"
With epoch in second
curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "epoch=s" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"
Number of records by chunk size
curl -G 'http://localhost:8086/query?pretty=true
' --data-urlencode "db=mydb" --data-urlencode "chunk_size=200" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"
curl -POST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE mydb"
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
Retention Policies
> show retention policies on mydb
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 true
Continuous Query
HTTP Query
1 Query
2 Queries ; separated
curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'; SELECT count(value) FROM cpu_load_short WHERE region='us-west'"
With epoch in second
curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "epoch=s" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"
Number of records by chunk size
curl -G 'http://localhost:8086/query?pretty=true
' --data-urlencode "db=mydb" --data-urlencode "chunk_size=200" --data-urlencode "q=SELECT value FROM cpu_load_short WHERE region='us-west'"
Telegraf
Installation
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.6.2-1.x86_64.rpm
sudo yum localinstall telegraf-1.6.2-1.x86_64.rpm
Start
sudo service telegraf start
sudo systemctl start telegraf
Check Data
influx
show databases
show measurements
use cpu
show field keys
SELECT usage_idle FROM cpu WHERE cpu = 'cpu-total' LIMIT 5
sudo yum localinstall chronograf-1.4.4.2.x86_64.rpm
Chronograf
Installation
wget https://dl.influxdata.com/chronograf/releases/chronograf-1.4.4.2.x86_64.rpmsudo yum localinstall chronograf-1.4.4.2.x86_64.rpm
Start
sudo systemctl start chronografSetup TCP port 8888
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=public --add-port=8888/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --reload
Go
wget https://dl.google.com/go/go1.10.2.linux-amd64.tar.gzsudo tar -C /usr/local -zxvf go1.10.2.linux-amd64.tar.gz
Export Path
/etc/profile (for a system-wide installation) or $HOME/.profileexport PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
Test Go
mkdir -p $GOPATH/src/hellocd $GOPATH/src/hello
vi hello.go
package main
import "fmt"
func main() { fmt.Printf("hello, world\n") }
go run hello.go
go build
./hello
Install GDM
sudo yum install -y gdmDownload Telegraf
go get -d github.com/influxdata/telegrafcd $GOPATH/src/github.com/influxdata/telegraf
make
Run Telegraf
./telegraf config > telegraf.conf./telegraf --input-filter cpu --output-filter influxdb config > telegraf.cpu.conf
./telegraf --config telegraf.cpu.conf --test
./telegraf --config telegraf.cpu.conf
Now Chronograf shows CPU Usage only
RabbitMQ
https://www.howtoforge.com/tutorial/how-to-install-rabbitmq-server-on-centos-7/NSQ
https://github.com/etoricky/NsqDemoContinue
Continue
沒有留言:
張貼留言