采用『Prometheus+Grafana』安装部署方式实现对Linux系统主机监控管理
文章目录
基于CentOS 7.9系统安装操作
参考链接?:Install on RPM-based Linux | Grafana Labs
本安装过程基于VMware虚拟机上进行操作。
基于CentOS 7.9系统进行搭建部署。
〇、参考链接
1️⃣Grafana: The open observability platform | Grafana Labs
2️⃣Install on RPM-based Linux | Grafana Labs
4️⃣Prometheus(一):Prometheus+Grafana 安装配置 - Aiden郭祥跃 - 博客园
一、前期准备
1、安装CentOS系统
此处安装步骤省略
2、准备部署环境
(1)修改主机名
[root@grafana ~]# hostnamectl set-hostname grafana
[root@grafana ~]# bash
[root@grafana ~]# hostnamectl
Static hostname: grafana
Icon name: computer-vm
Chassis: vm
Machine ID: 68fd3df47b4549708fadff037e734008
Boot ID: 9839e70e6c7c48c0a993a989fdd23c42
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1160.53.1.el7.x86_64
Architecture: x86-64
(2)查看CentOS版本号
[root@computer-vm ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
(3)配置网络参数信息
[root@grafana ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens32
[root@grafana ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=0cf8b554-d0e7-47d1-b2ce-73ebe8b1ecbe
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.200.60
NETWORK=24
GATEWAY=192.168.200.1
DNS1=8.8.8.8
DNS2=192.168.200.1
(4)关闭防火墙
[root@grafana ~]# systemctl stop firewalld
[root@grafana ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@grafana ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Docs: man:firewalld(1)
Jan 30 23:16:15 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Jan 30 23:16:16 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Jan 30 23:25:26 grafana systemd[1]: Stopping firewalld - dynamic firewall daemon...
Jan 30 23:25:27 grafana systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@grafana ~]#
(5)关闭SELINUX安全模式
[root@grafana ~]# setenforce 0
[root@grafana ~]# getenforce
Permissive
[root@grafana ~]# vi /etc/sysconfig/selinux
[root@grafana ~]# cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled //重启生效
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
[root@grafana ~]#
3、测试网络连通性
[root@grafana ~]# ping qq.com
PING qq.com (123.151.137.18) 56(84) bytes of data.
64 bytes from 123.151.137.18 (123.151.137.18): icmp_seq=1 ttl=128 time=31.0 ms
64 bytes from 123.151.137.18 (123.151.137.18): icmp_seq=2 ttl=128 time=32.1 ms
64 bytes from 123.151.137.18 (123.151.137.18): icmp_seq=3 ttl=128 time=31.2 ms
64 bytes from 123.151.137.18 (123.151.137.18): icmp_seq=4 ttl=128 time=32.7 ms
64 bytes from 123.151.137.18 (123.151.137.18): icmp_seq=5 ttl=128 time=32.6 ms
^C
--- qq.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4009ms
rtt min/avg/max/mdev = 31.028/31.952/32.706/0.695 ms
[root@grafana ~]#
4、备份并缓存YUM源
- 备份系统自带YUM源
[root@grafana ~]# cd /etc/yum.repos.d/
[root@grafana yum.repos.d]# ll
total 32
-rw-r--r--. 1 root root 1664 Nov 23 2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23 2018 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Nov 23 2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Nov 23 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Nov 23 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23 2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23 2018 CentOS-Vault.repo
[root@grafana yum.repos.d]# mkdir bak
[root@grafana yum.repos.d]# cp -r CentOS-* bak/
[root@grafana yum.repos.d]# ll
total 32
drwxr-xr-x. 2 root root 187 Jan 30 23:30 bak
-rw-r--r--. 1 root root 1664 Nov 23 2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Nov 23 2018 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Nov 23 2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Nov 23 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Nov 23 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Nov 23 2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Nov 23 2018 CentOS-Vault.repo
[root@grafana yum.repos.d]# cd bak/
[root@grafana bak]# ll
total 32
-rw-r--r--. 1 root root 1664 Jan 30 23:30 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 Jan 30 23:30 CentOS-CR.repo
-rw-r--r--. 1 root root 649 Jan 30 23:30 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 Jan 30 23:30 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 Jan 30 23:30 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 Jan 30 23:30 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 Jan 30 23:30 CentOS-Vault.repo
[root@grafana bak]#
5、重新加载YUM源镜像
[root@grafana ~]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras updates
[root@grafana ~]# yum makecache
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.ustc.edu.cn
* extras: mirrors.nju.edu.cn
* updates: mirrors.nju.edu.cn
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
(1/10): base/7/x86_64/group_gz | 153 kB 00:00:00
(2/10): extras/7/x86_64/filelists_db | 259 kB 00:00:00
(3/10): extras/7/x86_64/other_db | 145 kB 00:00:00
(4/10): updates/7/x86_64/filelists_db | 7.4 MB 00:00:00
(5/10): extras/7/x86_64/primary_db | 243 kB 00:00:00
(6/10): base/7/x86_64/other_db | 2.6 MB 00:00:00
(7/10): base/7/x86_64/filelists_db | 7.2 MB 00:00:01
(8/10): base/7/x86_64/primary_db | 6.1 MB 00:00:01
(9/10): updates/7/x86_64/primary_db | 13 MB 00:00:00
(10/10): updates/7/x86_64/other_db | 955 kB 00:00:00
Metadata Cache Created
[root@grafana ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.nju.edu.cn
* updates: mirrors.nju.edu.cn
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10,072
extras/7/x86_64 CentOS-7 - Extras 500
updates/7/x86_64 CentOS-7 - Updates 3,369
repolist: 13,941
[root@grafana ~]#
6、更新YUM源仓库
执行yum update 命令
二、环境部署规划表
系统 | 主机名 | IP地址 | |
---|---|---|---|
服务端/监视器/Prometheus服务端/Grafana服务端 | CentOS 7.9 | grafana | 192.168.200.30 |
客户端①/被监控主机① | CentOS 7.9 | centos7 | 192.168.200.40 |
客户端②/被监控主机② | CentOS 7.9 | Computer-VM | 192.168.200.20 |
三、操作步骤
Ⅰ、Prometheus服务端安装部署
Prometheus服务端基于服务端192.168.200.30进行操作部署。
1.1、安装Go环境
采用源码编译安装的方式,下载最新版本的安装包地址: Downloads - The Go Programming Language
Go环境Linux版本安装包: https://go.dev/dl/go1.17.6.linux-amd64.tar.gz
[root@grafana ~]# cd /usr/local/
[root@grafana local]# curl -OL https://go.dev/dl/go1.17.6.linux-amd64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 75 100 75 0 0 104 0 --:--:-- --:--:-- --:--:-- 104
100 128M 100 128M 0 0 2150k 0 0:01:01 0:01:01 --:--:-- 2228k
[root@grafana local]# ls
bin etc games go1.17.6.linux-amd64.tar.gz include lib lib64 libexec sbin share src
[root@grafana local]#
1.2、将Go压缩包解压
bin etc games go1.17.6.linux-amd64.tar.gz include lib lib64 libexec sbin share src
[root@grafana local]# tar -zxf go1.17.6.linux-amd64.tar.gz
[root@grafana local]# ls
bin etc games go go1.17.6.linux-amd64.tar.gz include lib lib64 libexec sbin share src
[root@grafana local]#
1.3、配置环境变量
[root@grafana local]# vim /etc/profile
-bash: vim: command not found
//出现上述报错信息,执行yum install -y vim*命令安装Vim编辑器
[root@grafana local]# yum install -y vim*
[root@grafana local]# vim /etc/profile
[root@grafana local]# cat /etc/profile
//在profile配置文件里最后添加以下两行命令,保存并退出即可
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
[root@grafana local]# source /etc/profile
//执行此命令,使其生效
1.4、测试Go环境是否安装成功
执行go version命令,查询版本号,成功显示,即安装完成。
[root@grafana local]# go version
go version go1.17.6 linux/amd64
[root@grafana local]#
2.1、下载 Prometheus 安装包
Prometheus安装包下载地址: Download | Prometheus
Prometheus Linux版本压缩包下载链接: prometheus-2.33.0.linux-amd64.tar.gz
[root@grafana local]# curl -OL https://github.com/prometheus/prometheus/releases/download/v2.33.0/prometheus-2.33.0.linux-amd64.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 671 100 671 0 0 566 0 0:00:01 0:00:01 --:--:-- 566
100 72.3M 100 72.3M 0 0 1987k 0 0:00:37 0:00:37 --:--:-- 2188k
[root@grafana local]# ls
bin games go1.17.6.linux-amd64.tar.gz lib libexec sbin src
etc go include lib64 prometheus-2.33.0.linux-amd64.tar.gz share
[root@grafana local]#
2.2、解压 Prometheus 压缩包
[root@grafana local]# tar -zxf prometheus-2.33.0.linux-amd64.tar.gz
[root@grafana local]# ls
bin go lib prometheus-2.33.0.linux-amd64 share
etc go1.17.6.linux-amd64.tar.gz lib64 prometheus-2.33.0.linux-amd64.tar.gz src
games include libexec sbin
[root@grafana local]# mv prometheus-2.33.0.linux-amd64 prometheus
//修改安装包文件名称
[root@grafana local]# ls
bin games go1.17.6.linux-amd64.tar.gz lib libexec prometheus-2.33.0.linux-amd64.tar.gz share
etc go include lib64 prometheus sbin src
[root@grafana local]#
2.3、启动并验证Prometheus服务
[root@grafana local]# cd prometheus
[root@grafana prometheus]# ls
console_libraries consoles LICENSE NOTICE prometheus prometheus.yml promtool
[root@grafana prometheus]# ./prometheus --config.file=/usr/local/prometheus/prometheus.yml &
验证Prometheus服务是否启动,打开浏览器输入http://192.168.200.30:9090,打开Prometheus自带的监控界面。
按CTRL+C键结束Prometheus进程。
2.4、设置Prometheus服务开机自启动
- 添加prometheus.service配置文件
[root@grafana prometheus]# vim /etc/systemd/system/prometheus.service
[root@grafana prometheus]# cat /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System
[Service]
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.listen-address=:9090
Restart=on-failure
[Install]
WantedBy=multi-user.target
[root@grafana prometheus]#
- 启动Prometheus服务,并设置开机自启动
[root@grafana prometheus]# systemctl start prometheus.service
[root@grafana prometheus]# systemctl enable prometheus.service
[root@grafana prometheus]# systemctl status prometheus.service
● prometheus.service - Prometheus Monitoring System
Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2022-01-31 15:02:37 CST; 1s ago
Main PID: 9877 (prometheus)
CGroup: /system.slice/prometheus.service
└─9877 /usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.listen-address=:9090...
Jan 31 15:02:37 grafana prometheus[9877]: ts=2022-01-31T07:02:37.065Z caller=head.go:533 level=info component=tsdb msg="Re...while"
Jan 31 15:02:37 grafana prometheus[9877]: ts=2022-01-31T07:02:37.067Z caller=tls_config.go:195 level=info component=web ms...=false
Jan 31 15:02:37 grafana prometheus[9877]: ts=2022-01-31T07:02:37.480Z caller=head.go:604 level=info component=tsdb msg="WA...ment=1
Jan 31 15:02:37 grafana prometheus[9877]: ts=2022-01-31T07:02:37.481Z caller=head.go:604 level=info component=tsdb msg="WA...ment=1
Jan 31 15:02:37 grafana prometheus[9877]: ts=2022-01-31T07:02:37.481Z caller=head.go:610 level=info component=tsdb msg="WA…915309ms
Jan 31 15:02:37 grafana prometheus[9877]: ts=2022-01-31T07:02:37.484Z caller=main.go:944 level=info fs_type=XFS_SUPER_MAGIC
Jan 31 15:02:37 grafana prometheus[9877]: ts=2022-01-31T07:02:37.484Z caller=main.go:947 level=info msg="TSDB started"
Jan 31 15:02:37 grafana prometheus[9877]: ts=2022-01-31T07:02:37.484Z caller=main.go:1128 level=info msg="Loading configur...us.yml
Jan 31 15:02:37 grafana prometheus[9877]: ts=2022-01-31T07:02:37.491Z caller=main.go:1165 level=info msg="Completed loading of c…µs
Jan 31 15:02:37 grafana prometheus[9877]: ts=2022-01-31T07:02:37.491Z caller=main.go:896 level=info msg="Server is ready t...ests."
Hint: Some lines were ellipsized, use -l to show in full.
[root@grafana prometheus]#
- 若遇到以下启动失败报错信息,查看之前启动的Prometheus服务是否关闭
[root@grafana prometheus]# systemctl status prometheus.service
● prometheus.service - Prometheus Monitoring System
Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Mon 2022-01-31 15:01:16 CST; 9s ago
Main PID: 9814 (code=exited, status=1/FAILURE)
Jan 31 15:01:16 grafana systemd[1]: prometheus.service failed.
Jan 31 15:01:16 grafana systemd[1]: prometheus.service holdoff time over, scheduling restart.
Jan 31 15:01:16 grafana systemd[1]: Stopped Prometheus Monitoring System.
Jan 31 15:01:16 grafana systemd[1]: start request repeated too quickly for prometheus.service
Jan 31 15:01:16 grafana systemd[1]: Failed to start Prometheus Monitoring System.
Jan 31 15:01:16 grafana systemd[1]: Unit prometheus.service entered failed state.
Jan 31 15:01:16 grafana systemd[1]: prometheus.service failed.
Jan 31 15:01:20 grafana systemd[1]: [/etc/systemd/system/prometheus.service:3] Invalid URL, ignoring: Prometheus
Jan 31 15:01:20 grafana systemd[1]: [/etc/systemd/system/prometheus.service:3] Invalid URL, ignoring: Monitoring
Jan 31 15:01:20 grafana systemd[1]: [/etc/systemd/system/prometheus.service:3] Invalid URL, ignoring: System
[root@grafana prometheus]# ps -aux //查看服务进程
[root@grafana prometheus]# kill 9773 //执行kill命令,结束此进程
ts=2022-01-31T07:02:05.396Z caller=main.go:775 level=warn msg="Received SIGTERM, exiting gracefully..."
ts=2022-01-31T07:02:05.396Z caller=main.go:798 level=info msg="Stopping scrape discovery manager..."
ts=2022-01-31T07:02:05.396Z caller=main.go:812 level=info msg="Stopping notify discovery manager..."
ts=2022-01-31T07:02:05.396Z caller=main.go:834 level=info msg="Stopping scrape manager..."
ts=2022-01-31T07:02:05.396Z caller=main.go:794 level=info msg="Scrape discovery manager stopped"
ts=2022-01-31T07:02:05.396Z caller=main.go:808 level=info msg="Notify discovery manager stopped"
ts=2022-01-31T07:02:05.397Z caller=manager.go:945 level=info component="rule manager" msg="Stopping rule manager..."
ts=2022-01-31T07:02:05.397Z caller=manager.go:955 level=info component="rule manager" msg="Rule manager stopped"
ts=2022-01-31T07:02:05.397Z caller=main.go:828 level=info msg="Scrape manager stopped"
ts=2022-01-31T07:02:05.398Z caller=notifier.go:600 level=info component=notifier msg="Stopping notification manager..."
ts=2022-01-31T07:02:05.398Z caller=main.go:1054 level=info msg="Notifier manager stopped"
ts=2022-01-31T07:02:05.398Z caller=main.go:1066 level=info msg="See you next time!"
[1]+ Done ./prometheus --config.file=/usr/local/prometheus/prometheus.yml
[root@grafana prometheus]#systemctl daemon-reload //重新加载再启动服务
至此,Prometheus服务配置完成。
Ⅱ、Grafana服务端安装部署
Prometheus自带的监控页面显示的内容没有那么直观,安装Grafana监控数据看起来更加直观
1.1、下载并安装
方法一:从 YUM 存储库安装
?遇到以下报错信息,执行以下命令安装vim编辑器即可。
[root@grafana ~]# vim /etc/yum.repos.d/grafana.repo
bash: vim: command not found
[root@grafana ~]# yum install -y vim*
?将新文件添加到 YUM 存储库
[root@grafana ~]# vim /etc/yum.repos.d/grafana.repo
[root@grafana ~]# cat /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packages.grafana.com/enterprise/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
[root@grafana ~]#
使用以下命令之一安装 Grafana
sudo yum install grafana
# or
sudo yum install grafana-enterprise
[root@grafana ~]# yum install grafana-enterprise
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.ustc.edu.cn
* extras: mirrors.nju.edu.cn
* updates: mirrors.nju.edu.cn
grafana/signature | 454 B 00:00:00
Retrieving key from https://packages.grafana.com/gpg.key
Importing GPG key 0x24098CB6:
Userid : "Grafana <info@grafana.com>"
Fingerprint: 4e40 ddf6 d76e 284a 4a67 80e4 8c8c 34c5 2409 8cb6
From : https://packages.grafana.com/gpg.key
Is this ok [y/N]: y
grafana/signature | 3.0 kB 00:00:17 !!!
grafana/primary_db | 92 kB 00:00:01
Resolving Dependencies
--> Running transaction check
---> Package grafana-enterprise.x86_64 0:8.3.4-1 will be installed
--> Processing Dependency: urw-fonts for package: grafana-enterprise-8.3.4-1.x86_64
--> Running transaction check
---> Package urw-base35-fonts.noarch 0:20170801-10.el7 will be installed
--> Processing Dependency: urw-base35-fonts-common = 20170801-10.el7 for package: urw-base35-fonts-20170801-10.el7.noarch
--> Processing Dependency: urw-base35-z003-fonts for package: urw-base35-fonts-20170801-10.el7.noarch
--> Processing Dependency: urw-base35-standard-symbols-ps-fonts for package: urw-base35-fonts-20170801-10.el7.noarch
--> Processing Dependency: urw-base35-p052-fonts for package: urw-base35-fonts-20170801-10.el7.noarch
--> Processing Dependency: urw-base35-nimbus-sans-fonts for package: urw-base35-fonts-20170801-10.el7.noarch
--> Processing Dependency: urw-base35-nimbus-roman-fonts for package: urw-base35-fonts-20170801-10.el7.noarch
--> Processing Dependency: urw-base35-nimbus-mono-ps-fonts for package: urw-base35-fonts-20170801-10.el7.noarch
--> Processing Dependency: urw-base35-gothic-fonts for package: urw-base35-fonts-20170801-10.el7.noarch
--> Processing Dependency: urw-base35-d050000l-fonts for package: urw-base35-fonts-20170801-10.el7.noarch
--> Processing Dependency: urw-base35-c059-fonts for package: urw-base35-fonts-20170801-10.el7.noarch
--> Processing Dependency: urw-base35-bookman-fonts for package: urw-base35-fonts-20170801-10.el7.noarch
--> Running transaction check
---> Package urw-base35-bookman-fonts.noarch 0:20170801-10.el7 will be installed
--> Processing Dependency: xorg-x11-server-utils for package: urw-base35-bookman-fonts-20170801-10.el7.noarch
--> Processing Dependency: xorg-x11-server-utils for package: urw-base35-bookman-fonts-20170801-10.el7.noarch
--> Processing Dependency: xorg-x11-font-utils for package: urw-base35-bookman-fonts-20170801-10.el7.noarch
--> Processing Dependency: xorg-x11-font-utils for package: urw-base35-bookman-fonts-20170801-10.el7.noarch
---> Package urw-base35-c059-fonts.noarch 0:20170801-10.el7 will be installed
---> Package urw-base35-d050000l-fonts.noarch 0:20170801-10.el7 will be installed
---> Package urw-base35-fonts-common.noarch 0:20170801-10.el7 will be installed
---> Package urw-base35-gothic-fonts.noarch 0:20170801-10.el7 will be installed
---> Package urw-base35-nimbus-mono-ps-fonts.noarch 0:20170801-10.el7 will be installed
---> Package urw-base35-nimbus-roman-fonts.noarch 0:20170801-10.el7 will be installed
---> Package urw-base35-nimbus-sans-fonts.noarch 0:20170801-10.el7 will be installed
---> Package urw-base35-p052-fonts.noarch 0:20170801-10.el7 will be installed
---> Package urw-base35-standard-symbols-ps-fonts.noarch 0:20170801-10.el7 will be installed
---> Package urw-base35-z003-fonts.noarch 0:20170801-10.el7 will be installed
--> Running transaction check
---> Package xorg-x11-font-utils.x86_64 1:7.5-21.el7 will be installed
--> Processing Dependency: libfontenc.so.1()(64bit) for package: 1:xorg-x11-font-utils-7.5-21.el7.x86_64
---> Package xorg-x11-server-utils.x86_64 0:7.7-20.el7 will be installed
--> Processing Dependency: libXxf86misc.so.1()(64bit) for package: xorg-x11-server-utils-7.7-20.el7.x86_64
--> Processing Dependency: libXmuu.so.1()(64bit) for package: xorg-x11-server-utils-7.7-20.el7.x86_64
--> Processing Dependency: libXmu.so.6()(64bit) for package: xorg-x11-server-utils-7.7-20.el7.x86_64
--> Running transaction check
---> Package libXmu.x86_64 0:1.1.2-2.el7 will be installed
---> Package libXxf86misc.x86_64 0:1.0.3-7.1.el7 will be installed
---> Package libfontenc.x86_64 0:1.1.3-3.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
======================================================================================================================================
Package Arch Version Repository Size
======================================================================================================================================
Installing:
grafana-enterprise x86_64 8.3.4-1 grafana 78 M
Installing for dependencies:
libXmu x86_64 1.1.2-2.el7 base 71 k
libXxf86misc x86_64 1.0.3-7.1.el7 base 19 k
libfontenc x86_64 1.1.3-3.el7 base 31 k
urw-base35-bookman-fonts noarch 20170801-10.el7 base 852 k
urw-base35-c059-fonts noarch 20170801-10.el7 base 879 k
urw-base35-d050000l-fonts noarch 20170801-10.el7 base 75 k
urw-base35-fonts noarch 20170801-10.el7 base 7.6 k
urw-base35-fonts-common noarch 20170801-10.el7 base 19 k
urw-base35-gothic-fonts noarch 20170801-10.el7 base 650 k
urw-base35-nimbus-mono-ps-fonts noarch 20170801-10.el7 base 796 k
urw-base35-nimbus-roman-fonts noarch 20170801-10.el7 base 860 k
urw-base35-nimbus-sans-fonts noarch 20170801-10.el7 base 1.3 M
urw-base35-p052-fonts noarch 20170801-10.el7 base 978 k
urw-base35-standard-symbols-ps-fonts noarch 20170801-10.el7 base 40 k
urw-base35-z003-fonts noarch 20170801-10.el7 base 275 k
xorg-x11-font-utils x86_64 1:7.5-21.el7 base 104 k
xorg-x11-server-utils x86_64 7.7-20.el7 base 178 k
Transaction Summary
======================================================================================================================================
Install 1 Package (+17 Dependent packages)
Total download size: 84 M
Installed size: 276 M
Is this ok [y/d/N]:y
************
*安装过程省略*
************
Installed:
grafana-enterprise.x86_64 0:8.3.4-1
Dependency Installed:
libXmu.x86_64 0:1.1.2-2.el7 libXxf86misc.x86_64 0:1.0.3-7.1.el7
libfontenc.x86_64 0:1.1.3-3.el7 urw-base35-bookman-fonts.noarch 0:20170801-10.el7
urw-base35-c059-fonts.noarch 0:20170801-10.el7 urw-base35-d050000l-fonts.noarch 0:20170801-10.el7
urw-base35-fonts.noarch 0:20170801-10.el7 urw-base35-fonts-common.noarch 0:20170801-10.el7
urw-base35-gothic-fonts.noarch 0:20170801-10.el7 urw-base35-nimbus-mono-ps-fonts.noarch 0:20170801-10.el7
urw-base35-nimbus-roman-fonts.noarch 0:20170801-10.el7 urw-base35-nimbus-sans-fonts.noarch 0:20170801-10.el7
urw-base35-p052-fonts.noarch 0:20170801-10.el7 urw-base35-standard-symbols-ps-fonts.noarch 0:20170801-10.el7
urw-base35-z003-fonts.noarch 0:20170801-10.el7 xorg-x11-font-utils.x86_64 1:7.5-21.el7
xorg-x11-server-utils.x86_64 0:7.7-20.el7
Complete!
方法二:使用 YUM 手动安装
详情操作步骤请自行官网浏览操作
方法三:使用 RPM 安装
详情操作步骤请自行官网浏览操作
参考链接:Install on RPM-based Linux | Grafana Labs
下载RPM包链接:Download Grafana | Grafana Labs
//提示未安装wget服务
[root@grafana local]# wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.3.4-1.x86_64.rpm
-bash: wget: command not found
//执行yum install -y wget命令安装即可
[root@grafana local]# yum install -y wget
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.nju.edu.cn
* extras: mirrors.njupt.edu.cn
* updates: mirrors.nju.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package wget.x86_64 0:1.14-18.el7_6.1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=======================================================================================================================
Package Arch Version Repository Size
=======================================================================================================================
Installing:
wget x86_64 1.14-18.el7_6.1 base 547 k
Transaction Summary
=======================================================================================================================
Install 1 Package
Total download size: 547 k
Installed size: 2.0 M
Downloading packages:
wget-1.14-18.el7_6.1.x86_64.rpm | 547 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : wget-1.14-18.el7_6.1.x86_64 1/1
Verifying : wget-1.14-18.el7_6.1.x86_64 1/1
Installed:
wget.x86_64 0:1.14-18.el7_6.1
Complete!
[root@grafana local]# wget https://dl.grafana.com/enterprise/release/grafana-enterprise-8.3.4-1.x86_64.rpm
--2022-01-31 15:28:20-- https://dl.grafana.com/enterprise/release/grafana-enterprise-8.3.4-1.x86_64.rpm
Resolving dl.grafana.com (dl.grafana.com)... 199.232.194.217, 199.232.198.217, 2a04:4e42:4c::729, ...
Connecting to dl.grafana.com (dl.grafana.com)|199.232.194.217|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 81275912 (78M) [application/x-redhat-package-manager]
Saving to: ‘grafana-enterprise-8.3.4-1.x86_64.rpm’
100%[=============================================================================>] 81,275,912 2.17MB/s in 37s
2022-01-31 15:28:58 (2.12 MB/s) - ‘grafana-enterprise-8.3.4-1.x86_64.rpm’ saved [81275912/81275912]
[root@grafana local]#
[root@grafana local]# ls
bin games go1.17.6.linux-amd64.tar.gz include lib64 prometheus sbin src
etc go grafana-enterprise-8.3.4-1.x86_64.rpm lib libexec prometheus-2.33.0.linux-amd64.tar.gz share
[root@grafana local]# yum install grafana-enterprise-8.3.4-1.x86_64.rpm
1.2、启动并设置开机自启动服务
[root@grafana local]# systemctl daemon-reload
[root@grafana local]# systemctl start grafana-server
[root@grafana local]# systemctl enable grafana-server
Created symlink from /etc/systemd/system/multi-user.target.wants/grafana-server.service to /usr/lib/systemd/system/grafana-server.service.
[root@grafana local]# systemctl status grafana-server
● grafana-server.service - Grafana instance
Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2022-01-31 15:34:48 CST; 13s ago
Docs: http://docs.grafana.org
Main PID: 50955 (grafana-server)
CGroup: /system.slice/grafana-server.service
└─50955 /usr/sbin/grafana-server --config=/etc/grafana/grafana.ini --pidfile=/var/run/grafana/grafana-ser...
Jan 31 15:34:53 grafana systemd[1]: [/usr/lib/systemd/system/grafana-server.service:29] Unknown lvalue 'Protec...rvice'
Jan 31 15:34:53 grafana systemd[1]: [/usr/lib/systemd/system/grafana-server.service:31] Unknown lvalue 'Protec...rvice'
Jan 31 15:34:53 grafana systemd[1]: [/usr/lib/systemd/system/grafana-server.service:32] Unknown lvalue 'Protec...rvice'
Jan 31 15:34:53 grafana systemd[1]: [/usr/lib/systemd/system/grafana-server.service:33] Unknown lvalue 'Protec...rvice'
Jan 31 15:34:53 grafana systemd[1]: [/usr/lib/systemd/system/grafana-server.service:34] Unknown lvalue 'Protec...rvice'
Jan 31 15:34:53 grafana systemd[1]: [/usr/lib/systemd/system/grafana-server.service:35] Unknown lvalue 'Protec...rvice'
Jan 31 15:34:53 grafana systemd[1]: [/usr/lib/systemd/system/grafana-server.service:37] Unknown lvalue 'Remove...rvice'
Jan 31 15:34:53 grafana systemd[1]: [/usr/lib/systemd/system/grafana-server.service:39] Unknown lvalue 'Restri...rvice'
Jan 31 15:34:53 grafana systemd[1]: [/usr/lib/systemd/system/grafana-server.service:40] Unknown lvalue 'Restri...rvice'
Jan 31 15:34:53 grafana systemd[1]: [/usr/lib/systemd/system/grafana-server.service:41] Unknown lvalue 'Restri...rvice'
Hint: Some lines were ellipsized, use -l to show in full.
[root@grafana local]#
1.3、访问Grafana控制页面
打开浏览器,输入http://192.168.200.30:3000(端口为3000),打开Grafana控制面板, 初始默认账号和密码均为 admin,初次登录需要修改密码。
设置新的登录密码
进入Web控制界面
2.1、添加Prometheus数据源
点击Data sources
点击“Add data source”
添加Prometheus数据源
填写数据源信息
URL处填写Prometheus服务所在的IP地址,此处将Prometheus服务与Grafana安装在同一台机器上,直接填写localhost即可。
点击Save & test,保存并测试。如图所示。
Dashboards页面选择“Prometheus 2.0 Stats”
点击Dashboards选项卡,选择Prometheus 2.0 Stats
2.2、查看Prometheus监控
至此Prometheus服务端及Grafana配置完成。
Ⅲ、安装 node-exporter 插件
在需要被监视的Linux主机上安装node-exporter 插件,进行安装部署监控。
1.1、下载 node-exporter 插件
注意:注意需要下载对应的版本插件,否则会启动失败!!!
插件下载链接?:node_exporter-1.3.1.linux-386.tar.gz
[root@centos7 ~]# cd /usr/local/
[root@centos7 local]# curl -OL https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-386.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 671 100 671 0 0 327 0 0:00:02 0:00:02 --:--:-- 327
100 8422k 100 8422k 0 0 1037k 0 0:00:08 0:00:08 --:--:-- 1824k
[root@centos7 local]#
1.2、解压压缩包并更改名称
[root@centos7 local]# tar -zxf node_exporter-1.3.1.linux-386.tar.gz
[root@centos7 local]# mv node_exporter-1.3.1.linux-386 node_exporter
1.3、启动并验证服务是否正常启动
[root@centos7 local]# cd node_exporter
[root@centos7 node_exporter]# ./node_exporter
打开浏览器,输入http://192.168.200.40:9100
输入http://192.168.200.40:9100/metrics,出现以下数据,表示服务启动。
按CTRL+C键结束node_exporter进程
1.4、设置node_exporter开机自启动
创建node_exporter服务,让node_exporter以服务的方式,开机自启。
添加node_exporter.service配置文件
vim /etc/systemd/system/node_exporter.service
[root@centos7 node_exporter]# vim /etc/systemd/system/node_exporter.service
[root@centos7 node_exporter]# cat /etc/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target
[Service]
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
[root@centos7 node_exporter]#
启动node_exporter,并设置开机自启动
[root@centos7 node_exporter]# systemctl daemon-reload
[root@centos7 node_exporter]# systemctl start node_exporter
[root@centos7 node_exporter]# systemctl enable node_exporter
[root@centos7 node_exporter]# systemctl status node_exporter
至此node_exporter配置完成。
Ⅳ、配置Prometheus
1.1、修改Prometheus 配置
进入Prometheus的安装文件夹,打开Prometheus配置文件。
在scrape_configs标签下,添加以下内容,配置监控主机信息。
[root@grafana ~]# cd /usr/local/prometheus
[root@grafana prometheus]# ll
total 196060
drwxr-xr-x 2 3434 3434 38 Jan 30 05:53 console_libraries
drwxr-xr-x 2 3434 3434 173 Jan 30 05:53 consoles
drwxr-xr-x 4 root root 58 Jan 31 15:02 data
-rw-r--r-- 1 3434 3434 11357 Jan 30 05:53 LICENSE
-rw-r--r-- 1 3434 3434 3773 Jan 30 05:53 NOTICE
-rwxr-xr-x 1 3434 3434 104419069 Jan 30 05:47 prometheus
-rw-r--r-- 1 3434 3434 934 Jan 30 05:53 prometheus.yml
-rwxr-xr-x 1 3434 3434 96325624 Jan 30 05:50 promtool
[root@grafana prometheus]# vim prometheus.yml
[root@grafana prometheus]# cat prometheus.yml
# 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"
# 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"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: 'CentOS7.9'
static_configs:
- targets: ['192.168.56.201:9100']
labels:
instance: CentOS系统监控管理平台
[root@grafana prometheus]#
1.2、重启Prometheus服务
[root@grafana prometheus]# systemctl restart prometheus
1.3、浏览器访问Prometheus控制面板
打开浏览器,输入http://192.168.200.30:9090/targets,查看到主机已经显示。
至此,被监控的Linux主机已经加入。
Ⅴ、配置Grafana
1.1、添加dashboard
Grafana官方为我们提供了很多dashboard页面,可直接下载使用。浏览器访问 https://grafana.com/grafana/dashboards下载所需要的dashboard页面
本示例使用的Dashboard如下图所示,链接如下:
1 Node Exporter for Prometheus Dashboard CN 20201010 dashboard for Grafana | Grafana Labs
1.2、复制此Dashboard ID
复制 ID,并下载JSON文件,用于之后的导入。
1.3、选择import
1.4、上传JSON文件
1.5、导入完成,实现监控管理
至此Prometheus+Grafana 安装配置,并实现监控Linux主机,配置完成。
Ⅵ、新添加一台被监视主机
1.1、修改 prometheus.yml 配置文件
基于服务端,即监控端进行操作。
[root@grafana prometheus]# pwd
/usr/local/prometheus
[root@grafana prometheus]# vim prometheus.yml
//添加新node主机信息
- job_name: 'Computer-VM'
static_configs:
- targets: ['192.168.200.20:9100']
labels:
instance: Computer-VM
//按:wq保存退出即可
[root@grafana prometheus]# systemctl daemon-reload //重新加载
[root@grafana prometheus]# systemctl restart prometheus //重启服务
[root@grafana prometheus]# systemctl status prometheus //查看服务状态
1.2、查看新添被监控主机的控制面板信息
添加完成。
至此,新添加一台被监视的Linux主机完成。
四、部署总结与心得体会
本实验采用Prometheus+Grafana的安装部署方式实现对Linux系统主机的统一监控,Prometheus自带有监控功能,但不能简洁直观的反映出被监控端的详细信息。这时,采用grafana中提供的丰富的Dashboard页面,简洁直观的显示系统的各个参数的详细情况,给人焕然一新的感觉,便于维护管理。
相关文章
- [日常] Go语言圣经-字节切片与字符串
- [日常] Linux下vim的常用命令总结
- [日常] Go语言圣经-Goroutines和线程
- [日常] Go语言圣经-并发的非阻塞缓存
- [日常] Go语言圣经-竞争条件习题
- [日常] Go语言圣经-示例: 并发的目录遍历习题
- [日常] Go语言圣经-基于select的多路复用习题
- [日常] Go语言圣经--并发的web爬虫
- [日常] Go语言圣经--并发的循环习题
- [日常] Go语言圣经--Channel习题
- [日常] Go语言圣经--示例: 并发的Echo服务
- [日常] Go语言圣经--示例: 并发的Clock服务习题
- [日常] Go语言圣经--接口约定习题2
- [日常] Go语言圣经--接口约定习题
- [日常] Linux下的docker实践
- [日常] Go语言圣经-指针对象的方法-bit数组习题2
- [日常] Go语言圣经-指针对象的方法-bit数组习题
- [日常] Go语言圣经-Panic异常,Recover捕获异常习题
- [日常] Go语言圣经-Deferred函数
- [日常] Go语言圣经-可变参数习题