【IT运维】普罗米修斯基本介绍及监控平台部署(Prometheus+Grafana)_普罗米修斯监控(1)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

#被监控主机设置完成之后,需要在prometeus主配置文件中添加被监控机信息
[root@node1 prometheus-2.11.1.linux-amd64]# tail -4 prometheus.yml 

  - job_name: 'node2'	#定义名称
    static_configs:#定义具体配置
    - targets: ['192.168.98.202:9100']#定义目标
 
 ####注意缩进 两个空格
     
 #重启服务 
[root@node1 prometheus-2.11.1.linux-amd64]# pkill prometheus
[root@node1 prometheus-2.11.1.linux-amd64]# ./prometheus --config.file=prometheus.yml &


注意:prometheus启动报错
\*\*lock DB directory: resource temporarily unavailable"\*\* 
原因:prometheus没有正常关闭,锁文件存在
rm $prometheus\_dir/data/lock

c、测试验证

设置完查看prometheus页面
Prometheus_6.png

查看Status-Targets页面后可以看到被监控机node2(192.168.98.202)已经在监控列表中了,同时可以通过浏览器看看其监控数据。

Prometheus_node2_metrics5.png

在浏览器中输入http://192.168.98.202:9100/metrics 能看到数据

2.3、监控一个服务:mysql

要监控mysql需要两个条件,一个是系统中有mysql,另一个是要有监控插件,现在监控插件已经下载好了,所以我们要先安装mysql,然后进行相应的授权,让插件可以获取到所需要的信息,然后再设置相关插件,修改prometheus配置文件

a、部署mysql业务
[root@node2 node\_exporter-0.18.1.linux-amd64]# dnf -y install mariadb-server mariadb
[root@node2 mysqld\_exporter-0.12.0.linux-amd64]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@node2 mysqld\_exporter-0.12.0.linux-amd64]# systemctl start mariadb

#创建监控用户
MariaDB [(none)]> grant select,replication client,process on \*.\* to 'hello'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

b、部署监控插件
[root@node2 ~]# tar xf mysqld\_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local
[root@node2 ~]# vim /usr/local/mysqld\_exporter-0.12.1.linux-amd64/.my.cnf
[root@node2 ~]# cat /usr/local/mysqld\_exporter-0.12.1.linux-amd64/.my.cnf
[client]
user=hello
password=123456

#启动
[root@node2 ~]# nohup /usr/local/mysqld\_exporter-0.12.1.linux-amd64/mysqld\_exporter --config.my-cnf=/usr/local/mysqld\_exporter-0.12.1.linux-amd64/.my.cnf &

[root@node2 ~]# lsof -i :9104
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld_ex 7698 root    3u  IPv6  46415      0t0  TCP \*:peerwire (LISTEN)

c、在prometheus主配置文件中添加监控
#
[root@node1 prometheus-2.11.1.linux-amd64]# tail -10 prometheus.yml 
    static_configs:
    - targets: ['localhost:9090']

  - job_name: 'node2'
    static_configs:
    - targets: ['192.168.98.202:9100']
  
  - job_name: 'mariadb'
    static_configs:
    - targets: ['192.168.98.202:9104']

d、重启prometheus服务
[root@node1 prometheus-2.11.1.linux-amd64]# pkill prometheus
[root@node1 prometheus-2.11.1.linux-amd64]# ./prometheus --config.file=prometheus.yml &

e、通过监控页面查看服务

Prometheus_node2_mysql9.png

通过Graph页面看看相关图表

Prometheus_node2_mysql8.png

可以勾选stacked将图形显示为堆叠状。

三、prometheus Grafana数据展示及告警

prometheus这个监控软件的展示界面实在是有些难看,所以换一个展示方式:Grafana,Grafana是一个开源的度量分析和可视化工具(没有监控功能),可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警。

3.1、部署grafana

a、grafana安装

软件包获得
官方网站: grafana:https://grafana.com/

软件包安装

[root@manage01 ~]# dnf -y localinstall grafana-6.6.1-1.x86\_64...

服务启动

#服务启动
[root@manage01 ~]# systemctl enable grafana-server
Created symlink from /etc/systemd/system/multi-user.target.wants/grafana-server.service to /usr/lib/systemd/system/grafana-server.service.
[root@manage01 ~]# systemctl start grafana-server

