热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

smartadminmysql_Prometheus、Alertmanager、Grafana监控Linux与MySQL

检查各个端口的放行部署各个模块与应用cdusrlocalPrometheus_composevimdocker-compose.ymlversion:3services:pro

0156ca73470fcc0a92eede262484a3b1.png//检查各个端口的放行

//部署各个模块与应用

cd /usr/local/Prometheus_compose

vim docker-compose.yml

version: "3"

services:

prom:

image: quay.io/prometheus/prometheus:latest

container_name: prometheus

volumes:

- ./prometheus:/etc/prometheus

command: "--config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus"

ports:

- 9090:9090

depends_on:

- exporter

environment:

- TZ=Asia/Shanghai

exporter:

image: prom/node-exporter:latest

container_name: node-exporter

hostname: cicd

ports:

- "9100:9100"

environment:

- TZ=Asia/Shanghai

grafana:

image: grafana/grafana

container_name: grafana

ports:

- "3000:3000"

environment:

- “GF_SECURITY_ADMIN_PASSWORD=123123”

- “GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app”

- TZ=Asia/Shanghai

restart: "always"

volumes:

- ./grafana:/etc/grafana/”

- ./grafana/conf/grafana.ini:/etc/grafana/grafana.ini

- ./grafana/data:/var/lib/grafana:rw

- ./grafana/plugins:/var/lib/grafana/plugins:rw

- /etc/localtime:/etc/localtime

depends_on:

- prom

alertmanager:

image: prom/alertmanager:latest

container_name: alertmanager

hostname: alertmanager

restart: always

ports:

- ‘9093:9093‘

volumes:

- ‘./alertmanager/config:/etc/alertmanager‘

- ‘./alertmanager/data:/alertmanager/data‘

command:

- ‘--config.file=/etc/alertmanager/alertmanager.yml‘

environment:

- TZ=Asia/Shanghai

cadvisor:

image: google/cadvisor

container_name: cadvisors

restart: always

volumes:

- /:/rootfs:ro

- /var/run:/var/run:rw

- /sys:/sys:ro

- /var/lib/docker/:/var/lib/docker:ro

ports:

- 8080:8080

privileged: true

environment:

- TZ=Asia/Shanghai

grafana-reporter:

image: izakmarais/grafana-reporter

container_name: grafana_reporter

ports:

- 8686:8686

command: "-ip grafana.mitaiot.com"

environment:

- TZ=Asia/Shanghai

//编辑报警模块的配置文件

cd /usr/local/Prometheus_compose/alertmanager/config

cat alertmanager.yml

global:

resolve_timeout: 5m

smtp_from: ‘123456789@sina.com‘

smtp_smarthost: ‘smtp.sina.com:587‘

smtp_auth_username: ‘123456789@sina.com‘

smtp_auth_password: ‘aabbccdd‘

smtp_require_tls: false

smtp_hello: ‘sina.com‘

route:

group_by: [‘alertname‘]

group_wait: 5s

group_interval: 5s

repeat_interval: 5m

receiver: ‘email‘

receivers:

- name: ‘email‘

email_configs:

- to: ‘{{ template "email.to" . }}‘

html: ‘{{ template "email.to.html" . }}‘

send_resolved: true

inhibit_rules:

- source_match:

severity: ‘critical‘

target_match:

severity: ‘warning‘

equal: [‘alertname‘, ‘dev‘, ‘instance‘]

templates:

- "/etc/alertmanager/alertmanager-tmpl/email.tmpl"

//编辑发送的邮件模板

cd /usr/local/Prometheus_compose/alertmanager/config/alertmanager-tmpl

cat email.tmpl

{{ define "email.from" }}123456789@sina.com{{ end }}

{{ define "email.to" }}123456789@sina.com{{ end }}

{{ define "email.to.html" }}

{{ range .Alerts }}

=========start==========

告警程序: prometheus_alert

告警级别: {{ .Labels.severity }} 级

告警类型: {{ .Labels.alertname }}

故障主机: {{ .Labels.instance }}

告警主题: {{ .Annotations.summary }}

告警详情: {{ .Annotations.description }}

触发时间: {{ .StartsAt.Format "2019-08-04 16:58:15" }}

=========end==========

{{ end }}

{{ end }}

cd /usr/local/Prometheus_compose/grafana/conf

vim grafana.ini # 配置文件太长,标出修改部分

[auth.anonymous]

enabled = true

org_name = Main Org.

org_role = Viewer

[smtp]

enabled = true

host = smtp.sina.com:587

user = 123456789@sina.com

password =dc28ac6ec64af9c1

skip_verify = true

from_address = 123456789@sina.com

from_name = Grafana

ehlo_identity =

default_timezone = Asia/Shanghai #添加时区

//修改 普罗米修斯 的配置文件

cd /usr/local/Prometheus_compose/prometheus

global:

scrape_interval: 5s # Set the scrape interval to every 15 seconds. Default is every 1 minute.

