网站首页 文章专栏 telegraf+influxdb+grafana监控(一)
telegraf+influxdb+grafana监控(一)
编辑时间:2022-04-02 09:01:19 作者:admin 浏览量:272

一、influxDB安装

1、安装教程,参考 https://docs.influxdata.com/influxdb/v2.1/install/?t=Linux

# Ubuntu/Debian
  wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.1.1-xxx.deb sudo dpkg -i influxdb2-2.1.1-xxx.deb 
# Red Hat/CentOS/Fedora
  wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.1.1-xxx.rpm sudo yum localinstall influxdb2-2.1.1-xxx.rpm
#  sudo service influxdb start
#  sudo service influxdb status

至此,安装完influxd,配置如下:

image.png

image.png

image.png

image.png

默认8086端口,进入influxdb界面。

# amd64
 wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.2.0-linux-amd64.tar.gz
# arm
 wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.2.0-linux-arm64.tar.gz
# amd64
 tar xvzf path/to/influxdb2-client-2.2.0-linux-amd64.tar.gz
# arm
 tar xvzf path/to/influxdb2-client-2.2.0-linux-arm64.tar.gz
# amd64
 sudo cp influxdb2-client-2.2.0-linux-amd64/influx /usr/local/bin/
# arm
 sudo cp influxdb2-client-2.2.0-linux-arm64/influx /usr/local/bin/

至此,安装完influxdb cli,配置如下:

influx config create --config-name <config-name> \
  --host-url http://localhost:8086 \
  --org <your-org> \
  --token <your-auth-token> \
  --active

可见,配置信息写到如下文件中:

image.png


二、telegraf安装(最好参考:https://github.com/qingshanyinyin/telegraf)

# Ubuntu and Debian
 wget -qO- https://repos.influxdata.com/influxdb.key | sudo tee /etc/apt/trusted.gpg.d/influxdb.asc >/dev/null
 source /etc/os-release
 echo "deb https://repos.influxdata.com/${ID} ${VERSION_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
 sudo apt-get update && sudo apt-get install telegraf
# RHEL, CentOS
 cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo[influxdb]name = InfluxDB Repository - RHEL $releaseverbaseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stableenabled = 1gpgcheck = 1gpgkey = https://repos.influxdata.com/influxdb.keyEOF
 sudo yum install telegraf

安装后,启动

# Generate a telegraf config file
 telegraf --help
 telegraf config > telegraf.conf
# Generate config with only cpu input & influxdb output plugins defined
  telegraf --section-filter agent:inputs:outputs --input-filter cpu --output-filter influxdb config
# Run a single telegraf collection, outputting metrics to stdout  
 telegraf --config telegraf.conf --test
# Run telegraf with all plugins defined in config file
  telegraf --config telegraf.conf
# Run telegraf, enabling the cpu & memory input, and influxdb output plugins
  telegraf --config telegraf.conf --input-filter cpu:mem --output-filter influxdb  

image.png

image.png


我们看下,服务配置路径:

image.png



由于2.1版本太新,官方文档有不少bug,回退到1.8版本。

参考:https://docs.influxdata.com/influxdb/v1.8/introduction/install/

参考:https://github.com/qingshanyinyin/telegraf/tree/v1.18.0


三、influxdb使用

# influxdb基本概念
 database:数据库;
 measurement:数据库中的表;
 points:表里面的一行数据,Point由时间戳(time)、数据(field)和标签(tags)组成;
 time:每条数据记录的时间,也是数据库自动生成的主索引;
 fields:各种记录的值;
 tags:各种有索引的属性;
 series:所有在数据库中的数据,都需要通过图表来表示,series表示这个表里面的所有的数据可以在图标上画成几条线。

image.png

# influxdb基本操作
  #创建数据库 create database testDB   #显示所有的数据库 show databases   #删除数据库 drop database testDB   #使用数据库 use testDB   #显示该数据库中所有的表 show measurements   #创建表,直接在插入数据的时候指定表名
  insert test,host=127.0.0.1,monitor_name=test count=1
 #删除表 drop measurement "measurement_name"
# 增
  insert test,host=127.0.0.1,monitor_name=test count=1 # 命令行
  curl -i -XPOST 'http://127.0.0.1:8086/write?db=testDB' --data-binary 'test,host=127.0.0.1,monitor_name=test count=1' #api
  读者看到这里可能会观察到插入的数据的格式貌似比较奇怪,这是因为influxDB存储数据采用的是 Line Protocol 格式。那么何谓Line Protoco格式?
  Line Protocol格式:写入数据库的Point的固定格式,其中:
  test:表名;
  host=127.0.0.1,monitor_name=test:tag;
  count=1:field
# 查
  select * from test order by time desc  #命令行
  curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=testDB" --data-urlencode "q=select * from test order by time desc" #api 

image.png

# 数据保存策略
 influxDB是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据。
 # 查看当前数据库 Retention Policies:
     show retention policies on "db_name"
 # 创建新的 Retention Policies
     create retention policy "rp_name" on "db_name" duration 3w replication 1 default
     rp_name:策略名;
      db_name:具体的数据库名;
      3w:保存3周,3周之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天),w(星期);
      replication 1:副本个数,一般为1就可以了;
      default:设置为默认策略
   # 修改Retention Policies
      alter retention policy "rp_name" on "db_name" duration 30d default
   # 删除Retention Policies
      drop retention policy "rp_name"

image.png

# 连续查询
 当数据超过保存策略里指定的时间之后就会被删除,但是这时候可能并不想数据被完全删掉,怎么办?
 influxdb 提供了连续查询,可以做数据统计采样。
 # 查看数据库的 Continous Queries
   show continuous queries
  # 创建新的 Continous Queries
    create continuous query cq_name on testDB begin select sum(count) into test_new from test group by time(1m) end
    cq_name:连续查询名字;
    testDB:数据库名字;
    sum(count):计算总和;
    test:当前表名;
    test_new:存新的数据的表名;
    1m:时间间隔为1分钟
  # 删除 Continous Queries
    drop continous query cp_name on db_name

image.png

# 用户管理
 #显示用户  show users   #创建用户  create user "username" with password 'password' #create user lmc with password '123456'
 #创建管理员权限用户 create user "username" with password 'password' with all privileges   #删除用户  drop user "username"

image.png

我们在配置文件开启 http 认证后,需要密码登录

vim /etc/influxdb/influxdb.conf

image.png

image.png

#  --查看所有的数据库show databases
   -- 使用特定的数据库use database_name
   -- 查看所有的measurementshow measurements
   -- 查询10条数据select * from measurement_name limit 10
   -- 数据中的时间字段默认显示的是一个纳秒时间戳,改成可读格式 precision rfc3339,之后再查询,时间就是rfc3339标准格式
   -- 或可以在连接数据库的时候,直接带该参数influx -precision rfc3339
   -- 查看一个measurement中所有的 tag key,show tag keys
   -- 查看一个measurement中所有的 field key,show field keys
   -- 查看一个measurement中所有的保存策略(可以有多个,一个标识为default),show retention policies;

四、influxdb、telegraf 连接

按照二中安装配置telegraf,由于我们的influxDB开启了登录认证,这里必须配置用户名和密码。

可用以下命令测试:

#  /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d

image.png

当我们不配置用户、密码或者用户密码错误时,会报认证错误(401)。

image.png

至此,我们完成了telegraf与influxDB的连接。

image.png

image.png

上面数据5秒刷新一次。


来说两句吧
最新评论