背景:因业务需求,需要对服务器性能进行监控及告警,同时,对业务日志进行展示与告警。
综合之下,决定使用Grafana及其周边数据源进行相关监控的建设,完成从展示到告警的全流程链路。

Grafana+Prometheus

Grafana+Prometheus+node_exporter完成服务器性能监控,包括如cpu,磁盘读写与使用,网络,负载等等。
Grafana+Prometheus+mysqld_exporter可以完成对数据库的监控。

Grafana

下载

官方下载地址:点击跳转至官方下载地址
类似此图中安装包格式

部署

默认端口为:3000 请确保与现有端口不冲突,如遇冲突请调整

#本文采用的是下载到本地,后上传到服务器安装部署的方式。
#规划:安装在/usr/local下面
#以root账号,在/usr/local创建文件夹grafana,并将安装包放置在此目录下
mkdir grafana
# 将安装包grafana-9.0.2-1.x86_64.rpm移动到此目录下,安装
yum grafana-9.0.2-1.x86_64.rpm
#启动服务,并加入开机自启动
systemctl daemon-reload
systemctl start grafana-server #systemctl stop grafana-server  systemctl restart grafana-server
#查看启动结果
systemctl status grafana-server
#加入开机自启动
systemctl enable grafana-server

验证部署是否成功

在浏览器中输入http://ip:3000,如果可以出现即正常,首次登录名和密码默认均为admin,登陆后需要修改。

Prometheus

下载

官方下载地址:点击跳转至官方下载地址
类似此图总安装包格式

部署

默认端口为:9090 请确保与现有端口不冲突,如遇冲突请调整
node_exporter默认端口:9100 因为Prometheus已经集成,无需单独安装部署

#本文采用的是下载到本地,后上传到服务器安装部署的方式。
#规划:安装在/usr/local下面
#以root账号,在/usr/local创建文件夹prometheus,并将安装包放置在此目录下
mkdir prometheus
# 将安装包prometheus-2.31.1.linux-amd64.tar.gz移动到此目录下,解压
tar xvf prometheus-2.31.1.linux-amd64.tar.gz
#此版本已经默认集成了node_exporter,具体可以看解压文件夹下是否有node_exporter相关目录
#修改配置文件prometheus.yml
cd prometheus-2.31.1.linux-amd64
vi prometheus.yml 
#出现编辑页面,找到下述部分进行调整
#将localhost改成实际服务器ip
    static_configs:
      - targets: ["localhost:9090"] 
#再新增node_exporter节点,因为已经集成,没有必要单独再去安装 ,将localhost改成实际服务器ip
#add node code
  - job_name: "node"
    static_configs:
       - targets: ["localhost:9100"]
#启动服务
# 在安装目录下/usr/local/prometheus/prometheus-2.31.1.linux-amd64
nohup ./prometheus &
#设置开机自启动
cd /usr/lib/systemd/system/
vi prometheus.service
#可以复制下述脚本,并修改其中路径地址即可
[Unit]
Description=prometheus service

[Service]
# forking background running
Type=forking
ExecStart=/usr/local/prometheus/prometheus-2.31.1.linux-amd64/prometheus \
        --config.file=/usr/local/prometheus/prometheus-2.31.1.linux-amd64/prometheus.yml \

TimeoutStopSec=10
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
# 设置开机自启动
systemctl enable prometheus.service

验证部署是否成功

在浏览器中输入http://ip/targets ,如果出现下面页面即成功
在这里插入图片描述

使用

在这里插入图片描述
在这里插入图片描述
保存即可,制作看板,可以从官网导入公开的模板:https://grafana.com/grafana/dashboards/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述



Grafana+Loki+Promtail

Grafana+Loki+Promtail完成对服务器上日志监控,如对log文件夹下文件进行监控,可以采用此方式。

Grafana

具体参考上述,此处不再赘述。如果是同时都安装,也没必要再次安装Grafana,直接使用即可。Grafana相当于前端,直接使用同一个即可。

Loki

下载

官方下载地址:点击跳转至官方下载地址
选择我们需要的即可

部署

默认端口为:3100 请确保与现有端口不冲突,如遇冲突请调整

