Prometheus+Grafana+Onealert

Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控docker容器。

基于时间序列的数值数据的容器监控解决方案。

按照时间顺序记录系统、设备状态变化的数据被称为时序数据

优势

  易于管理

  轻易获取服务内部状态

  高效灵活的查询语句

  支持本地和远程存储

  采用http协议,默认pull模式拉取数据,也可以通过中间网关push数据

  支持自动发现

  可扩展

  易集成

grafana 将Prometheus收集到的数据以图形化展现

通过grafana+onealert实现报警

模拟项目---对远程机器进行监控

实现7*24小时监控

报警分级

一级 电话通知

二级 微信通知

三级 邮件通知

完成报警处理机制

异地集中监控

实验环境准备

grafana服务器一台,prometheus服务器一台,被监控服务器一台

初始化服务器

设置好IP后,修改/etc/hosts

172.16.30.217 prometheus

172.16.30.222 grafana

172.16.30.223 agent

1 #!/bin/bash

2 for li in `cat ip.txt`

3 do

4    echo "lianjie $li..."

5    sshpass -p saka ssh -o "StrictHostKeyChecking=no" root@$li mv /etc/hosts /etc/hosts.bk

6    scp /etc/hosts root@$li:/etc/

7 done

时间同步

由于连接了外网,使用了外网的NTP server 在此只做时间检查

#!/bin/bash

for li in `cat ip.txt`

do

sshpass -p saka ssh -o StrictHostKeyChecking=no root@$li date

done

prometheus安装

tar -xvf prometheus-2.5.0.linux-amd64.tar.gz -C /usr/local

mv prometheus-2.5.0.linux-amd64 prometheus

cd prometheus

./prometheus --config.file="/usr/local/prometheus/prometheus.yml" & //执行后台安装

ss -natlp | grep 9090 //测试端口占用情况

ip:9090 即可看到prometheus的自带界面

默认监控自己

监控项有搜索提示

监控远程主机

在被监控的主机上安装组件(所有需要监控的机器都需要安装)

监控不同的服务需要不同的组件,比如mysqld_exporter

安装node_exporter(主要监控系统信息)

tar -xvf node_exporter-0.16.0.linux-amd64.tar.gz -C /usr/local

mv node_exporter-0.16.0.linux-amd64 node_exporter

cd node_exporter

nohup ./node_exporter & //永久运行node_exporter

查看是否运行

lsof -i:9100 //node_exporter 默认监听9100端口

通过ip:9100/metrices 来查看监控的数据

回到prometheus服务器的配置文件中添加被监控机器的地址段

vim prometheus.yml

- job_name: 'agent1'

  static_configs:

  - targets: ['172.16.30.223:9100'] //严格控制缩进

改完后重启服务

回到prometheus服务器的监控页面,已经可以看到添加的被监控主机

监控mysqld_exporter

解压安装

安装mysql(start enable)

lsof -i:3306 //查看是否运行

创建mysql账号,只允许本机访问

grant select,replication client,process ON *.* to 'mysql_monitor'@'localhost' identified by '123';

刷新权限

flush privileges;

完成之后,需要去添加配置文件来给prometheus登录Mysql来拉取数据

vim /usr/local/mysqld_exporter/.my.cnf

[client]

user=mysql_monitor

password=123

运行mysqld_exporter

nohup /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf & //添加参数,指明配置文件路径

ss -natlp | grep 9104 //确认已启动

到网页中查看是否已搜集到数据

回到prometheus服务器的配置文件中添加被监控机器的地址段

  - job_name: 'agent1_mariadb'

static_configs:

- targets: ['172.16.30.223:9104']

修改完成后重启prometheus服务,在web上已经能看到监控的targets

grafana图形工具

grafana是开源的度量分析和可视化工具,可以通过将prometheus采集的数据分析,查询,然后进行可视化的展示,并实现报警。监听3000端口

安装

rpm -ivh grafana-5.3.4-1.x86_64.rpm

systemctl start grafana-server

systemctl enable grafana-server

通过Ip:3000进入 grafana测试页面,默认用户名密码均为admin,第一次登陆后需要更改密码

与prometheus关联

添加数据源

点击页面中的add data source添加prometheus服务器的信息

点+给数据源做图形展示

可以通过两种方式来筛选监控数据

1.{instance="IP:PORT"}

2.{job="JOB NAME"} //job name在prometheus的配置文件中

通过grafana监控mysql数据

需要安装模板并修改配置文件

修改配置文件

vim /etc/grafana/grafana.ini

[dashboards.json]

enabled = true //开启json

path = /var/lib/grafana/dashboards //模板路径

cd /var/lib/grafana/dashboards后

git clone https://github.com/percona/grafana-dashboards.git //下载模板

cp -r grafana-dashboards/dashboards/ /var/lib/grafana  //把模板拉出来

systemctl restart grafana-server

在grafana中导入json 文件

页面中存在上传页面

选择上传mysql_overview.json

//上传后没有数据,因为没设置数据源

//设置数据源

//默认名字为Prometheus,之前的名字叫prometheus_data

//一觉睡醒grafana没采集到数据,prometheus报错no data points 发现3台机器时间不同步,重新校时 ntpdate cn.ntp.org.cn 所有机器保证时间同步

更改dashboards界面 https://grafana.com/grafana/dashboards 

编号9276比较酷炫,是收集系统信息的,需要node_exporter

grafana+onealert实现报警

prometheus报警需要alertmanager组件,且报警规则需要手动添加,并不友好,所以使用grafana+onealert实现报警

onealert需要注册

https://caweb.aiops.com/#/  //页面有创建提示

在grafana中配置webhook url

在grafana中创建Notification channel 类型为webhook

链接地址不能填错

将webhook Notification Channel添加到grafana Alert中

在grafana dashboards中添加报警触发条件

cat /dev/urandom | md5sum

//目前未付费状态 只能微信推送或者钉钉 //绑定微信后已经可以从邮箱和微信推送获取报警信息

dpkg-reconfigure openssh-server重新生成ssh配置文件

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343