美文网首页
监控方案(prometheus+grafana)一体式RPM包制

监控方案(prometheus+grafana)一体式RPM包制

作者: 伊来尔去 | 来源:发表于2024-03-26 15:48 被阅读0次

系统要求

centos

简要介绍大致需要做的工作:

  • 安装制作rpm工具包(rpmdevtools)
  • 从官网下载,并解压需要的监控程序(prmetheus,note_exporter,grafana)
  • 编写服务脚本(start.sh, stop.sh,my-monitoring.service)
  • 制作SPEC打包规范
  • 生成RPM,测试

具体操作步骤如下:

  1. 安装制作rpm工具包(rpmdevtools)
yum instatll rpm-build rpmdevtools
  1. 下载监控方案相关服务包

创建my-monitoring项目目录

mk my-monitoring && cd my-monitoring
  • 下载prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.50.1/prometheus-2.50.1.linux-amd64.tar.gz
tar -xzvf prometheus-2.50.1.linux-amd64.tar.gz 
  • 下载node_exporter
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
tar -xzvf node_exporter-1.7.0.linux-amd64.tar.gz 
  • 下载grafana
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-10.3.3.linux-amd64.tar.gz
tar -zxvf grafana-enterprise-10.3.3.linux-amd64.tar.gz
  1. 配置服务

编辑 vim ~/my-monitring/prometheus-2.50.1.linux-amd64/prometheus.yml,追加内容:

  - job_name: 'nodes'
    static_configs:
      - targets: ['localhost:9100']
  1. 编写服务脚本(start.sh, stop.sh,my-monitoring.service)
  • vim ~/my-monitring/start.sh
#!/bin/bash

nohup /opt/my-monitoring/node_exporter-1.7.0.linux-amd64/node_exporter > /opt/my-monitoring/logs/node_exporter.log 2>&1 &
nohup /opt/my-monitoring/prometheus-2.50.1.linux-amd64/prometheus --config.file=/opt/my-monitoring/prometheus-2.50.1.linux-amd64/prometheus.yml > /opt/my-monitoring/logs/prometheus.log 2>&1 &
cd /opt/my-monitoring/grafana-v10.3.3/bin
nohup ./grafana-server > /opt/my-monitoring/logs/grafana.log 2>&1 &

sleep 10

echo -n "node_exporter status:" && curl -s http://localhost:9100/metrics | head -n 1
echo -n "Prometheus status:" && curl -s http://localhost:9090/api/v1/status/config | awk -F'[{}]' '{print $2}' | sed 's/.*status":\s*"\([^"]*\).*/\1/'
echo -n "Grafana status:" && curl -s http://localhost:3000/api/health | awk -F'[,:]' '/"database":/ {print $2}' | tr -d '"'

  • vim ~/my-monitring/stop.sh
#!/bin/bash

pkill -f "grafana server"
pkill -f prometheus
pkill -f node_exporter
  • vim ~/my-monitring/my-monitoring.service
[Unit]
Description=my server Monitoring
Wants=network-online.target
After=network-online.target

[Service]
User=root
Type=simple
RemainAfterExit=yes
ExecStart=/opt/my-monitoring/start.sh
ExecStop=/opt/my-monitoring/stop.sh
Restart=always
RestartSec=10s

[Install]
WantedBy=multi-user.target
  1. 生成rpmbuild打包目录
rpmdev-setpuptree
  1. 创建打包SPEC规范文件
vim ~/rpmbuild/SPECS/monitoring.spec

内容如下:

Summary: my server monitoring
Name: my-monitoring
Version: 1.0.0
Release: 1%{?dist}
License: GPLv3
Group: Applications/System
#BuildArch: noarch

%description
monitoring cpu, memory, network, JVM and so or.

%prep
echo "starting installation..."

%build

%install
mkdir -p %{buildroot}/opt/my-monitoring
cp -r ~/my-monitoring/node_exporter-1.7.0.linux-amd64 %{buildroot}/opt/my-monitoring/
cp -r ~/my-monitoring/prometheus-2.50.1.linux-amd64 %{buildroot}/opt/my-monitoring/
cp -r ~/my-monitoring/grafana-v10.3.3 %{buildroot}/opt/my-monitoring/
cp -r ~/my-monitoring/start_monitoring.sh %{buildroot}/opt/my-monitoring/
cp -r ~/my-monitoring/stop_monitoring.sh %{buildroot}/opt/my-monitoring/
cp -r ~/my-monitoring/my-monitoring.service %{buildroot}/opt/my-monitoring/

%files
%defattr(-,root,root,-)
/opt/my-monitoring/node_exporter-1.7.0.linux-amd64/*
/opt/my-monitoring/prometheus-2.50.1.linux-amd64/*
/opt/my-monitoring/grafana-v10.3.3/*
/opt/my-monitoring/start_monitoring.sh
/opt/my-monitoring/stop_monitoring.sh
/opt/my-monitoring/my-monitoring.service

%post
mkdir /opt/my-monitoring/logs
chmod -R 777 /opt/my-monitoring/grafana-v10.3.3
cp /opt/my-monitoring/my-monitoring.service /etc/systemd/system/my-monitoring.service
chmod 755 /etc/systemd/system/my-monitoring.service
systemctl enable my-monitoring.service
systemctl start my-monitoring.service
#systemctl daemon-reload

echo "installation completed. use the 'systemctl status my-monitoring' command to view the status of service"

%preun
systemctl stop my-monitoring.service

%postun
rm -f /etc/systemd/system/my-monitoring.service
systemctl daemon-reload

echo "uninstallation completed."

%changelog
  1. 生成RPM包
cd ~/rpmbuild/SPECS
rpmbuild -bb my-monitoring.spec
  1. 测试安装RPM
cd ~/rpmbuild/RPMS/x86_64
rpm -i my-monitoring-1.0.0-1.el7.x86_64.rpm
  1. 确认

在浏览器中输入http://localhost:3000(如果是虚拟机使用ip地址代替localhost)

  1. 卸载测试程序
rpm -e my-monitoring

相关文章

网友评论

      本文标题:监控方案(prometheus+grafana)一体式RPM包制

      本文链接:https://www.haomeiwen.com/subject/hcbstjtx.html