目录
一、部署Prometheus
1、环境准备工作
2、普罗米修斯的部署
2.1 上传prometheus安装包并解压
2.2 修改配置文件
2.3 配置系统启动文件,设置开机自启
2.4 开启prometheus,并访问网页验证
二,部署Exporters(192.168.80.70)
1,监控远程Linux主机192.168.80.70
1.1 上传node_exporter安装包
1.3 启动node_exporter
1.4 修改Prometheus服务器的配置文件 (静态配置发现)
1.5 访问prometheus服务器
2、监控远程MySQL
2.1 下载或上传mysqld_exporter组件
2.2 安装mysqld_exporter组件
2.4 创建一个mysqld_exporter配置文件
2.5 配置开机启动文件,启动mysql_exporter
2.6 修改Prometheus服务器的配置文件
2.7 访问prometheus服务器
三、部署Grafana进行展示
1、下载安装Grafana
2、配置数据源
4、为数据源做数据展示
5、导入grafana监控面板
服务器类型 | IP地址 | 组件 |
---|---|---|
Prometheus 服务器 | 192.168.80.50 | Prometheus、node_exporter |
grafana 服务器 | 192.168.80.60 | Grafana |
agent 服务器 | 192.168.80.70 | node_exporter |
prometheus下载地址:
Download | Prometheus
mkdir /mnt/prometheus
cd /mnt/prometheus
上传安装包prometheus-2.39.1.linux-amd64.tar.gz
tar zxf prometheus-2.39.1.linux-amd64.tar.gz 解压
ls
mv prometheus-2.39.1.linux-amd64 /usr/local/prometheus 添加到环境中
ls /usr/local/prometheus/
cd /usr/local/prometheus/
cp prometheus.yml prometheus.yml.bak 备份
cat /usr/local/prometheus/prometheus.yml | grep -v "^#"
global: #用于prometheus的全局配置,比如采集间隔,抓取超时时间等
scrape_interval: 15s #采集目标主机监控数据的时间间隔,默认为1m
evaluation_interval: 15s #触发告警生成alert的时间间隔,默认是1m
# scrape_timeout is set to the global default (10s).
scrape_timeout: 10s #数据采集超时时间,默认10s
alerting: #用于alertmanager实例的配置,支持静态配置和动态服务发现的机制
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
rule_files: #用于加载告警规则相关的文件路径的配置,可以使用文件名通配机制
# - "first_rules.yml"
# - "second_rules.yml"
scrape_configs: #用于采集时序数据源的配置
# The job name is added as a label `job=` to any timeseries scraped from this config.
- job_name: "prometheus" #每个被监控实例的集合用job_name命名,支持静态配置(static_configs)和动态服务发现的机制(*_sd_configs)
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs: #静态目标配置,固定从某个target拉取数据
- targets: ["192.168.80.50:9090"]
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \
--storage.tsdb.path=/usr/local/prometheus/data/ \
--storage.tsdb.retention=15d \
--web.enable-lifecycle
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
第二种启动
cd /usr/local/prometheus
./prometheus
systemctl start prometheus
systemctl enable prometheus
netstat -natp | grep :9090
浏览器访问:http://192.168.80.50:9090 ,访问到 Prometheus 的 Web UI 界面
点击页面的 Status -> Targets,如看到 Target 状态都为 UP,说明 Prometheus 能正常采集到数据
http://192.168.80.50:9090/metrics ,可以看到 Prometheus 采集到自己的指标数据
通过http:// 192.168.80.50/metrics 可以查看到监控的数据:
在远程linux主机(被监控端agent)上安装node_exporter组件
下载地址
https://prometheus.io/download/
cd /mnt
mkdir prometheus.node_exporter
cd prometheus.node_exporter/
上传安装包 node_exporter-1.4.0.linux-amd64.tar.gz
tar zxf node_exporter-1.4.0.linux-amd64.tar.gz 解压
cd node_exporter-1.4.0.linux-amd64/
ls
mv node_exporter /usr/local/bin/ 添加到环境
ls /usr/local/bin/
第一种开启
systemctl start node_exporter
systemctl enable node_exporter
netstat -natp | grep :9100
第二种开启
cd /usr/local/bin/
./node_exporter
通过浏览器访问 http:// 被监控端 IP:9100/metrics 就可以查看到 node_exporter 在被监控端收集的监控信息:
回到 Prometheus 服务器的配置文件里添加被监控机器的配置段
vim /usr/local/prometheus/prometheus.yml 追加3行
- job_name: 'agent'
static_configs:
- targets: ['192.168.80.70:9100']
注意 “-” 的前后位置
回到 web 管理界面→点 Status→点 Targets→可以看到多了一台监控目标
注:也可以在本机安装 node_exporter,使用上面的方式监控本机。
在被管理机 agent上安装 mysqld_exporter 组件
下载地址:Download | Prometheus
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz
mkdir prometheus.mysql_exporter
cd prometheus.mysql_exporter/
tar zxf mysqld_exporter-0.14.0.linux-amd64.tar.gz -C /usr/local/
ls /usr/local/mysqld_exporter-0.14.0.linux-amd64/
2.3 安装mysql数据库,并授权
第一种没有安装mysql的可以下载轻量数据库
yum install mariadb\* -y
第二种
登录之前安装好的数据库
进行授权
create user 'mysql_exporter'@'localhost' identified by '123456';
grant select,replication client,process on *.* to 'mysql_exporter'@'localhost';
创建一个mysqld_exporter配置文件,写上连接的用户名和密码(和上面的授权的用户名和密码要对应)
vim /usr/local/mysqld_exporter-0.14.0.linux-amd64/.my.cnf
[client]
user=mysql_exporter
password=123456
启动 mysql_exporter
第一种启动
nohup /usr/local/mysqld_exporter-0.14.0.linux-amd64/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter-0.14.0.linux-amd64/.my.cnf & 后台运行
netstat -natp | grep 9104
第二种启动
cd /usr/local/
mv mysqld_exporter-0.14.0.linux-amd64/ mysqld_exproter
vim /usr/lib/systemd/system/mysqld_exporter.service
[Unit]
Description=mysqld_exporter
Documentation=https://prometheus.io/
After=network.target[Service]
Type=simple
ExecStart=/usr/local/mysqld_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstatExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure[Install]
WantedBy=multi-user.target
回到 Prometheus 服务器的配置文件里添加被监控的 mariadb 的配置段
vim /usr/local/prometheus/prometheus.yml
- job_name: 'agent_mysql'
static_configs:
- targets: ['192.168.80.70:9104']
回到 web 管理界面→点 Status→点 Targets→可以看到监控 mysql
Grafana 是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警。
下载地址
Download Grafana | Grafana Labs
#使用yum解决依赖关系 我这边直接上传软件包到opt
yum install -y grafana-7.3.6-1.x86_64.rpm 或
mkdir /mnt/grafanacd /mnt/grafana
上传安装包
rpm -ivh /opt/grafana-7.3.6-1.x86_64.rpm 解压
systemctl start grafana-server
systemctl enable grafana-server
netstat -natp | grep :3000#账号密码默认为admin,admin
grafana默认配置文件目录 /etc/grafana/grafana.ini
浏览器访问:http://192.168.80.60:3000 ,默认账号和密码为 admin/admin
通过浏览器访问 http:// grafana 服务器 IP:3000 就到了登录界面,使用默认的 admin 用户,admin 密码就可以登陆了。
默认用户名和密码都是admin
下面我们把 Prometheus 服务器收集的数据做为一个数据源添加到 grafana,让 grafana 可以得到 Prometheus 的数据。
自定义名称,点击保存
最后在dashboard可以查看到
注:有多条数据的时候,可以在查询的键值后面加个大括号,括号里的条件表示只匹配当前的监控项。
浏览器访问:https://grafana.com/grafana/dashboards ,在页面中搜索 node exporter ,选择适合的面板,点击 Copy ID 或者 Download JSON
在 grafana 页面中,+ Create -> Import ,输入面板 ID 号或者上传 JSON 文件,点击 Load,即可导入监控面板