#验证启动
[root@manage01 ~]# lsof -i :3000
COMMAND     PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
grafana-s 17154 grafana    8u  IPv6  53939      0t0  TCP \*:hbci (LISTEN)

grafana启动成功后,可以通过页面访问到grafana页面

在浏览器中输入http://IP或者域名:3000

grafana1.png
要求输入账号密码: admin/admin(默认)

当看到这个页面说明grafana已经安装成功并且工作了。

输入账号密码登录时,由于是第一次登录,为了安全要求必须更改密码后才能登录
grafana2.png
输入两次新密码后,点击save即可登录

b、grafana页面设置-添加prometheus数据源

登录成功后,页面会为你提供一个使用引导线,按着引导需要都设置一下,主要为grafana设置数据源。

image20200225145354437.png

从图标上可以看出,我们需要设置数据源—展示仪表盘—添加用户这些操作。
点击Add data source 增加数据源

image20200225145454014.png

选择Prometheus进入下一步。

image20200225153536052.png

auth部分的设置,主要是与HTTPS配合使用的,如果使用的是https就需要证书,认证等,需要对此部分内容进行一些配置

按照页面要求填入对应信息即可,一般错误都是因为输入错误造成的。点击Save & Test后保存成功

grafana6.png

通过左侧导航栏中的齿轮图标下拉菜单中的Data Source看到刚才添加的数据源

3.2、绘制图形

a、仪表盘管理

grafana7.png

添加完数据源后,可以继续添加仪表盘,这样我们就能以图表的方式看到数据,继续点击New Dshboard

grafana8.png

图上显示你可以增加一个图形到仪表盘,也可以选择一个样式图标

这里任选一个都可以,这个版本不知道作者怎么想的,其实功能都能实现

这里选择第一个 Add query

grafana9.png

进入页面后,左侧有四个标识,分别是

数据源
image20200225154121203.png

图表
image20200225154146665.png

设置
image20200225154213541.png

告警
image20200225154254663.png

我们按照图标步骤先来设置数据源

如上图,在A项中根据需求,匹配你的监控项,如果有多项,可以通过右上角的add query增加,设置完成后就可以设置图表样式了,点击图表

grafana10.png

图表主要说的就是图表的样式,主要项解释:

  • 第一个 Draw Modes 说的是图表中图的展示方式,有条状 线 点三种
  • 第二个 Mode Options 说的是图表的填充阴影透明度 图上线的粗细
  • 最后一个 是否开启图表堆叠和显示百分比

设置完成后再看看设置图标

该页面主要是设置图表名称和注释的

grafana11_1.png

设置好后我们图表设置就暂时这样,后续告警再细说告警设置。

点击保存后图表就保存好了。

grafana11.png

保存图表时会要求输入仪表盘名称。这里输入Node2

grafana12.png

确认无误后,点击保存

grafana13.png

仪表盘做好了,同时也看到了我们的图形。

接下来应该设置用户,这个用户添加,采用的是邀请机制,也就是需要我们生成邀请链接,然后发给对应的用户,然后对方访问相应的链接注册,这样,这个用户才能添加成功 点击Add users按钮

grafana14.png

按照要求添加一个用户

grafana15.png

点击邀请用户

image20200225161454447.png

输入用户名称、用户角色点击邀请

image20200225161653564.png

点击邀请后,需要将邀请链接发给用户或者自己在浏览器中打开确认邀请
切换到另一台主机在浏览器中打开

image20200225162223119.png

输入email地址和用户密码点击注册即可

image20200225162409462.png

回到使用admin账号登录grafana的主机,刷新后就可以看到新注册的用户,也可以对用户进行删除,修改权限

b、grafana设置–添加监控cpu负载的图形

点击左边侧栏:➕—Choose Visualization

选择graph图表样式

按照要求输入数据项:

  • node_load1 CPU一分钟平均负载
  • node_load5 CPU五分钟平均负载
  • node_load15 CPU十五分钟平均负载

注意:如果同时监控了多个机器,图表会显示所有机器的,如果只想显示某个机器的可以使用监控匹配。

输入方法如下:

