forever不重启 node_运维监控Prometheus,部署安全的node_exporter监控主机

简介

prometheus监控系统的时候,是使用pull的方式来获取监控数据,需要被监控端监听对应的端口,prometheus从这些端口服务中拉取对应的数据。

e34c9c0f092a0d020f406e0ea48d8a21.png

node_exporter安全性讨论

node_exporter是收集操作系统的指标的一个程序。例如CPU,内存,磁盘和网络等信息。

之前版本的node_exporter没有提供验证的功能,直接访问就可以获取到对应的监控指标。

这样子存在一定的安全风险,虽然内网隔离相对安全。

可以通过主机的防火墙来限制端口访问,但是这样子,如果服务端迁移之后,就需要一台台去修改对应的策略,不方便批量自动化部署。

如果node_exporter能加上验证和传输加密,只要监听端口对内网网段开放,我们就可以随意迁移我们的Prometheus服务了。

80858f99fb0bc68e49e485534e6a8c00.png

给node_exporter添加Basic Auth

为node_exporter加上基础的密码验证,提升一定的安全性。

生成密码

可以使用htpasswd这个命令生成对应的密码串

htpasswd  -nBC 12  opcai
New password: Re-type new password: opcai:$2y$12$B2gIBNeB1XL1Q614RQkQS.N6yAeIZkqJk80QdmODrWNb7WuLUF/vG

配置node_exporter

node_exporter启动的时候需要指定配置文件可以使用--web.config这个参数指定配置文件

vim web_config.yml

添加上基础验证

basic_auth_users:  opcai: $2y$12$B2gIBNeB1XL1Q614RQkQS.N6yAeIZkqJk80QdmODrWNb7WuLUF/vG

这里的opcai就是用户名,后面的值就是加密后的密码,用户名: 加密密码,注意冒号中间需要有一个空格。

启动服务

启动的时候指定配置文件的路径

./node_exporter --web.config=web_config.yml

然后访问默认端口9100的时候,浏览器就会提示验证,输入对应的用户名和密码就可以获取到指标数据。

40c1e5b3662962b526e9365dd8c95c71.png

配置prometheus自动验证node_exporter

在prometheus.yml加入job

  - job_name: 'auth_node_exporter'    basic_auth:      username: opcai      password: admin    # metrics_path defaults to '/metrics'    # scheme defaults to 'http'.    static_configs:    - targets: ['192.168.10.9:9100']

重载prometheus服务会自动去获取数据了。

基础的验证只能是防君子不能防小人,只要抓包就可以获取对应的密码串了。

加强安全性,就需要加上tls

生成证书

直接使用openssl生成证书就可以使用了。

openssl req  -x509   -newkey rsa:4096  -nodes  -keyout prometheus.key  -out prometheus.crt

node_exporter配置证书

同样的配置到web_config.yml文件里面即可

tls_server_config:  cert_file: prometheus.crt  key_file: prometheus.keybasic_auth_users:  opcai: $2y$12$B2gIBNeB1XL1Q614RQkQS.N6yAeIZkqJk80QdmODrWNb7WuLUF/vG

重启node_exporter,然后需要使用https访问了

配置prometheus配置https

  - job_name: 'auth_node_exporter'    scheme: https    tls_config:      insecure_skip_verify:  true    basic_auth:      username: opcai      password: admin​    # metrics_path defaults to '/metrics'    # scheme defaults to 'http'.​    static_configs:    - targets: ['192.168.100.2:9100']

由于证书不是合法的,要跳过证书的要验证insecure_skip_verify。

总结

简单的配置就可以让prometheus加上验证和tls,减少监控系统的安全风险。

安全无小事,大家需重视。

3918c0953299ced6045e13c811e71817.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340065.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

netbeans ide_IDE:5个最喜欢的NetBeans功能

netbeans ide愉快的发展……。 NetBeans具有许多有趣的功能 ,这些功能使开发非常容易,只需很少的步骤,并且可以在非常快速地将产品推向市场的过程中创造出非常高效的环境 。 将我的谈话仅限于五个功能非常困难,而此IDE具有大量有…

那是两个小时我不会回来

正如我之前关于linting主题所说的 ,花时间修改代码的好处很有限,因为自动工具告诉您这样做。 更糟糕的是,这些工具并非万无一失。 例如,我们一直在针对完美无害的try-with-resources构造周围的SpotBugs警告中添加排除项&#xff…

oracle 查询不同编号的时间最小记录_投稿 | ORACLE amp; PostgreSql 利用伪列删除完全重复的两行...

作者:缪晓丽DBA、数据库爱好者、从业10年。对 DB2、PostgreSQL、Oracle 均有较长的运维经验。本次演示的 test 表如下:01Oracle 的 rowidSQL 语句:DELETE FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY id ORDER BY id) AS rn, id, name…

addcslashes php,php addcslashes函数怎么用

php addcslashes函数返回在指定字符前添加反斜杠的字符串。其语法是addcslashes(string,characters),参数string是必须的,规定要转义的字符串,characters是必须,规定要转义的字符或字符范围。addcslashes函数怎么用?作…

struct类型重定义 不同的基类型_C++构造数据类型

