部署prometheus+Grafana可视化仪表盘监控服务

一、部署prometheus及监控仪表盘

简介

Prometheus是开源监控报警系统和时序列数据库(TSDB)。

Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控,输出被监控组件信息的HTTP接口被叫做exporter。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。

1 基础环境

环境/组件 版本 下载地址 操作系统 CentOS 7.3 http://archive.kernel.org/centos-vault/7.3.1611/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso

Prometheus 2.6.0 Download | Prometheus

go 1.12.3 https://mirrors.xlhy1.com/source-code/go1.12.3.linux-amd64.tar.gz

Grafana 5.4.2 https://dl.grafana.com/oss/release/grafana-5.4.2-1.x86_64.rpm

2 安装go

2.1 安装

bash 复制代码
rz             #上传go1.12.3.linux-amd64.tar.gz压缩包
tar -C /usr/local/ -xzvf go1.12.3.linux-amd64.tar.gz

2.2 配置环境变量

bash 复制代码
vim /etc/profile                            #打开配置文件
export PATH=$PATH:/usr/local/go/bin         #添加内容
 
source /etc/profile                         #刷新环境变量配置文件

2.3 验证版本

bash 复制代码
go version

3. 安装Prometheus

3.1 安装

bash 复制代码
rz                                                                      #上传 prometheus-2.6.0.linux-amd64.tar.gz
tar -C /usr/local/ -xzvf prometheus-2.6.0.linux-amd64.tar.gz            #解压缩到指定目录
cd /usr/local/                                                          #进入目录
ln -sv /usr/local/prometheus-2.6.0.linux-amd64/ /usr/local/prometheus   #创建软连接

3.2 修改prometheus配置文件

bash 复制代码
vim /usr/local/prometheus/prometheus.yml            #打开配置文件
复制代码
配置文件修改后如下内容:
bash 复制代码
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).
​
# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
​
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
    - "/usr/local/prometheus/rules/node.yml"
​
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    static_configs:
    - targets: ['192.168.0.4:9090']

3.3 启动prometheus

bash 复制代码
nohup /usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml &

3.4 访问

浏览器访问:ip:9090/targets

注意:如果是云服务器,配置文件中的ip为ifconfig命令查到的IP,浏览器访问的ip为公网ip

4. 安装Grafana

4.1 安装

bash 复制代码
rz                                              #上传 grafana-5.4.2-1.x86_64.rpm
rpm -ivh --nodeps grafana-5.4.2-1.x86_64.rpm    #编译安装

4.2 可能在安装grafana时有依赖库,需要搭建个本地yum源安装fontconfig、urw-fonts

bash 复制代码
yum install fontconfig
yum install urw-fonts

4.3 启动Grafana

bash 复制代码
systemctl daemon-reload
systemctl enable grafana-server.service         #设为开机自启动
systemctl start grafana-server.service

4.4 访问grafana

浏览器访问IP:3000端口,即可打开grafana页面,默认用户名密码都是admin,初次登录会要求修改默认的登录密码

4.5 点击主界面的"Add data source"

4.6 选择Prometheus

4.7 Dashboards页面选择"Prometheus 2.0 Stats"

4.8 Settings页面填写普罗米修斯地址并保存

4.9 切换到我们刚才添加的"Prometheus 2.0 Stats"即可看到整个监控页面

二、Prometheus + Grafana监控之主机性能

监控linux机器(node-exporter) https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz

1.被监控的机器安装node-exporter

1.1 解压安装

bash 复制代码
rz                               #上传node_exporter-0.17.0.linux-amd64.tar.gz
tar -xvf -C /usr/local/ node_exporter-0.17.0.linux-amd64.tar.gz -C /usr/local/      
cd /usr/local/
ln -sv node_exporter-0.17.0.linux-amd64 node_exporter

1.2 启动node-exporter

bash 复制代码
nohup /usr/local/node_exporter/node_exporter --web.listen-address=":9100" &

启动成功后,可以访问 http://1.117.225.137:9100/metrics(IP和端口要改成相应环境的,公网ip)

2.prometheus添加监控项

2.1 修改prometheus配置文件

bash 复制代码
vim /usr/local/prometheus/prometheus.yml        #打开配置文件
#默认node-exporter端口为9100
添加配置文件内容如下:
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
​
# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
​
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
    - "/usr/local/prometheus/rules/node.yml"
