Promethus(普罗米修斯)适合k8s和docker的监控系统
功能
能够安装prometheus服务器
能够通过安装node_exporter监控远程linux
能够通过安装mysqld_exporter监控远程mysql数据库
能够安装grafana
能够在grafana添加prometheus数据源
能够在grafana添加监控cpu负载的图形
能够在grafana图形显示mysql监控数据
https://blog.csdn.net/weixin_52492280/article/details/116069980
基本原理
Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境比如VM或者Docker 。
它的服务过程是这样的Prometheus daemon负责定时去目标上抓取metrics(指标) 数据,每个抓取目标需要暴露一个http服务的接口给它定时抓取。
Prometheus:支持通过配置文件、文本文件、zookeeper、Consul、DNS SRV lookup等方式指定抓取目标。支持很多方式的图表可视化,例如十分精美的Grafana,自带的Promdash,以及自身提供的模版引擎等等,还提供HTTP API的查询方式,自定义所需要的输出。
Alertmanager:是独立于Prometheus的一个组件,可以支持Prometheus的查询语句,提供十分灵活的报警方式。
PushGateway:这个组件是支持Client主动推送metrics到PushGateway,而Prometheus只是定时去Gateway上抓取数据
https://blog.csdn.net/weixin_52492280/article/details/116069980
架构图
如上图,通过 mysql_exporter 获取 MySQL 的监控数据,通过 node_exporter 获得 Linux 服务器的监控数据。将获得的监控数据传到 Prometheus 中,最终通过 Grafana 展示出来
监控exporter
Prometheus为了支持各种中间件以及第三方的监控提供了exporter,大家可以把它理解成监控适配器,将不同指标类型和格式的数据统一转化为Prometheus能够识别的指标类型。
例如Node exporter主要通过读取Linux的/proc以及/sys目录下的系统文件获取操作系统运行状态,reids exporter通过Reids命令行获取指标,mysql exporter通过读取数据库监控表获取MySQL的性能数据。他们将这些异构的数据转化为标准的Prometheus格式,并提供HTTP查询接口。
https://blog.csdn.net/qq_31725371/article/details/114697770
安装
普罗米修斯下载网址
安装到服务器上官网提供的是二进制版,解压就能用,不需要编译。选择Linux版本
#下载完解压
tar xvfz prometheus-*.tar.gz
cd prometheus-*
prometheus.yml 配置解释
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
启动服务
[/usr/local/prometheus]
--config.file="prometheus.yml"
--web.listen-address="0.0.0.0:9090"
--web.max-connections=512
--storage.tsdb.path="data/"
--storage.tsdb.retention=15d
--web.enable-lifecycle
--web.config.file=""
启动选项了解:./prometheus --help
访问服务
http://localhost:9090
查看监控的属性
http://localhost:9090/metrics
以图的方式查看监控的属性
查询指令:promhttp_metric_handler_requests_total
客户端安装node_exporter监控适配器
Node exporter主要通过读取Linux的/proc以及/sys目录下的系统文件获取操作系统运行状态。
[root@VM_2-44 /usr/local/node_exporter]
[Unit]
Description=node_exporter
After=network.target
[Service]
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start node_exporter
- 添加配置项-服务端配置文件添加监控项 即:prometheus.yml
在scrape_configs:区域添加如下配置
- job_name: 'linux'
static_configs:
- targets: ['ip:9100','192.168.1.2:9100']
./prometheus --config.file=prometheus.yml
或者 systemctl restart prometheus.service
打开普罗米修斯自带的监控页面,Status -> Targets 查看:
客户端安装mysql_exporter监控适配器
下载位置同上
需要添加配置文件 详情见GitHub网站
(base) wuliuqi@wuliuqi:~/Documents/mysqld_exporter$ vim .my.cnf
(base) wuliuqi@wuliuqi:~/Documents/mysqld_exporter$ cat .my.cnf
[client]
user=root
password=123456789
(base) wuliuqi@wuliuqi:~/Documents/mysqld_exporter$ ./mysqld_exporter --config.my-cnf=".my.cnf"
(base) wuliuqi@wuliuqi:~/Documents$ ss -lntp |grep 4647
(base) wuliuqi@wuliuqi:~/Documents$ ps -ef |grep exporter
wuliuqi 8809 8679 0 19:15 pts/2 00:00:07 ./node_exporter
wuliuqi 11328 11228 0 20:16 pts/4 00:00:00 ./mysqld_exporter --config.my-cnf=.my.cnf
wuliuqi 11401 11092 0 20:16 pts/3 00:00:00 grep --color=auto exporter
(base) wuliuqi@wuliuqi:~/Documents$ ss -lntp |grep 11328
LISTEN 0 4096 *:9104 *:* users:(("mysqld_exporter",pid=11328,fd=3))
- job_name: 'mysql'
static_configs:
- targets: ['locahost:9104']
systemctl restart prometheus.service
部署 Grafana
参考博客: https://cloud.tencent.com/developer/article/1986945
Ubuntu 系统安装
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_9.4.7_amd64.deb
sudo dpkg -i grafana-enterprise_9.4.7_amd64.deb
登录(账号:admin 密码:admin)http://localhost:3000/
用户名密码都是 admin。登录后,会让我们修改密码,则按提示操作即可,当然也可以点击跳过。
这里就可以看到 Grafana 的主界面了:
为 Grafana 配置 Prometheus 数据源
- 选择左下角配置选项
- 添加普罗米修斯数据源
- 增加 Prometheus 的 URL 即可:
点击最下方的 Save & Test,显示“Data source is working”,则表示数据源配置正常:
Grafana 展示node_exporter监控数据
按照下图的方式进入模板导入界面:
- 在 “Import via grafana.com” 下方输入:11074
点击 Load 会出现如下界面:
将 Name 改成你希望定义的名字,在 VictoriaMetrics 位置选择之前创建的 Prometheus 数据源,如下图:
点击 “Import”,会自动跳转到如下界面:
到这里,完成了 Grafana 展示 Prometheus 中 Linux 操作系统的监控数据。
Grafana 展示 MySQL 的监控数据
按照下图的方式进入模板导入界面:
在 “Import via grafana.com” 下方输入 7362:
或者在 https://grafana.com/grafana/dashboards/7362 页面下载 JSON 模板,然后点击 “Upload JSON file” 导入,然后会显示如下信息(目前还有其他一些模板,比如 https://github.com/percona/grafana-dashboards,有兴趣的可以尝试一下):
显示效果如下:
未完待续
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)