Grafana+Prometheus实现Ceph监控和钉钉告警
Grafana+Prometheus实现Ceph监控和钉钉告警
获取软件包
最新的软件包获取地址
https://prometheus.io/download/
Prometheus
1、下载Prometheus
$ wget https://github.com/prometheus/prometheus/releases/download/v2.6.0/prometheus-2.6.0.linux-amd64.tar.gz
2、解压软件包
$ tar xf prometheus-2.6.0.linux-amd64.tar.gz
3、配置Prometheus启动程序
把解压出来的文件移动到/usr/local/目录下,并重命名为prometheu
$ mv prometheus-2.6.0.linux-amd64 /usr/local/prometheus
生成启动脚本
$ vim /usr/lib/systemd/system/prometheus.service [Unit] Description=Prometheus: the monitoring system Documentation=http://prometheus.io/docs/ [Service] ExecStart=/usr/local/prometheus/prometheus \ --config.file=/usr/local/prometheus/prometheus.yml \ --storage.tsdb.path=/var/lib/prometheus \ --web.console.templates=/usr/local/prometheus/consoles \ --web.console.libraries=/usr/local/prometheus/console_libraries \ --web.listen-address=0.0.0.0:9090 --web.external-url= Restart=always StartLimitInterval=0 RestartSec=10 [Install] WantedBy=multi-user.target
创建监控数据存储目录
$ mkdir /var/lib/prometheus
4、启动Prometheus
$ systemctl daemon-reload $ systemctl enable prometheus $ systemctl start prometheus
5、查看端口监听状态
Prometheus监听的端口为9090,启动成功后可以通过netstat命令进行查看端口的监听状态
$ netstat -antpu | grep 9090 tcp 0 0 127.0.0.1:33270 127.0.0.1:9090 ESTABLISHED 6426/prometheus tcp6 0 0 :::9090 :::* LISTEN 6426/prometheus tcp6 0 0 ::1:9090 ::1:51821 ESTABLISHED 6426/prometheus tcp6 0 0 ::1:51821 ::1:9090 ESTABLISHED 6426/prometheus tcp6 0 0 127.0.0.1:9090 127.0.0.1:33270 ESTABLISHED 6426/prometheus
6、通过浏览器进行访问
Prometheus启动成功后,可以通过浏览器访问查看状态和配置信息
Ceph_export
Ceph_export 需要使用Go进行编译,也可以下载已经编译好的Ceph_exporter直接使用
链接:https://pan.baidu.com/s/1AEF_pdDvSJ5gMPapaBuBrA
提取码:jkuh
1、安装软件Go环境
$ yum -y install golang
2、查看Go环境变量
$ go env GOARCH="amd64" GOBIN="" GOCACHE="/root/.cache/go-build" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/root/go" GOPROXY="" GORACE="" GOROOT="/usr/lib/golang" GOTMPDIR="" GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64" GCCGO="gccgo" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build359765015=/tmp/go-build -gno-record-gcc-switches"
3、设置Go环境变量
$ vim /etc/profile.d/go.sh export GOROOT=/usr/lib/golang export GOBIN=$GOROOT/bin export GOPATH=/root/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin $ source /etc/profile.d/go.sh
4、下载并编译Ceph_exporter
$ mkdir go/src/github.com/digitalocean/ $ cd go/src/github.com/digitalocean/ $ git clone https://github.com/digitalocean/ceph_exporter $ cd ceph_exporter $ go build
5、创建Ceph_exporter启动程序
$ mkdir ~/go/bin/ $ cp ~/go/src/github.com/digitalocean/ceph_exporter/ceph_exporter ~/go/bin/ $ vim /usr/lib/systemd/system/ceph_exporter.service [Unit] Description=Prometheus's ceph metrics exporter [Service] User=root Group=root ExecStart=/root/go/bin/ceph_exporter [Install] WantedBy=multi-user.target Alias=ceph_exporter.service
6、启动Ceph_exporter
$ systemctl daemon-reload $ systemctl enable ceph_exporter $ systemctl start ceph_exporter
7、查看端口监听状态
Ceph_exporter使用的是9128端口,可以通过netstat进行查看端口的监听状态
$ netstat -antpu | grep 9128 tcp6 0 0 :::9128 :::* LISTEN 6839/ceph_exporter
8、修改Prometheus配置
把Ceph_exporter的接口添加到Prometheus的配置中
$ vim /usr/local/prometheus/prometheus.yml scrape_configs: - job_name: 'ceph' honor_labels: true static_configs: - targets: ['192.168.1.10:9128'] labels: instance: Ceph测试集群
9、重启Prometheus进程
$ systemctl restart prometheus
10、浏览器访问验证
Grafana
1、下载软件包
不同系统的最新软件包可以在Grafana的官网获取下载地址https://grafana.com/grafana/download
$ wget https://dl.grafana.com/oss/release/grafana-5.4.3-1.x86_64.rpm
2、安装Grafana
$ yum -y install grafana-5.4.3-1.x86_64.rpm
3、启动Grafana
$ systemctl enable grafana-server $ systemctl start grafana-server
4、查看端口监听状态
Grafana监听端口为3000,可以使用netstat查看监听状态
$ netstat -antpu | grep 3000 tcp6 0 0 :::3000 :::* LISTEN 7147/grafana-server
5、浏览器访问登录
访问地址为http://$IP:3000,初始用户名和密码均为admin,首次登录后会提示设置新的密码
6、配置Dashboard
点击Add data source添加数据源
选择Prometheus
URL地址为Prometheus的访问地址http://$IP:9090
导入Dashboard,模板的编号为917,如果无法连接互联网,也可以在Grafana的官网下载模板后手动导入https://grafana.com/dashboards/917
查看监控状态
AlertManager
1、安装Alertmanager
$ wget https://github.com/prometheus/alertmanager/releases/download/v0.16.0/alertmanager-0.16.0.linux-amd64.tar.gz $ tar xf alertmanager-0.16.0-alpha.0.linux-amd64.tar.gz $ cd alertmanager-0.16.0-alpha.0.linux-amd64 $ cp alertmanager amtool /usr/bin/ $ cp alertmanager.yml /usr/local/prometheus/
2、生成启动程序
$ vim /usr/lib/systemd/system/alertmanager.service [Unit] Description=Prometheus: the alerting system Documentation=http://prometheus.io/docs/ After=prometheus.service [Service] ExecStart=/usr/bin/alertmanager --config.file=/usr/local/prometheus/alertmanager.yml Restart=always StartLimitInterval=0 RestartSec=10 [Install] WantedBy=multi-user.target
3、启动Alertmanager
$ systemctl enable alertmanager $ systemctl start alertmanager
4、查看端口监听状态
Alertmanager的监听端口为9093,可以使用netstat查看端口监听状态
$ netstat -antpu | grep 9093 tcp6 0 0 :::9093 :::* LISTEN 7381/alertmanager
5、配置Prometheus,添加Alertmanager端点
$ vim /usr/local/prometheus/prometheus.yml alerting: alertmanagers: - static_configs: - targets: ["192.168.1.10:9093"]
6、重启Prometheus
$ systemctl restart prometheus
配置钉钉告警
1、配置webhook
$ mkdir -p /usr/lib/golang/src/github.com/timonwong/ $ cd /usr/lib/golang/src/github.com/timonwong/ $ git clone https://github.com/timonwong/prometheus-webhook-dingtalk.git $ cd prometheus-webhook-dingtalk $ make $ nohup ./prometheus-webhook-dingtalk --ding.profile="webhook=https://oapi.dingtalk.com/robot/send?access_token=8fe12c1a58b0769d7fcbf6ebf3bcd2cfcba825f2c45b4b39055890fd705df543" &> /var/log/dingding.log &
2、添加webhook告警
$ vim /usr/local/prometheus/alertmanager.yml global: resolve_timeout: 5m route: group_by: ['alertname'] group_wait: 10s group_interval: 10s repeat_interval: 1h receiver: 'web.hook' receivers: - name: 'web.hook' webhook_configs: - url: 'http://192.168.1.10:8060/dingtalk/webhook/send' inhibit_rules: - source_match: severity: 'critical' target_match: severity: 'warning' equal: ['alertname', 'dev', 'instance']
3、添加告警规则文件
$ vim /usr/local/prometheus/prometheus.yml rule_files: - /usr/local/prometheus/ceph.yml
4、配置告警规则
$ vim /usr/local/prometheus/ceph.yml groups: - name: ceph-rule rules: - alert: Ceph OSD Down expr: ceph_osd_down > 0 for: 2m labels: product: Ceph测试集群 annotations: Warn: "{{$labels.instance}}: 有{{ $value }}个OSD挂掉了" Description: "{{$labels.instance}}:{{ $labels.osd }}当前状态为{{ $labels.status }}" - alert: 集群空间使用率 expr: ceph_cluster_used_bytes / ceph_cluster_capacity_bytes * 100 > 80 for: 2m labels: product: Ceph测试集群 annotations: Warn: "{{$labels.instance}}:集群空间不足" Description: "{{$labels.instance}}:当前空间使用率为{{ $value }}"
5、重启进程使配置生效
$ systemctl restart alertmanager $ systemctl restart prometheus.service
6、钉钉验证
停掉一个OSD后,钉钉收到如下告警
重新启动后收到恢复通知
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
想知道什么是零停机重启工具?Huptime教帮你 !
前言Huptime (High uptime)是零停机重启实用程序,不需要修改你的程序。 虽然很多应用支持运行的时候重载配置,但是一个零停机重启允许升级应用代码,不需要停止任何活动。 基础示例 终端: huptime --exec python -m SimpleHTTPServer & PID=$! 第二个终端 while true; do curl http://localhost:8000 2>/dev/null || echo "fail"; done 第三个终端: kill -HUP $PID 第二个终端不会输出 "fail" Huptime 最低要求: make gcc and g++ python rpmbuild (optional) and dpkg (optional) 小编推荐一个学python的学习qun 740322234 无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
- 下一篇
论文解读 | 数十亿商品中,长尾和新品怎么找到新主人?
小叽导读:在推荐系统的发展历程中,面临两个核心问题:用户的长尾覆盖度以及新商品的冷启动,在这两个维度下的模型扩展能力的瓶颈一直以来对广大推荐算法工程师都是不小的挑战。本文基于Graph Embedding的理论知识提出了创新框架,旨在提升商品推荐的多样性和发现性。 一、背景介绍淘宝个性化推荐场景所面对的数以十亿计的用户、商品、交互数据和各类属性构成了一个规模庞大的异构网络,如果能将网络中的各类信息统一建模在同一个维度空间,用向量的方式进行表达,它的简洁和灵活性会有巨大的应用空间。据我们所知,业界尚未有对如此大规模复杂网络进行graph embedding建模的成熟应用。 在本篇论文中,我们针对推荐场景,基于Graph Embedding的理论知识创新框架: 利用用户的序列化行为构建graph,结合随机游走技术对用户行为进行"虚拟采样"拟
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题