结构体(struct)定义:结构体是一个数据类型,是由多个不同类型的数据组成的数据集合。关键字为:struct 。优点:大大减少程序代码的离散性,使程序代码阅读更加符合逻辑。语法:struct 结构体类型名{ 成员类型 成…

php zip怎么安装,php如何安装zip模块?(方法介绍)

php 安装zip模块为php安装zip扩展wget http://pecl.php.net/get/zip-1.13.5.tgz tar -zvxf zip-1.13.5.tgz cd zip-1.13.5 /home/xxx/php/bin/phpize出现错误:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment va…

vs如何写多线程_java中的多线程的示例

在讨论多线程之前,让我们先讨论线程。线程是进程中轻量级的最小部分,可以与同一进程的其他部分(其他线程)并发运行。线程是独立的,因为它们都有独立的执行路径,这就是为什么如果一个线程中发生异常,它不会影响其他线程…

matlab mex路径,使用matlab进行mex编译时的路径问题mexopts

matlab和vs 进行混合编程时总需要使用matlab编译mexFunction.cpp文件。这些文件免不了使用include下的*.h和lib下的*.lib文件。举matlab和vs 进行混合编程时总需要使用matlab编译mexFunction.cpp文件。这些文件免不了使用include下的*.h和lib下的*.lib文件。举例说明&#xff0…

hystrix应用 博客_用Hystrix保护您的应用程序

hystrix应用 博客在先前的帖子http://www.javacodegeeks.com/2014/07/rxjava-java8-java-ee-7-arquillian-bliss.html中,我们讨论了微服务以及如何使用(RxJava)的Reactive Extensions编排微服务。 但是,如果一项或多项服务因已停止…

艾默生变频器报警PHP,艾默生ct变频器报警ou 这个CT的变频器报警UU怎么解决?

1, 这个CT的变频器报警UU怎么解决?(1) 控制板Q1(15050026)坏。(2) 7840坏:在变频器通电时,用直流档,黑接5脚,红分别接6,7,8脚,值为2.5,2.5,5为正常,否则7840坏。(3) 小板坏:在变频器…

Project Reactor展开方法

最近,我的一位同事向我介绍了Project Reactor类型的expand运算符,在这篇文章中,我想介绍几种使用它的方式。 展开分页结果 考虑在名为City的模型上基于Spring Data的存储库: import org.springframework.data.jpa.repository.Jpa…

同时买票是怎么实现的_去巴黎玩怎么买地铁票最划算?| 巴黎最全交通攻略

次票、天票、机场票……傻傻分不清楚。不会法语怎么办?什么时候买有优惠?看这一篇全知道​​巴黎作为国际大都市,交通还是非常方便的。基本上80%的巴黎景点都能坐地铁到达,就在我们平常所说的小巴黎里。整个巴黎岛(Ile…

php输入地址查询,PHP查询用户IP所在地址

原创内容,转载请注明出处:https://www.myzhenai.com.cn/post/3042.html关键词:IP所在地址 IP地址 PHP获取ip地址相关内容:获取IP所处位置的Shell代码:https://www.myzhenai.com.cn/post/2917.htmlWordPress获取当前浏览…

swig模板 PHP,如何使用nodejs前端模板引擎swig

这次给大家带来如何使用nodejs前端模板引擎swig,使用nodejs前端模板引擎swig的注意事项有哪些,下面就是实战案例,一起来看一下。相对于jade,我还是更喜欢swig前端模板引擎,jade虽然语法简练高效了不少,但是…

redis是什么_什么是Redis?为什么我们要用Redis?

前言当结束Java和数据库的学习以后,你就会接触到Redis这个词,我第一次听到的时候脑海里就会浮现这两个问题:什么是Redis?为什么我们要用Redis?我了解完以后,写出来帮助大家能够更快的认识它。我们先来看它的…

性能php 教程,提高PHP性能效率的几个技巧

如何提高效率问题,往往同样的功能,不一样的代码,出来的效率往往大不一样。● 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:…

python from numpy import,python zeros()使用(from numpy import *)-Go语言中文社区

参考:############################################################函数zeros()在模块numpy中:from numpy import *help(zeros)该函数功能是创建给定类型的矩阵,并初始化为0参数简洁:shape:可以是int类型数据&#x…

sqlmap绕过d盾_Waf功能、分类与绕过

## 一. waf工作原理Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。常见的系统攻击分为两类:- 一是利用Web服务器的漏洞进行攻击,如DDOS攻击、病毒木马破坏等攻击;- 二是利用网页自身的安全漏洞进…

JUnit5 TestSuite替代

JUnit4具有TestSuite类来聚合多个测试。 这在JUnit 5中不可用。通常,通过套件中的一堆命名测试进行的测试发现有些糟透了。 但是,如果目标不是测试发现,而是不同测试类之间的资源共享,那么创建父对象是有意义的。 JUnit 5提供了N…

junit:junit_简而言之,JUnit:测试隔离

junit:junit作为顾问,我仍然经常遇到程序员,他们对JUnit及其正确用法的理解最多。 这使我有了编写多部分教程的想法,以从我的角度解释要点。 尽管存在一些有关使用该工具进行测试的好书和文章,但是也许可以通过本动手实践系列中的…