目录

相关软件安装包 百度网盘

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


grafana设置告警短信_centos


pkill prometheus  #关闭之前运行的prometheus

nohup ./prometheus & #后台启动prometheus


回到http://prometheus  IP:9090  进行访问

grafana设置告警短信_mysql_02

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

grafana设置告警短信_centos_03

(6)重启prometheus


pkill prometheus  #关闭之前运行的prometheus

nohup ./node_exporter &   #后台重新启动


回到http://prometheus  IP:9090  进行访问

grafana设置告警短信_centos_04

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数据源

grafana设置告警短信_mysql_05


grafana设置告警短信_grafana设置告警短信_06

grafana设置告警短信_redis_07

(2)创建Dashboard

     

grafana设置告警短信_redis_08

grafana设置告警短信_mysql_09

grafana设置告警短信_redis_10

成功创建Linux主机监控dashboard。

grafana设置告警短信_mysql_11

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文件

grafana设置告警短信_json_12

grafana设置告警短信_centos_13

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是大写,这次要用小写,否则看不到相关数据)

grafana设置告警短信_centos_14

grafana设置告警短信_mysql_15

导入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);
}

grafana设置告警短信_centos_16

(2)修改prometheus配置

# LifeService
  - job_name: 'LifeService'
    scrape_interval: 5s
    metrics_path: '/actuator/prometheus'
    static_configs: 
    - targets: ['IP:port']

grafana设置告警短信_centos_17

(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

grafana设置告警短信_mysql_18

(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能看到自己编写的规则

grafana设置告警短信_json_19

(5)开启授权码

grafana设置告警短信_centos_20

grafana设置告警短信_mysql_21

开启后会获得授权码,使用授权码替换配置文件的密码更为安全