​
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    static_configs:
    - targets: ['192.168.0.4:9090']
  - job_name: 'prometheus-yjsx'
    static_configs:
    - targets: ['1.117.225.137:9100']   #公网ip

2.2 重启普罗米修斯

bash 复制代码
[root@xplinux ~]# ps axu | grep prometheus          #查看进程
root      6969  0.0  4.1 146340 41780 pts/1    Sl   15:15   0:01 /usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml
root     14193  0.0  0.0 112708   980 pts/1    R+   16:35   0:00 grep --color=auto prometheus
​
kill -9 6969                                      #结束进程
nohup /usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml & #启动

3. Grafana导入画好的dashboard

Upload上传node-exporter_rev5.json文件(也可以直接使用官方模板,需要此node-exporter_rev5.json文件的可以私信我获取)

修改名字,选择我们前文创建好的数据源,点击导入即可

如果没有任何显示,是grafana缺少相关显示需要用到的插件piechart

grafana的默认插件目录是,可以将下载好的插件解压到这个目录,重启grafana即可 piechart插件下载链接:

bash 复制代码
cd /var/lib/grafana/plugins                         #进入目录
rz                                                  #上传插件 grafana-piechart-panel-5f249d5.zip
unzip grafana-piechart-panel-5f249d5.zip            #解压缩
service grafana-server restart                      #重启Grafana
ls /usr/sbin/grafana-cli plugins                    #查看已安装插件

再刷新grafana页面,即可看到我们刚才设置好的node监控

三、Prometheus + Grafana监控之Kafka

监控kafka(kafka_exporter)

GitHub - danielqsj/kafka_exporter: Kafka exporter for Prometheus 下载

1. 安装kafka_exporter

注:1个kafka集群只需要1个exporter,在集群上的任意1台服务器部署。

kafka_exporter-1.2.0.linux-amd64.tar下载地址:忘求了,家人们可以百度找找

bash 复制代码
rz          #上传kafka_exporter-1.2.0.linux-amd64.tar
tar -xvf kafka_exporter-1.2.0.linux-amd64.tar -C /usr/local/
cd /usr/local/
ln -sv kafka_exporter-1.2.0.linux-amd64 kafka_exporter      #创建软连接
cd kafka_exporter

1.1 启动kafka_exporter

bash 复制代码
nohup ./kafka_exporter --kafka.server=172.16.1.224:9092 &

启动成功后,可以访问 http://172.16.1.224:9308/metrics/ ,(IP和端口要改成相应环境的)

看抓取的信息如下:

2. 修改Prometheus配置

2.1 修改prometheus组件的prometheus.yml加入kafka监控

bash 复制代码
vim /usr/local/prometheus-2.27.1/prometheus.yml     #打开prometheus配置文件
复制代码
添加内容如下:图片已丢失!!!

2.2 启动验证

复制代码
先kill掉Prometheus进程,用以下命令重启它,然后查看targets:
bash 复制代码
cd /usr/local/prometheus
nohup ./prometheus --config.file=prometheus.yml &

State=UP,说明成功

3. Grafana配置

导入仪表盘模板

通过浏览器访问:IP地址:3000

图片已丢失!!!

👑👑👑结束语👑👑👑

相关推荐
Youkiup7 分钟前
【linux 常用命令】
linux·运维·服务器
qq_2975046111 分钟前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
_oP_i16 分钟前
.NET Core 项目配置到 Jenkins
运维·jenkins·.netcore
weixin_4373982124 分钟前
Linux扩展——shell编程
linux·运维·服务器·bash
小燚~26 分钟前
ubuntu开机进入initramfs状态
linux·运维·ubuntu
小林熬夜学编程33 分钟前
【Linux网络编程】第十四弹---构建功能丰富的HTTP服务器:从状态码处理到服务函数扩展
linux·运维·服务器·c语言·网络·c++·http
上海运维Q先生38 分钟前
面试题整理15----K8s常见的网络插件有哪些
运维·网络·kubernetes
hhhhhhh_hhhhhh_1 小时前
ubuntu18.04连接不上网络问题
linux·运维·ubuntu
冷心笑看丽美人1 小时前
探秘 DNS 服务器:揭开域名解析的神秘面纱
linux·运维·服务器·dns
wenxiaocsdn1 小时前
某科技局国产服务器PVE虚拟化技术文档
运维·服务器