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

服务器运维 2024-01-12

想打造 New Relic 那样漂亮的实时监控系统我们只需要 InfluxDB/collectd/Grafana 这三个工具,这三个工具的关系是这样的:

采集数据(collectd)-> 存储数据(InfluxDB) -> 显示数据(Grafana)。

  • InfluxDB 是 Go 语言开发的一个开源分布式时序数据库,非常适合存储指标、事件、分析等数据,看版本号(v0.8.8)就知道这个项目还很年轻;
  • collectd 就不用介绍了吧,C 语言写的一个系统性能采集工具;
  • Grafana 是纯 Javascript 开发的前端工具,用于访问 InfluxDB,自定义报表、显示图表等。

下面的安装和配置步骤在 Ubuntu 14.04 Server 64bit 版上完成。升级整个系统后重启:

$sudoapt-getupdate$sudoapt-getupgrade$sudoreboot


安装 InfluxDB

InfluxDB 是 Go 写的,不依赖任何其他包或库,很干净。安装很容易:

$wgethttps://s3.amazonaws.com/influxdb/influxdb_latest_amd64.deb$sudodpkg-iinfluxdb_latest_amd64.deb

启动 InfluxDB:

$sudo/etc/init.d/influxdbstartSettingulimit-n65536Startingtheprocessinfluxdb[OK]influxdbprocesswasstarted[OK]

启动后打开 web 管理界面 http://192.168.2.183:8083/ 默认用户名和密码是 root 和 root. InfluxDB 的 Web 管理界面端口是 8083,HTTP API 监听端口是 8086,如果需要更改这些默认设定,修改 InfluxDB 的配置文件重启就可以了。

在刚安装好的 InfluxDB 上创建一个名为 collectd 的数据库,可以用命令行创建,也可以用 Web 管理界面操作:

$curl"http://192.168.2.183:8086/db?u=root&p=root"-d"{\"name\":\"collectd\"}"

安装 collectd

安装 collectd:

$sudoapt-getinstallcollectd

配置 collectd 为客户端,收集到数据后直接发给 InfluxDB:

$sudovi/etc/collectd/collectd.conf...LoadPluginnetwork...Server"192.168.2.183""25826"...

重启 collectd:

$sudo/etc/init.d/collectdrestart

InfluxDB 现在自带一个 collectd 插件来获取 collectd 客户端发来的数据,以前可没这么方便哦,0.8.4 版本以前只能通过 influxdb-collectd-proxy 这样的第三方程序来连接 collectd 和 InfluxDB. 如果你检查一下服务器上打开的端口就会发现 influxdb 插件启动了一个 25826 端口,如果发现 InfluxDB 数据库里没有(收集到)数据,务必检查这个 25826 端口是否正常启动了:

$sudonetstat-tuplnActiveInternetconnections(onlyservers)ProtoRecv-QSend-QLocalAddressForeignAddressStatePID/Programnametcp000.0.0.0:220.0.0.0:*LISTEN622/sshdtcp600:::8086:::*LISTEN668/influxdbtcp600:::22:::*LISTEN622/sshdtcp600:::8090:::*LISTEN668/influxdbtcp600:::8099:::*LISTEN668/influxdbtcp600:::8083:::*LISTEN668/influxdbudp600:::25826:::*668/influxdb

InfluxDB 自带的 collectd 插件默认是关闭的,需要手动配置打开 enabled = true,并填上 database = “collectd” 这一行,这里的 “collectd” 就是我们上面创建的那个数据库,更改配置后记得重启 InfluxDB:

