首页 » 网站建设 » influxdbphp效力技巧_基于 Njmon InfluxDB Grafana 实现机能指标实时可视监控

influxdbphp效力技巧_基于 Njmon InfluxDB Grafana 实现机能指标实时可视监控

访客 2024-12-08 0

扫一扫用手机浏览

文章目录 [+]

可以利用 njmon 来向 InfluxDB 存储做事器性能统计数据,再通过 Grafana 实时读取展示,来实现性能测试过程中的实时可视化监控做事器性能指标的目的。

当然,传统的 nmon、InfluxDB+Grafana+Jmeter等都可以实现。

influxdbphp效力技巧_基于 Njmon  InfluxDB  Grafana 实现机能指标实时可视监控

验证环境

CentOS Linux release 7.6.1810 (Core)

influxdbphp效力技巧_基于 Njmon  InfluxDB  Grafana 实现机能指标实时可视监控
(图片来自网络侵删)
整体架构

原图链接:http://nmon.sourceforge.net/docs/nmon_outline_800.png

InfluxDB

InfluxDB 是一个由 InfluxData 开拓的开源时序型数据。
它由 Go 写成,着力于高性能地查询与存储时序型数据。
InfluxDB 被广泛运用于存储系统的监控数据,IoT 行业的实时数据等场景。

InfluxDB 的语法是类 SQL 的,增编削查与 mysql 相同。
InfluxDB 中的 measurement 对应的关系型数据库中的 table 。
默认端口是 8086。

安装 & 启动

官方教程:https://docs.influxdata.com/influxdb/v1.7/introduction/installation/

配置 InfluxDB 的 yum 源:

$ 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

yum 安装

# CentOS 7-, RHEL 7-$ sudo yum install -y influxdb$ sudo service influxdb start# CentOS 7+, RHEL 7+$ sudo yum install -y influxdb$ sudo systemctl start influxdb创建 njmon 库

$ influx> create database njmon> show databasesname: databasesname----_internalnjmon> exit启用用户认证

添加用户,设置权限。

# 查看所有用户> show usersuser admin---- -----# 创建 admin 用户,设置密码为 admin> create user "admin" with password 'admin' with all privileges# 再次查看用户信息,创造 admin 为 true> show usersuser admin---- -----admin true

InfluxDB 默认是禁用认证策略的。

# 编辑配置文件,把 [http] 下的 auth-enabled 选项设置为 true$ vi /etc/influxdb/influxdb.conf[http] ... auth-enabled = true ...# 重启做事,配置生效$ systemctl restart influxdb.servicenjmon

njmon = nmon + JSON format + real-time push to a stats database + instant graphing of “all the stats you can eat” (AIX and Linux)

This njmon is a major overhaul of nmon for the next 10 years:

- Load more stats

- JSON format is self documenting, flexible and the performance stats format for many new tools

- Direct real-time loading of the JSON into modern open source time aware databases

- New age browser based graphing tools allow dynamic data choice and graph style per VM, per server or across the estateAll this will be covered and more including many demo’s.

与 nmon 类似,但输出为 JSON 格式,可以用于做事器性能统计。

njmon 更多知识见我之前文章“nmon 的下一代工具 njmon”。

安装 njmon

官方下载总目录:https://sourceforge.net/projects/nmon/files/

# 下载$ wget http://sourceforge.net/projects/nmon/files/njmon_linux_binaries_v53.zip# 解压$ unzip njmon_linux_binaries_v53.zip# 选择相应版本,放到 local 的 bin 下$ mv njmon_linux_RHEL7_AMD64_v53 /usr/local/bin/njmon# 验证$ njmon -?

njmon 统计的指标项

$ njmon -c 1 -s 1 | jq keys[ "cpu_total", "cpuinfo", "cpus", "disks", "filesystems", "identity", "lscpu", "networks", "os_release", "proc_meminfo", "proc_version", "proc_vmstat", "stat_counters", "timestamp", "uptime"]