监控项{instance=“被监控机IP:port”}

如下图

image20200225163828382.png

这样就可以显示一台机器了。

c、grafana设置—使用模板图表展示MySQL监控

mysql监控模板下载
https://github.com/percona/grafana-dashboards

模板设置

#在grafana配置文件中添加插件信息
[root@manage01 ~]# vim /etc/grafana/grafana.ini 
[root@manage01 grafana]# tail -3 /etc/grafana/grafana.ini 
[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards

#下载插件
[root@manage01 ~]# unzip grafana-dashboards-master.zip 


#拷贝插件到指定位置
[root@manage01 ~]# cd grafana-dashboards-master/
[root@manage01 grafana-dashboards-master]# cp -r dashboards /var/lib/grafana/
[root@manage01 dashboards]# vim /var/lib/grafana/dashboards/MySQL\_Overview.json
#搜索pmm-singlestat-panel替换为singlestat
#重启生效
[root@manage01 grafana]# systemctl restart grafana-server.service 

web界面导入模板

grafana20.png

选择左侧菜单—➕—Import

选择对应的json文件,然后导入即可

grafana21.png

点击导入后就可以看到图片了

image20200225171755015.png

3.3 Grafana告警

设置grafana的告警通道

image20200225174606552.png

点击左侧铃铛图表—notification channels—Add channel

image20200225175559736.png

  • Name 部分:填一个名字
  • Type 部分:选择 webhook 方式
  • Send on all alerts:勾选后表示默认所有的报警都会通过这个通道发
  • Include image:勾选后表示在报警的时候同时截图发送,因为目前的报警通知不支持图片,所以这里不用勾选
  • Disable Resolve Message:勾选后表示当状态从报警中恢复到正常时,不再发送信息,即不告知恢复正常,这里不用勾选
  • Send reminders:勾选后表示除了状态刚变成报警中时会发报警消息,过后每隔一段时间,如果依然处于报警中的状态,那么还会发一次重复报警
  • Send reminder every:表示每隔多长时间发送重复报警,这里填默认30分钟
  • Url:正式服的报警服务器
  • Http Method:选择 POST

设置完成后点击send test可以去注册账号时使用的邮箱查看报警邮件

image20200225175125898.png

设置好通道并完成验证后,为图表设置报警

onealter7.png

选择图表 点击图表名称的下拉菜单—edit 进入编辑菜单

onealter8.png

选择铃铛图表—create alert 设置图表告警

onealter9.png

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 29
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 PrometheusGrafana 监视基于 Jetty 的 Java 应用程序可以帮助你收集和分析应用程序的性能指标,并据此进行优化和调整。下面是一些基本步骤: 1. 安装 PrometheusGrafana。可以从官网下载并安装它们,也可以使用 Docker 镜像启动。 2. 在应用程序中添加 Prometheus 客户端库。这个库提供了一些 API,可以让应用程序将性能指标暴露给 Prometheus。 3. 在应用程序的启动脚本中添加启动参数,以启用 Prometheus 客户端库。例如,可以添加以下参数: ``` -javaagent:/path/to/prometheus/jmx_prometheus_javaagent.jar=8080:/path/to/config.yml ``` 这个参数会启动一个 Java 代理,将应用程序的性能指标暴露给 Prometheus。8080 是代理监听的端口号,config.yml 是代理的配置文件。 4. 在 Prometheus 的配置文件中添加监控目标。例如,可以添加以下配置: ``` - job_name: 'jetty' metrics_path: '/metrics' static_configs: - targets: ['localhost:8080'] ``` 这个配置告诉 Prometheus 监视名为 "jetty" 的目标,并从该目标的 /metrics 路径获取指标。目标地址为 localhost:8080。 5. 启动应用程序和 Prometheus,并验证指标是否被成功收集。可以使用 Prometheus 的 Web UI 来查看指标。 6. 在 Grafana 中创建仪表盘,将应用程序的指标展示出来。可以使用 Grafana 的模板和图表来构建仪表盘。 这些步骤只是一个简单的指导,具体的实现可能因应用程序和环境的不同而有所不同。但总的来说,使用 PrometheusGrafana 监视基于 Jetty 的 Java 应用程序是相对简单和方便的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值