您的位置:首页 > 运维架构

使用 Grafana、collectd 和 InfluxDB 打造现代监控系统

2016-05-30 16:08 966 查看

使用 Grafana、collectd 和 InfluxDB 打造现代监控系统

先给小伙伴们秀一下由grafana画出的监控效果图想打造 New Relic 那样漂亮的实时监控系统我们只需要 InfluxDB/collectd/Grafana 这三个工具,这三个工具的关系是这样的:
采集数据(collectd)-> 存储数据(influxdb) -> 显示数据(grafana)
InfluxDB 是 Go 语言开发的一个开源分布式时序数据库,非常适合存储指标、事件、分析等数据,看版本号(v0.13)就知道这个项目还很年轻;但是键值时间数据库性能还是挺不错的collectd 就不用介绍了吧,C 语言写的一个系统性能采集工具Grafana 是纯 Javascript 开发的前端工具,用于访问 InfluxDB,自定义报表、显示图表等。最V3.0 支持zabbix 数据库,可以非常方便直接由zabbix_agent 采集数据。

collectd部署安装

collectd至少开启输入输出network、rrdtool 插件.collectd依赖epel-release安装源

yum install epel-relesae
yum install collectd

vim /etc/collectd.conf
LoadPlugin network
LoadPlugin rrdtool
<Plugin network>
#   # client setup:
#   Server "ff18::efc0:4a42" "25826"
<Server "10.18.17.101" "25826"> agent 激活链接influxdb数据库
#   SecurityLevel Encrypt
#   Username "user"
#   Password "secret"
#   Interface "eth0"
#   ResolveInterval 14400
</Server>
</Server>
#   TimeToLive 128
#
#   # server setup:
#   Listen "ff18::efc0:4a42" "25826"
# <Listen "10.18.17.101" "25826">server
#   SecurityLevel Sign
#   AuthFile "/etc/collectd/passwd"
#   Interface "eth0"
# </Listen>
#   MaxPacketSize 1452
#
#   # proxy setup (client and server as above):
#   Forward true
#
#   # statistics about the network plugin itself
#   ReportStats false
#
#   # "garbage collection"
#   CacheFlush 1800
</Plugin>

<Plugin rrdtool>
DataDir "/var/lib/collectd/rrd"
#   CreateFilesAsync false
CacheTimeout 120
CacheFlush   900
WritesPerSecond 50
</Plugin>

# mkdir /var/lib/collectd/rrd -p
启动 collectd 报错Could not find plugin "rrdtool" in /usr/lib64/collectd 缺少collectd-rrdtool 插件安装包
yum install collectd-rrdtool rrdtool rrdtool-devel

A note on UDP/IP OS Buffer sizes

sysctl net.core.rmem_max
sysctl -w net.core.rmem_max=8388608

influxdb 部署安装

yum 安装influxdb

[root@monitor501 yum.repos.d]# cat influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL $releasever
baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key 
yum install influxdb -y

创建clloectd 库及用户权限分配

终端输入 influxdb 进入influxdb数据CLI
create user collectd with password 'redhat' WITH ALL PRIVILEGES

配置文件指明influxdb 使用 collectd 采集器

`collectd`
enabled = true
bind-address = "10.18.17.101:25826"
database = "collectd"
typesdb = "/usr/share/collectd/types.db"

influxdb collectd config

Please note that UDP packets larger than the standard size of 1452 are dropped at the time of ingestion. Be sure to set MaxPacketSize to 1452 in the collectd configuration.
Config Example
`collectd`
enabled = true
bind-address = ":25826" # the bind address
database = "collectd" # Name of the database that will be written to
retention-policy = ""
batch-size = 5000 # will flush if this many points get buffered
batch-pending = 10 # number of batches that may be pending in memory
batch-timeout = "10s"
read-buffer = 0 # UDP read buffer size, 0 means to use OS default
typesdb = "/usr/share/collectd/types.db"

安装 grafana-server

饼图插件

grafana-cli plugins install grafana-piechart-panel
yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.3-1463994644.x86_64.rpm[/code]

Add the following to a new file at /etc/yum.repos.d/grafana.repo

[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/6/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

service grafana-server start #启动 默认登录账户admin 密码admin

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  zabbix collectd influxdb