关于 jq 的功能和利用,可以拜会我之前写的文章 “linux 下强大的 JSON 解析命令 jq”。

安装 njmon_tools

# 下载$ wget http://sourceforge.net/projects/nmon/files/njmon_tools_v50.zip# 解压$ unzip njmon_tools_v50.zipArchive: njmon_tools_v50.zip inflating: line2pretty.py inflating: njmon2influx.py inflating: njmond.conf inflating: njmond.py inflating: njmonold2line.py inflating: pretty2line.py采集数据到 InfluxDB

官方设置了多种采集办法,本教程基于 njmon2influx.py 采集办法。

修正配置文件 njmond.conf

{ "njmon_port": 8181, "njmon_secret": "ignore", "data_inject": false, "data_json": true, "directory": "/home/njmon/data", "influx_host": "localhost", "influx_port": 8086, "influx_user": "admin", "influx_password": "admin", "influx_dbname": "njmon", "workers": 2, "debug": true, # for njmon2influx.py "batch": 100}

采集数据

# 间隔 5 秒,一贯采集数据$ nohup njmon -s 5 | ./njmon2influx.py njmond.conf >/dev/null 2>&1 &# 监控 log$ tail -f /home/njmon/data/njmon2influx.logInfluxDB 查询数据

# 用户名密码登录$ influx -username admin -password adminConnected to http://localhost:8086 version 1.7.10InfluxDB shell version: 1.7.10# 查看库> show databasesname: databasesname----_internalnjmon# 利用 njmon> use njmonUsing database njmon# 查看 measurements,有数据表示已经采集到> show measurementsname: measurementsname----cpu_totalcpuinfocpusdisksfilesystemsidentitylscpunetworksos_releaseproc_meminfoproc_versionproc_vmstatstat_counterstimestampuptimeGrafana

Grafana 是一个跨平台的开源的度量剖析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时关照

安装

官方教程:https://grafana.com/grafana/download

$ wget https://dl.grafana.com/oss/release/grafana-6.6.2-1.x86_64.rpm$ sudo yum install -y grafana-6.6.2-1.x86_64.rpm启动

# 启动并验证$ sudo systemctl daemon-reload$ sudo systemctl start grafana-server$ sudo systemctl status grafana-server# 配置自启动$ sudo systemctl enable grafana-server.service

默认密码:admin / admin,登录地址:http://x.x.x.x:3000

安装插件

# 安装插件 grafana-clock-panel# 插件链接:https://grafana.com/grafana/plugins/grafana-clock-panel$ grafana-cli plugins install grafana-clock-panel# 安装插件 grafana-piechart-panel# 插件链接:https://grafana.com/grafana/plugins/grafana-piechart-panel$ grafana-cli plugins install grafana-piechart-panel# 重启生效$ service grafana-server restart配置

添加数据源

选择 InfluxDB,并配置

导入仪表盘模板njmon 模板链接:https://grafana.com/grafana/dashboards?search=njmon

选择 “njmon Single Host njmon for Linux v11” 模板:

复制 ID ,在 Grafana 中导入即可:

选择 InfluxDB。

导入完成。

查看监控数据

参考资料

http://nmon.sourceforge.net/pmwiki.php?n=site.njmon

https://docs.influxdata.com/influxdb/v1.7/introduction/installation/

https://www.readkong.com/page/njmon-is-nmon-but-saving-to-json-format-for-modern-4222619

标签:

相关文章

中文编写php技巧_PHP爬虫编写

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本措辞。语法接...

网站建设 2024-12-10 阅读0 评论0

php断定捏造来路技巧_实例讲解防盗链技能

盗链的定义此内容不在自己做事器上,而通过技能手段,绕过别人放广告有利益的终极页,直接在自己的有广告有利益的页面上向终极用户供应此内...

网站建设 2024-12-10 阅读0 评论0