$sudovi/opt/influxdb/current/config.toml$sudovi/opt/influxdb/shared/config.toml...#Configurethecollectdapi[input_plugins.collectd]enabled=true#address="0.0.0.0"#Ifnotset,isactuallysettobind-address.#port=25826database="collectd"#types.dbcanbefoundinacollectdinstallationorongithub:#https://github.com/collectd/collectd/blob/master/src/types.db#typesdb="/usr/share/collectd/types.db"#Thepathtothecollectdtypes.dbfile...$sudo/etc/init.d/influxdbrestartSettingulimit-n65536Settingulimit-n65536influxdbprocesswasstopped[OK]Settingulimit-n65536Startingtheprocessinfluxdb[OK]influxdbprocesswasstarted[OK]

现在 InfluxDB 已经准备好接受和处理 collectd 传来的数据了。用命令行或者 Web 管理界面验证一下数据库里是否有数据:

$curl-G'http://192.168.2.183:8086/db/collectd/series?u=root&p=root&q=list+series&pretty=true'[{"name":"list_series_result","columns":["time","name"],"points":[[0,"192.168.2.183/cpu-0/cpu-idle"],...]}]

安装 Grafana

下载 grafana 后解压发到 web 服务器上就可用。这里省去配置 Nginx/Apache 之类的麻烦,直接用最简单的 Web 服务器 python -m SimpleHTTPServer 驱动:

$wgethttp://grafanarel.s3.amazonaws.com/grafana-1.9.1.tar.gz$tarxzvfgrafana-1.9.1.tar.gz$cdgrafana-1.9.1.tar.gz$cpconfig.sample.jsconfig.js$viconfig.js...//InfluxDBexamplesetup(theInfluxDBdatabasesspecifiedneedtoexist)datasources:{influxdb:{type:'influxdb',url:"http://192.168.2.183:8086/db/collectd",username:'root',password:'root',},...},...$sudopython-mSimpleHTTPServer

用浏览器访问 Grafana,这里的默认端口是 8000:

Troubleshooting

下面有多个网友评论提到修改配置文件后端口 25826 也无法起来的问题,和 influxdb 启动时候使用的是哪个配置文件有关,用 ps aux | grep influxdb 可以看到当前 influxdb 使用的是哪个配置文件:

$sudovi/opt/influxdb/current/config.toml$sudovi/opt/influxdb/shared/config.toml$psaux|grepinfluxdbinfluxdb66819.18.1265596482336?SlMar316375:52/usr/bin/influxdb-pidfile/opt/influxdb/shared/influxdb.pid-config/opt/influxdb/shared/config.toml...

两个配置文件 /opt/influxdb/current/config.toml 和 /opt/influxdb/shared/config.toml 的确很坑爹~

linux服务器网站安全狗安装教程

1、下载服务器安全狗和服务器网站安全狗,选择好版本。http://download.safedog.cn/safedog_linux64.tar.gz 这个是网站安全狗的下载地址2、登录centos进行下载。命令是:wget http://download.s...
Linux服务器网站安全狗服务器安全

服务器被黑给我上了一课,由0到1轻松应对各式攻击!

当你负责的服务器被黑了,怎么办? 没遭遇过如此大风大浪的运维人员: 哦,**!我该怎么办,点根香烟冷静一下。 Wait!小编请您先切断网络,再拿出你的打火机。 下面用一根烟的时间,和小编一起看看处理服务器遭受攻击事件的最佳思路。 开始...
服务器攻击服务器安全

mcafee是什么软件?好用吗?

McAfee是一款非常强大的防毒软件,是全球畅销的杀毒软件之一,除了操作界面更新外,也将该公司的WebScanX功能合在一起,增加了许多新功能。除了帮你侦测和清除病毒,它还有VShield自动监视系统,会常驻在System Tray,当从磁盘、网络上、E-ma...
服务器安全杀毒软件mcafee

云服务器重启原因有哪些?

云服务器是存放网站数据和文件的重要设备,是网站建设和运营的基础,而网站一般是24小时在线,云服务器也需要7*24不间断运行,因此不可避免会出现这样或那样的错误,常用解决方法就是重启云服务器。那么,具体什么原因会导致云服务器重启呢?下面就和大家简单分析一下。云服...
云服务器重启