目录
相关软件安装包 百度网盘
1.安装prometheus
2.启动prometheus
3.远程监控linux主机
4.监控mysql
(1)安装mysqld_exporter
(2)mysql库创建相应用户并赋权(从库不需要)
(3)配置mysqld_exporter
(4)启动mysqld_exporter
(5)配置prometheus
(6)重启prometheus
5.安装Grafana
6.监控远程主机
(1)添加Prometheus数据源
(2)创建Dashboard
7.监控mysql数据
(1)配置grafana
(2)安装模板
(3)重启grafana服务
(4)在grafana图形界面导入相关json文件
8.监控redis集群数据
(1)安装redis_exporter(只需要在redis的master安装即可)
(2)启动redis_exporter
(3)回到prometheus进行配置
(4)重启prometheus
(5)在grafana导入相关json文件
9.监控elasticsearch集群
(1)安装elasticsearch_exporter(只需要在elasticsearch的master安装即可)
(2)启动elasticsearch_exporter
(3)回到prometheus进行配置
(4)重启prometheus
(5)在grafana导入相关json文件
10.监控kafka集群
(1)安装kafka_exporter(只需要kafka集群内选择一台即可)
(2)启动kafka_exporter
(3)回到prometheus进行配置
(4)重启prometheus
(5)在grafana导入相关json文件
11.监控Nacos
(1)Nacos集群暴露metrics数据(集群内其中一台)
(2)在grafana导入相关json文件
12.监控springboot2项目
(1)修改springboot2配置
(2)修改prometheus配置
(3)在grafana导入相关json文件
13.监控报警
(1)安装Alertmanager(我选择安装在prometheus的机器)
(2)修改alertmanager的主配置文件【采用邮件告警】
(3)配置Prometheus与Alertmanager通信
(4)编写告警规则
相关软件安装包 百度网盘
链接:https://pan.baidu.com/s/1UvPbBDsilBuf1TvkzSgvLw
提取码:l6jd
Kafka Overview dashboard for Grafana | Grafana Labs 仪表盘json文件下载
Exporters and integrations | Prometheus exporter下载
1.安装prometheus
cd /opt
mkdir prometheus
rz #上传prometheus的tar包
tar -zxvf prometheus-2.25.0.linux-amd64.tar.gz #解压
2.启动prometheus
cd /opt/prometheus/prometheus-2.25.0.linux-amd64
nohup ./prometheus & #后台启动prometheus
http://服务器IP:9090 进行访问
3.远程监控linux主机
# 在远程主机上
cd /opt
mkdir node_exporter
cd node_exporter
rz #上传node_exporter
tar -zxvf node_exporter-1.1.1.linux-amd64.tar.gz
cd node_exporter-1.1.1.linux-amd64
nohup ./node_exporter & #后台启动
- 通过浏览器访问http://被监控端IP:9100/metrics就可查看node_exporter在监控端收集的信息
- 到prometheus服务端的配置文件添加被监控端信息
vim /opt/prometheus/prometheus-2.25.0.linux-amd64/prometheus.yml
pkill prometheus #关闭之前运行的prometheus
nohup ./prometheus & #后台启动prometheus
回到http://prometheus IP:9090 进行访问
4.监控mysql
(1)安装mysqld_exporter
# 在安装mysql的服务器上
cd /opt
mkdir mysqld_exporter
cd mysqld_exporter
rz #上传mysqld_exporter-0.12.1.linux-amd64.tar.gz
tar -zxvf mysqld_exporter-0.12.1.linux-amd64.tar.gz
(2)mysql库创建相应用户并赋权(从库不需要)
create user 'exporter'@'%' identified by '123456';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%' WITH MAX_USER_CONNECTIONS 3;
flush privileges;
(3)配置mysqld_exporter
cd /root
vim .my.cnf
[client]
user=exporter
password=123456
(4)启动mysqld_exporter
cd /opt/mysqld_exporter/mysqld_exporter-0.12.1.linux-amd64
nohup ./mysqld_exporter & #后台启动mysqld_exporter
(5)配置prometheus
(6)重启prometheus
pkill prometheus #关闭之前运行的prometheus
nohup ./node_exporter & #后台重新启动
回到http://prometheus IP:9090 进行访问
5.安装Grafana
cd /opt
mkdir grafana
cd grafana
rz #上传安装包
yum install urw-fonts #安装相关依赖
rpm -ivh grafana-7.4.1-1.x86_64.rpm #安装grafana
systemctl start grafana-server #启动
systemctl enable grafana-server #开机自启
http://grafanaIP:3000 进行访问 用户名密码均为admin
6.监控远程主机
(1)添加Prometheus数据源
(2)创建Dashboard
成功创建Linux主机监控dashboard。
7.监控mysql数据
(1)配置grafana
vim /etc/grafana/grafana.ini
[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards
(2)安装模板
cd /var/lib
rz #上传模板
unzip grafana-dashboards-master.zip -d grafana-dashboards
cd grafana-dashboards
cp -r dashboards /var/lib/grafana/
(3)重启grafana服务
systemctl restart grafana-server
(4)在grafana图形界面导入相关json文件
8.监控redis集群数据
(1)安装redis_exporter(只需要在redis的master安装即可)
# 在redis的主节点服务器
cd /opt
mkdir redis_exporter
cd redis_exporter
rz #上传redis_exporter
tar -zxvf redis_exporter-v1.17.0.linux-amd64.tar.gz
(2)启动redis_exporter
nohup ./redis_exporter -redis.addr redis主IP:6379 -redis.password qwer1234 &
(3)回到prometheus进行配置
# redis
- job_name: 'redis__targets'
static_configs:
- targets:
- redis://redis主IP:6379
- redis://redis从IP:6380
metrics_path: /scrape
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: redis主IP:9121
(4)重启prometheus
pkill prometheus #关闭之前运行的prometheus
nohup ./prometheus & #后台重新启动
(5)在grafana导入相关json文件
和mysql的流程一样 json文件在百度网盘
9.监控elasticsearch集群
(1)安装elasticsearch_exporter(只需要在elasticsearch的master安装即可)
# 在elasticsearch的主节点服务器
cd /opt
mkdir elasticsearch_exporter
cd elasticsearch_exporter
rz #上传elasticsearch_exporter
tar -zxvf elasticsearch_exporter-1.1.0.linux-amd64.tar.gz
(2)启动elasticsearch_exporter
nohup ./elasticsearch_exporter --es.uri http://ES主ip:9200 &
(3)回到prometheus进行配置
- job_name: 'elasticsearch'
static_configs:
- targets: ['es主ip:9114']
(4)重启prometheus
pkill prometheus #关闭之前运行的prometheus
nohup ./prometheus & #后台重新启动
(5)在grafana导入相关json文件
和mysql的流程一样 json文件在百度网盘
10.监控kafka集群
(1)安装kafka_exporter(只需要kafka集群内选择一台即可)
# 在kafka的主节点服务器
cd /opt
mkdir kafka_exporter
cd kafka_exporter
rz #上传kafka_exporter
tar -zxvf kafka_exporter-1.2.0.linux-amd64.tar.gz
(2)启动kafka_exporter
nohup ./kafka_exporter --kafka.server=kafkaIP1:9092 &
(3)回到prometheus进行配置
- job_name: 'Kafka'
static_configs:
- targets: ['kafkaip1:9114']
(4)重启prometheus
pkill prometheus #关闭之前运行的prometheus
nohup ./prometheus & #后台重新启动
(5)在grafana导入相关json文件
和mysql的流程一样 json文件在百度网盘
11.监控Nacos
Nacos 0.8.0版本完善了监控系统
(1)Nacos集群暴露metrics数据(集群内其中一台)
配置Nacos的配置文件 application.properties文件,暴露metrics数据
vim /opt/nacos/nacos/conf/cluster.conf
#解开注释暴露全部指标
management.endpoints.web.exposure.include=*
重启Nacos
cd /opt/nacos/nacos/bin
./shutdown.sh #停止
./startup.sh #启动
访问Nacosip:8848/nacos/actuator/prometheus,看是否能访问到metrics数据
(2)在grafana导入相关json文件
配置prometheus数据源(之前的prometheus是大写,这次要用小写,否则看不到相关数据)
导入Nacos grafana监控模版
下载地址:GitHub - nacos-group/nacos-template: nacos-template include PPT template and knote (云盘有我下好的)
和之前的一样,导入就可以了。
12.监控springboot2项目
(1)修改springboot2配置
#yml 文件加入如下配置
management:
endpoints:
web:
exposure:
include: '*'
metrics:
tags:
application: ${spring.application.name}
# pom文件加入如下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
#启动类加入如下代码
@Bean
MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName) {
return (registry) -> registry.config().commonTags("application", applicationName);
}
(2)修改prometheus配置
# LifeService
- job_name: 'LifeService'
scrape_interval: 5s
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['IP:port']
(3)在grafana导入相关json文件
和mysql的流程一样 json文件在百度网盘
13.监控报警
(1)安装Alertmanager(我选择安装在prometheus的机器)
cd /opt
mkdir alertmanager
rz #上传安装包
tar -zxvf alertmanager-0.21.0.linux-amd64.tar.gz
cd alertmanager-0.21.0.linux-amd64
(2)修改alertmanager的主配置文件【采用邮件告警】
global:
resolve_timeout: 5m
smtp_smarthost: 'smtp.163.com:25'
smtp_from: 发件人邮箱
smtp_auth_username: 发件人邮箱
smtp_auth_password: 密码
smtp_require_tls: false
route:
group_by: ['alertname']
group_wait: 10s
group_interval: 10s
repeat_interval: 1m
receiver: 'mail'
receivers:
- name: 'mail'
email_configs:
- to: 收件人邮箱
smtp_smarthost是用于发送邮件的邮箱的SMTP服务器地址+端口
smtp_auth_password是发送邮箱的授权码而不是登录密码
smtp_require_tls不设置的话默认为true,当为true时会有starttls错误,可以用其他办法解决。为了简单这里直接设置为false
templates指出邮件的模板路径
receivers下html指出邮件内容模板名,这里模板名为“alert.html”,在模板路径中的某个文件中定义
headers为邮件标题
检查配置文件是否正确
./amtool check-config alertmanager.yml
启动
./alertmanager --config.file=alertmanager.yml &
(3)配置Prometheus与Alertmanager通信
vim prometheus.yml
(4)编写告警规则
groups:
- name: general.rules
rules:
# Alert for any instance that is unreachable for >5 minutes.
- alert: InstanceDown
expr: up == 0
for: 1m
labels:
severity: error
annotations:
summary: "Instance {{ $labels.instance }} 停止工作"
description: "{{ $labels.instance }} of job {{ $labels.job }} 已停止1分钟>以上"
在prometheus能看到自己编写的规则
(5)开启授权码
开启后会获得授权码,使用授权码替换配置文件的密码更为安全