津爱改装车|我选择的开源运维监控系统-Prometheus( 二 )
systemd时候记得一定要加上WorkingDirectory的工作目录 , 这个决定你的数据存放到什么地方 。
systemd管理:
systemctl daemon-reload?systemctl enable prometheus?systemctl start prometheus?systemctl stop prometheus?systemctl restart prometheus
部署node_exporternode_exporter是用于获取主机监控指标的程序 , 也是Go写的 , 部署一样方便 , 二进制直接执行就可以了 。
tarzxvf node_exporter-1.0.1.linux-amd64.tar.gz
同样也可以使用systemd执行服务管理
vim /usr/lib/systemd/system/node_exporter.service
[Unit]Description=prometheusAfter=network.target?[Service]Type=simpleWorkingDirectory=/opt/node_expaorter/node_expaorterExecStart=/opt/node_expaorter/node_expaorterLimitNOFILE=65536PrivateTmp=trueRestartSec=2StartLimitInterval=0Restart=always?[Install]WantedBy=multi-user.target
systemd管理:
systemctl daemon-reload?systemctl enable node_exporter?systemctl start node_exporter?systemctl stop node_exporter?systemctl restart node_exporter
增加监控编辑prometheus的配置文件prometheus.yaml , 添加上job 。
复制上面的prometheus的job_name , 注意yaml的格式 , 需要相同的缩进 , 如果只有几台固定的机器 , 直接使用静态配置就可以了 。
- job_name: 'node_exporter'?# metrics_path defaults to '/metrics'# scheme defaults to 'http'.?static_configs:- targets: ['192.168.122.100:9100','192.168.122.101:9100','192.168.122.101:9100']
如果有很多台主机需要监控 , 而且有可能随时需要增加或者删除 , 这时候最简单的方式就是使用监听目录的文件变化来加载对应的配置 。 配置也很简单
- job_name: 'node_exporter'refresh_interval: 1mfile_sd_configs:- files:- /opt/prometheus/servers/*.json
这样子就设置根据文件的变化来修改对应的配置 , 比较灵活 。
refresh_interval 指定文件检测的间隔 , 默认是5分钟 。
只要是配置目录下后缀名是.json的文件都会被自动加载 , 当然文件格式是有要求的 。
[{"targets": ["192.168.122.100:9100"],"labels": {"instance": "192.168.122.100","job": "node_exporter"}},{"targets": ["192.168.122.101:9100"],"labels": {"instance": "192.168.122.101","job": "node_exporter"}}]
这里可以对标签进行修改或者增加 。 也可以分成多个文件 。 格式都要一样的 。
重载配置如果是静态配置需要重载Prometheus的进程 , 通过kill -HUP [pid] 的方式就可以重载了 。
也可以通过启用管理api进行重载 , 这个需要在启动的时候加--web.enable-admin-api的参数
然后通过访问:
curl http://localhost:9090/-/reload
如果是动态文件的方式就不用管了 , 配置好文件 , 到时间间隔检测的文件变化就会自动加载了 。
总结不是很简单 , 一会就可以完成部署 , 但是还有很多优化的空间 , 最好是安全的问题:
- systemd服务默认是使用root用户启动服务的 , 我们可以通过设置User=username , 来使用普通用户执行 , 如果之前使用root用户开启过了 , 就需要修改一下数据目录data的权限 。
- 进行不要开启admin-api , 虽然很方便 , 但是也存在风险 , 使用动态文件配置就可以轻松解决重载的问题了 。
- 默认服务都是通过http访问的没有密码验证、ssl加密等安全措施 , 也是一个风险点 。 解决!prometheus的端口可以使用nginx进行代理 , 增加https证书即可;针对node_exporter在1.0版本之后也可以使用https+basic_auth的方式增加安全性 。
- 地史食堂|未必需要开凿克拉运河,泰国还有第二选择,和新加坡竞争
- 特朗普|最新美国大选民调结果!52%的人选择拜登,领先特朗普10个点
- 游戏攻略|《我的勇士》世界boss辅助选什么?世界boss辅助选择推荐
- 加拿大必读|领先特朗普10个点,最新美国大选民调结果!52%的人选择拜登
- ZAKER|高净值人群想要规避风险?海外房产或是一个不可多得的选择!
- |伦敦美学品牌EXACTING开创美学空间新体验,让每一次选择都毫不费力
- 小小说体育|桑巴军团能夺得世界杯吗?,如果迭戈科斯塔选择为巴西队出战
- 猪肉|阿根廷对外宣称:将“延迟”对华出口猪肉,中国这次选择让步
- 吃喝攻略|滑档、分低,无缘本科却想继承上学,不要灰心,这些机会能够选择
- 很多过去|可子弹和弓箭同时发射, 战士却选择中弹,子弹威力比弓箭大很多,