Prometheus

Prometheus 是一个开源的监控和告警软件,监控某台主机的cpu、内存、磁盘、网络流量等信息。

https://prometheus.io/ 间隔15秒抓取数据

metrics 是监控指标:cpu、内存、磁盘容量和io读写、网络流量等性能

Prometheus由哪些组件组成? Prometheus Server(存储数据TSDB 提供接口): Exporters Pushgateway(中间件代理软件) Alertmanager: Grafana Prometheus Operator Client Libraries: web ui(user interface)数据可视化工具

exporter是专门收集信息的软件(数据采集软件),被监控的其他服务器上。

TSDB  时序数据库,time series  database,数据会按照时间的顺序插入到数据库里

如何报警:短信 钉钉 微信 电话 邮件

  1. 使用ansible下发node_exporter-1.4.0-rc.0.linux-amd64.tar.gz 到web和db服务器上
  2. ansible all -m copy -a "src=/root/node_exporter-1.4.0-rc.0.linux-amd64.tar.gz  dest=/root/node_exporter-1.4.0-rc.0.linux-amd64.tar.gz"
  3. ansible  all  -m fetch  -a "src=/etc/passwd  dest=/root"
  4. ansible all -m yum -a “name=epel-release  state = removed/installed/absentminute”
  5. mkdir /prome
  6. cd /prome
  7. ls

tar xf prometheus-2.43.0.linux-amd64.tar.gz

mv prometheus-2.43.0.linux-amd64    prometheus 改名

PATH=/prom/prometheus:$PATH  临时和永久修改PATH变量,添加prometheus的路径

echo 'PATH=/prom/prometheus:$PATH'  >>/etc/profile

把prometheus做成一个服务来进行管理,方便日后维护和使用

[root@nfs-ansible-prom prom]# vim /usr/lib/systemd/system/prometheus.service

[Unit]

Description=prometheus

[Service]

ExecStart=/prom/prometheus/prometheus --config.file=/prom/prometheus/prometheus.yml

ExecReload=/bin/kill -HUP $MAINPID

KillMode=process

Restart=on-failure

[Install]

WantedBy=multi-user.target

  1. 重新加载systemd相关的服务,识别Prometheus服务的配置文件

       [root@nfs-ansible-prom prom]# systemctl  daemon-reload

  1. 启动Prometheus服务
    1. [root@nfs-ansible-prom prom]# systemctl start prometheus
    2. [root@nfs-ansible-prom prom]# systemctl restart prometheus
    3. [root@nfs-ansible-prom prom]# ps aux|grep prome
  2. 设置开机启动
    1. [root@nfs-ansible-prom prom]# systemctl enable prometheus
  3. 访问Prometheus 的web server
    1. http://192.168.159.138:9090
    2. http://192.168.159.138:9090/metrics

安装exporter

第2步:在整个web集群节点服务器(任何一台linux系统,例如nfs、mysql、web1、web2、LB1、LB2等)上安装exporter程序

exporter 是Prometheus的客户端的数据采集工具--》go语言编写的

node-exporter 是专门用来采集节点服务器的通用性能指标(cpu、内存、磁盘、网速等)

将node-exporter传递到所有的服务器上的/root目录下

ansible all -m copy  -a 'src=node_exporter-1.4.0-rc.0.linux-amd64.tar.gz dest=/root/'

编写在其他机器上安装node_exporter的脚本

[root@nfs-ansible-prom prom]# vim install_node_exporter.sh

#!/bin/bash

tar xf /root/node_exporter-1.4.0-rc.0.linux-amd64.tar.gz  -C /

cd  /

mv node_exporter-1.4.0-rc.0.linux-amd64/ node_exporter

cd /node_exporter/

echo 'PATH=/node_exporter/:$PATH' >>/etc/profile

#生成nodeexporter.service文件

cat >/usr/lib/systemd/system/node_exporter.service  <<EOF

[Unit]

Description=node_exporter

[Service]

ExecStart=/node_exporter/node_exporter --web.listen-address 0.0.0.0:9090

ExecReload=/bin/kill -HUP $MAINPID

KillMode=process

Restart=on-failure

[Install]

WantedBy=multi-user.target

EOF

#让systemd进程识别node_exporter服务

systemctl daemon-reload

#设置开机启动

systemctl  enable node_exporter

#启动node_exporter

systemctl  start node_exporter

使用ansible的copy模块推送脚本到db服务器

[root@ansible prometheus]# ansible db  -m copy  -a "src=install_node_exporter.sh dest=/root"

演示shell模块的使用

[root@mysql ~]# cat mkdir.sh

mkdir sc{1..100}

[root@mysql ~]#

[root@ansible prometheus]# ansible db -m shell -a "bash /root/mkdir.sh"

192.168.205.133 | CHANGED | rc=0 >>

prometheus]#ansible db -m script -a "/prome/prometheus/install_node_exporter.sh"

shell模块和script模块的区别

shell模块执行的脚本,需要提前copy到其他的机器上也可以执行命令

script模块不需要提前将脚本传输到其他机器,直接在ansible机器上执行就可以,会自动先推送文件到执行脚本的机器上,执行完后删除脚本  专门一点

  1. 在ansible服务器上执行安装node_exporter的脚本

[root@nfs-ansible-prom prom]# ansible all -m script  -a "/prome/install_node_exporter.sh"

  1. 在其他的服务器上查看是否安装node_exporter成功

[root@lb2 ~]# ps aux|grep node

     添加被监控的服务器

  1. 在prometheus服务器上添加抓取数据的配置,添加node节点服务器,将抓取的数据存储到时序数据库里[root@nfs-ansible-prom prometheus]# vim prometheus.yml
  2. scrape_configs:

# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.  在此文件新增web和mysql 注意要对齐

job_name: "prometheus"

    static_configs:

      - targets: ["192.168.159.138:9090"]

  - job_name: "web-1"

    static_configs:

     - targets: ["192.168.159.136:9090"]

  - job_name: "mysql"

    static_configs:

     - targets: ["192.168.159.137:9090"]

  1. 重启Prometheus服务

           [root@nfs-ansible-prom prometheus]# service prometheus restart

  1. 在windows的浏览器访问

http://192.168.203.138:9090/targets

图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值