#本文采用的是下载到本地,后上传到服务器安装部署的方式。
#规划:安装在/usr/local下面,数据放在/data下
#以root账号,在/usr/local创建文件夹loki,并将安装包放置在此目录下
mkdir loki
#新建存储路径,数据放在/data下
mkdir  /data
mkdir  /data/loki
mkdir  /data/loki/{chunks,index}
# 将安装包loki-linux-amd64.zip移动到/usr/local下,解压
unzip loki-linux-amd64.zip
# 解压后重新生成文件夹loki-linux-amd64 ,将文件移动到loki目录下
mv loki-linux-amd64 /usr/local/loki/
# 在/usr/local/loki目录下,修改配置,如没有则新增
vi config.yaml 
#在编辑页面可以插入下述脚本,可自行调整部分配置
auth_enabled: false
server:
  http_listen_port: 3100
ingester:
  lifecycler:
    address: xx.xx.xx.xx #ip地址
    ring:
      kvstore:
        store: inmemory
      replication_factor: 1
    final_sleep: 0s
  chunk_idle_period: 5m
  chunk_retain_period: 30s
 
schema_config:
  configs:
  - from: 2022-07-01
    store: boltdb
    object_store: filesystem
    schema: v11
    index:
      prefix: index_
      period: 168h   #每张表的时间范围7天
 
storage_config:
  boltdb:
    directory: /data/loki/index   #索引文件存储地址
 
  filesystem:
    directory: /data/loki/chunks  #块存储地址
 
limits_config:
  enforce_metric_name: false
  reject_old_samples: true
  reject_old_samples_max_age: 168h
chunk_store_config:
# 最大可查询历史日期 28天,这个时间必须是schema_config中的period的倍数,否则报错。
  max_look_back_period: 672h
# 表的保留期28天
table_manager:
  retention_deletes_enabled: true
  retention_period: 672h
#启动服务
nohup ./loki-linux-amd64 -config.file=./config.yaml >./loki.log 2>&1 &
#设置开机自启动
cd /etc/systemd/system/
vi loki.service
#可复制下述页面,调整文件路径即可
[Unit]
Description=loki
After=network.target 

[Service]
ExecStart=/usr/local/loki/loki-linux-amd64 \
        -config.file=/usr/local/loki/config.yaml &>> /usr/local/loki/loki.log
Restart=on-failure

[Install]
WantedBy=multi-user.target
# 设置自启动
systemctl daemon-reload
# 启动服务
systemctl start loki #systemctl stop loki    systemctl restart loki
# 查看启动结果
systemctl status loki
# 加入开机自启动
systemctl enable loki

Promtail

下载

官方下载地址:点击跳转至官方下载地址
在这里插入图片描述

部署

默认端口为:9080 请确保与现有端口不冲突,如遇冲突请调整

#本文采用的是下载到本地,后上传到服务器安装部署的方式。
#规划:安装在/usr/local下面
#以root账号,在/usr/local创建文件夹promtail,并将安装包放置在此目录下
mkdir promtail
# 将安装包promtail-linux-amd64.zip移动到/usr/local下,解压
unzip promtail-linux-amd64.zip
# 解压后重新生成文件夹promtail-linux-amd64 ,将文件移动到promtail目录下
mv promtail-linux-amd64  /usr/local/promtail/
# 在/usr/local/promtail目录下,修改配置,如没有则新增
vi promtail.yaml 
#在编辑页面可以插入下述脚本,可自行调整部分配置
server:
  http_listen_port: 9080
  grpc_listen_port: 0
 
positions:
  filename: ./positions.yaml
 
clients:
  - url: http://xx.xx.xx.xx:3100/loki/api/v1/push   #loki地址,xx是ip地址
 
scrape_configs:
##jobname
 - job_name: centername                         #jobname
   static_configs:
   - targets: 
       - xx.xx.xx.xx                           #xx是ip地址
   - labels:
      job: centername                          #jobname
      host: xx.xx.xx.xx                        #xx是ip地址
      __path__: /home/script/log/*        #监控的日志地址,你们根据具体情况选择自己的路径

使用

在这里插入图片描述
在这里插入图片描述
可以新建看板,也可以从官网导入。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