evaluation_interval: 5s # Evaluate rules every 15 seconds. The default is every 1 minute.

scrape_configs:

- job_name: ‘prometheus‘

static_configs:

- targets: [‘172.16.225.154:9090‘]

- job_name: ‘node‘

file_sd_configs:

- files: [‘/etc/prometheus/groups/nodegroups/*.json‘]

static_configs:

- targets:

- ‘172.16.225.154:9100‘

- ‘172.16.225.156:9100‘

- ‘172.16.225.155:9100‘

- ‘172.16.225.157:9100‘

- ‘172.16.225.156:8085‘

- ‘172.16.225.154:8080‘

- ‘172.16.225.155:8085‘

- ‘172.16.225.157:8085‘

- ‘172.16.225.157:9104‘

alerting:

alertmanagers:

- static_configs:

- targets:

- ‘172.16.225.154:9093‘

rule_files:

- "/etc/prometheus/rules/*.yml"

//配置报警规则

cd /usr/local/Prometheus_compose/prometheus/rules

groups:

- name: node-up

rules:

- alert: node-up

expr: up{job="node"} == 0

for: 15s

labels:

severity: 1

team: node

annotations:

summary: "{{ $labels.instance }} 已停止运行!"

description: "{{ $labels.instance }} 检测到异常停止!请重点关注!!!"

- name: node-cpu

rules:

- alert: node-cpu

expr: 100 - ((avg by (instance,job,env)(irate(node_cpu_seconds_total{mode="idle"}[30s]))) *100) > 90

for: 1m

labels:

severity: 1

team: node

level: warning

annotations:

summary: "{{ $labels.instance }} CPU使用率超过 百分之90!"

description: "{{ $labels.instance }} 检测CPU连续1分钟占用率超出90%!请重点关注!!!"

- name: node-mem

rules:

- alert: node-mem

expr: ((node_memory_MemTotal_bytes -(node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes) )/node_memory_MemTotal_bytes ) * 100 > 90 #设置内存使用率高于90时发送告警,计算方式为 总内存-空闲内存 - buffers - cached

for: 5s

labels:

severity: 1

team: node

level: warning

annotations:

summary: "{{ $labels.instance }} MEM使用率超过 百分之90!"

description: "{{ $labels.instance }} 检测CPU连续1分钟占用率超出90%!请重点关注!!!"

- name: node-disk_used

rules:

- alert: node-disk_used

expr: 100 - (node_filesystem_free_bytes{fstype=~"ext3|ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext3|ext4|xfs"} * 100) > 90 #设置挂载分区使用率为95以上时告警

for: 1m

labels:

severity: 1

team: node

level: warning

annotations:

summary: "{{ $labels.instance }} 挂在分区使用率超过 百分之90!"

description: "{{ $labels.instance }} 挂在分区使用率超出90%!请重点关注!!!"

#如需监控 MySQL和容器和主机信息 需要在 主机上部署 prom/node-exporter 、cadvisor、prom/mysqld-exporter。

version: "3"

services:

exporter:

image: prom/node-exporter:latest

container_name: node-exporter

hostname: db01

ports:

- "9100:9100"

cadvisor:

image: google/cadvisor

container_name: cadvisor

restart: always

volumes:

- /:/rootfs:ro

- /var/run:/var/run:rw

- /sys:/sys:ro

- /var/lib/docker/:/var/lib/docker:ro

ports:

- 8085:8080

privileged: true

mysqld-exporter:

image: prom/mysqld-exporter

ports:

- 9104:9104

restart: always

container_name: mysql_exporter

hostname: db01

environment:

- DATA_SOURCE_NAME=root:0GXwwchW4rP@(172.16.225.157:3306)/

- TZ=Asia/Shanghai

导入模板,模板 ID 分别是:8919、7362

更多模块链接访问:点击获取监控模块,只需要导入对应ID即可

Prometheus、Alertmanager、Grafana 监控 Linux 与 MySQL



推荐阅读
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 1.官网下载了mysql-5.7.17-win64.zip包,配置遇到很多麻烦,记录一下;2.解压后放到指定的文件夹,修改mysql-5.7.17的配置文件my-default.i ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 使用Docker安装和运行Nexus
    本文介绍了使用Docker安装和运行Nexus的方法,包括docker-compose.yml配置和启动时可能出现的权限问题解决方法。同时提供了登录控制台验证安装的地址和登录信息。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • 1.脚本功能1)自动替换jar包中的配置文件。2)自动备份老版本的Jar包3)自动判断是初次启动还是更新服务2.脚本准备进入ho ... [详细]
  • 浅析Mysql数据回滚错误的解决方法_PHP教程:MYSQL的事务处理主要有两种方法。1、用begin,rollback,commit来实现begin开始一个事务rollback事 ... [详细]
  • 有意向可以发简历到邮箱内推.简历直达组内Leader.能做同事的话,内推奖励全给你. ... [详细]
author-avatar
挥霍人生e
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有