Browse Source

整合Prometheus APM

mrbird 6 years ago
parent
commit
0100a210bc

+ 22 - 0
febs-cloud/config/alertmanager.yml

@@ -0,0 +1,22 @@
+global:
+  smtp_smarthost: 'smtp.126.com:465'
+  smtp_from: 'wuyouzhuguli@126.com'
+  smtp_auth_username: 'wuyouzhuguli'
+  smtp_auth_password: '123456'
+  smtp_require_tls: false
+
+#templates:
+#  - '/alertmanager/template/*.tmpl'
+
+route:
+  group_by: ['alertname']
+  group_wait: 10s
+  group_interval: 5m
+  repeat_interval: 5m
+  receiver: 'default-receiver'
+
+receivers:
+  - name: 'default-receiver'
+    email_configs:
+      - to: '852252810@qq.com'
+        send_resolved: true

+ 11 - 0
febs-cloud/config/memory_over.yml

@@ -0,0 +1,11 @@
+groups:
+  - name: memory_over
+    rules:
+      - alert: NodeMemoryUsage
+        expr: (node_memory_MemTotal_bytes - (node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes )) / node_memory_MemTotal_bytes * 100 > 80
+        for: 20s
+        labels:
+          user: MrBird
+        annotations:
+          summary: "{{$labels.instance}}: High Memory usage detected"
+          description: "{{$labels.instance}}: Memory usage is above 80% (current value is:{{ $value }})"

+ 57 - 0
febs-cloud/config/prometheus.yml

@@ -0,0 +1,57 @@
+global:
+  scrape_interval:     15s
+  evaluation_interval: 15s
+
+scrape_configs:
+  - job_name: 'prometheus'
+    static_configs:
+      - targets: ['YOUR-IP:8403']
+  - job_name: 'node_exporter'
+    static_configs:
+      - targets: ['YOUR-IP:8405']
+        labels:
+          instance: 'node_exporter'
+  - job_name: 'redis_exporter'
+    static_configs:
+      - targets: ['YOUR-IP:8408']
+        labels:
+          instance: 'redis_exporter'
+  - job_name: 'mysql_exporter'
+    static_configs:
+      - targets: ['YOUR-IP:8409']
+        labels:
+          instance: 'mysql_exporter'
+  - job_name: 'cadvisor'
+    static_configs:
+      - targets: ['YOUR-IP:8407']
+        labels:
+          instance: 'cadvisor'
+
+  - job_name: 'febs-server-system-actuator'
+    metrics_path: '/actuator/prometheus'
+    scrape_interval: 5s
+    static_configs:
+      - targets: ['YOUR-IP:8201']
+        labels:
+          instance: 'febs-server-system'
+  - job_name: 'febs-server-auth-actuator'
+    metrics_path: '/actuator/prometheus'
+    scrape_interval: 5s
+    static_configs:
+      - targets: ['YOUR-IP:8101']
+        labels:
+          instance: 'febs-auth'
+  - job_name: 'febs-server-test-actuator'
+    metrics_path: '/actuator/prometheus'
+    scrape_interval: 5s
+    static_configs:
+      - targets: ['YOUR-IP:8202']
+        labels:
+          instance: 'febs-server-test'
+rule_files:
+  - 'memory_over.yml'
+  - 'server_down.yml'
+alerting:
+  alertmanagers:
+    - static_configs:
+        - targets: ["YOUR-IP:8406"]

+ 11 - 0
febs-cloud/config/server_down.yml

@@ -0,0 +1,11 @@
+groups:
+  - name: server_down
+    rules:
+      - alert: InstanceDown
+        expr: up == 0
+        for: 20s
+        labels:
+          user: MrBird
+        annotations:
+          summary: "Instance {{ $labels.instance }} down"
+          description: "{{ $labels.instance }} of job {{ $labels.job }} has been down for more than 20 s."

+ 54 - 0
febs-cloud/docker compose/prometheus/docker-compose.yml

@@ -0,0 +1,54 @@
+version: '3'
+
+services:
+  prometheus:
+    image: prom/prometheus
+    container_name: prometheus
+    volumes:
+      - /febs/prometheus/:/etc/prometheus/
+    ports:
+      - 8403:9090
+    restart: on-failure
+  node_exporter:
+    image: prom/node-exporter
+    container_name: node_exporter
+    ports:
+      - 8405:9100
+  redis_exporter:
+    image: oliver006/redis_exporter
+    container_name: redis_exporter
+    command:
+      - '--redis.addr=redis://ip:port'
+      - '--redis.password=password'
+    ports:
+      - 8408:9121
+    restart: on-failure
+  mysql_exporter:
+    image: prom/mysqld-exporter
+    container_name: mysql_exporter
+    environment:
+      - DATA_SOURCE_NAME=username:password@(ip:port)/
+    ports:
+      - 8409:9104
+  cadvisor:
+    image: google/cadvisor
+    container_name: cadvisor
+    volumes:
+      - /:/rootfs:ro
+      - /var/run:/var/run:rw
+      - /sys:/sys:ro
+      - /var/lib/docker/:/var/lib/docker:ro
+    ports:
+      - 8407:8080
+  alertmanager:
+    image: prom/alertmanager
+    container_name: alertmanager
+    volumes:
+      - /febs/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml
+    ports:
+      - 8406:9093
+  grafana:
+    image: grafana/grafana
+    container_name: grafana
+    ports:
+      - 8404:3000

+ 4 - 0
febs-common/pom.xml

@@ -81,5 +81,9 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-redis</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
     </dependencies>
 </project>