热门标签 | 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



推荐阅读
  • 在 Kubernetes 中,Pod 的调度通常由集群的自动调度策略决定,这些策略主要关注资源充足性和负载均衡。然而,在某些场景下,用户可能需要更精细地控制 Pod 的调度行为,例如将特定的服务(如 GitLab)部署到特定节点上,以提高性能或满足特定需求。本文深入解析了 Kubernetes 的亲和性调度机制,并探讨了多种优化策略,帮助用户实现更高效、更灵活的资源管理。 ... [详细]
  • 求助:在CentOS 5.8系统上安装PECL扩展遇到问题
    在 CentOS 5.8 系统上尝试安装 APC 扩展时遇到了问题,具体表现为 PECL 工具无法正常工作。为了确保顺利安装,需要解决 PECL 的相关依赖和配置问题。建议检查 PHP 和 PECL 的版本兼容性,并确保所有必要的库和开发工具已正确安装。此外,可以尝试手动下载 APC 扩展的源代码并进行编译安装,以绕过 PECL 工具的限制。 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 本文探讨了如何在C#应用程序中通过选择ComboBox项从MySQL数据库中检索数据值。具体介绍了在事件处理方法 `comboBox2_SelectedIndexChanged` 中可能出现的常见错误,并提供了详细的解决方案和优化建议,以确保数据能够正确且高效地从数据库中读取并显示在界面上。此外,还讨论了连接字符串的配置、SQL查询语句的编写以及异常处理的最佳实践,帮助开发者避免常见的陷阱并提高代码的健壮性。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • Squaretest:自动生成功能测试代码的高效插件
    本文将介绍一款名为Squaretest的高效插件,该工具能够自动生成功能测试代码。使用这款插件的主要原因是公司近期加强了代码质量的管控,对各项目进行了严格的单元测试评估。Squaretest不仅提高了测试代码的生成效率,还显著提升了代码的质量和可靠性。 ... [详细]
  • 本文介绍了如何在iOS平台上使用GLSL着色器将YV12格式的视频帧数据转换为RGB格式,并展示了转换后的图像效果。通过详细的技术实现步骤和代码示例,读者可以轻松掌握这一过程,适用于需要进行视频处理的应用开发。 ... [详细]
  • MySQL数据库安装图文教程
    本文详细介绍了MySQL数据库的安装步骤。首先,用户需要打开已下载的MySQL安装文件,例如 `mysql-5.5.40-win32.msi`,并双击运行。接下来,在安装向导中选择安装类型,通常推荐选择“典型”安装选项,以确保大多数常用功能都能被正确安装。此外,文章还提供了详细的图文说明,帮助用户顺利完成整个安装过程,确保数据库系统能够稳定运行。 ... [详细]
  • 在Android 4.4系统中,通过使用 `Intent` 对象并设置动作 `ACTION_GET_CONTENT` 或 `ACTION_OPEN_DOCUMENT`,可以从相册中选择图片并获取其路径。具体实现时,需要为 `Intent` 添加相应的类别,并处理返回的 Uri 以提取图片的文件路径。此方法适用于需要从用户相册中选择图片的应用场景,能够确保兼容性和用户体验。 ... [详细]
  • 本文探讨了Android系统中支持的图像格式及其在不同版本中的兼容性问题,重点涵盖了存储、HTTP传输、相机功能以及SparseArray的应用。文章详细分析了从Android 10 (API 29) 到Android 11 的存储规范变化,并讨论了这些变化对图像处理的影响。此外,还介绍了如何通过系统升级和代码优化来解决版本兼容性问题,以确保应用程序在不同Android版本中稳定运行。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 今天我开始学习Flutter,并在Android Studio 3.5.3中创建了一个新的Flutter项目。然而,在首次尝试运行时遇到了问题,Gradle任务 `assembleDebug` 执行失败,退出状态码为1。经过初步排查,发现可能是由于依赖项配置不当或Gradle版本不兼容导致的。为了解决这个问题,我计划检查项目的 `build.gradle` 文件,确保所有依赖项和插件版本都符合要求,并尝试更新Gradle版本。此外,还将验证环境变量配置是否正确,以确保开发环境的稳定性。 ... [详细]
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社区 版权所有