ToB企服应用市场:ToB评测及商务社交产业平台

标题: Linux云计算 |【第二阶段】SECURITY-DAY3 [打印本页]

作者: 立山    时间: 2024-9-16 11:43
标题: Linux云计算 |【第二阶段】SECURITY-DAY3
主要内容:

Prometheus监控服务器、Prometheus被监控端、Grafana监控可视化

   补充:Zabbix监控软件不自带LNMP和DB数据库,需要自行手动安装配置;Prometheus监控软件自带WEB页面和DB数据库;Prometheus数据库为时序数据库,Zabbix数据库为关系型数据库;
  
一、Prometheus概述

Prometheus 是一个开源的体系监控和警报工具包,最初由 SoundCloud 开发,并于2012年首次发布。Prometheus 在2016年加入云原生计算基金会(CNCF),成为继 Kubernetes 之后的第二个托管项目。Prometheus 以其强盛的数据模子、灵活的查询语言和高效的存储机制而闻名,已成为云原生和容器化情况中的监控尺度之一。

主要功能:
   数据模子
  
  查询语言
  
  数据收集
  
  告警管理
  
  可视化
  
  存储
  
  
Prometheus架构图:

Prometheus 的架构主要包括以下组件:

上风:
   
  应用场景:
Prometheus 适用于各种监控场景,特殊是云原生和容器化情况,包括:
   
  

案例1:Prometheus监控服务器

案例要求:摆设prometheus监控服务器,完成以下使命:

主机分配表(主机体系均为CentOS7,提前配置IP、主机名、体系YUM源)

实验拓扑图:


步骤1:设置防火墙和SELinux限定
  1. [root@prometheus ~]#firewall-cmd --set-default-zone=trusted
  2. [root@prometheus ~]#setenforce 0
  3. [root@prometheus ~]#sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
复制代码
步骤2:摆设服务端监控软件(prometheus操作)
1)安装prometheus软件(可参考/linux-soft/2/prometheus_soft.tar.gz)
  1. [root@prometheus ~]# tar -xf prometheus_soft.tar.gz
  2. [root@prometheus ~]# cd prometheus_soft/
  3. [root@prometheus prometheus_soft]# ls
  4. 1-cpu_rev2.json
  5. 1-node-exporter-for-prometheus-dashboard-update-1102_rev11.json
  6. alertmanager-0.20.0.linux-386.tar.gz
  7. grafana-6.7.3-1.x86_64.rpm
  8. mysqld_exporter-0.12.1.linux-amd64.tar.gz
  9. mysql-overview_rev5.json
  10. mysql_rev1.json
  11. node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
  12. prometheus-2.17.2.linux-386.tar.gz
  13. pushgateway-1.2.0.linux-amd64.tar.gz
  14. [root@prometheus prometheus_soft]# tar -xf prometheus-2.17.2.linux-386.tar.gz    //解压软件压缩包
  15. [root@prometheus prometheus_soft]# ls prometheus-2.17.2.linux-386/
  16. console_libraries  LICENSE  prometheus      promtool
  17. consoles           NOTICE   prometheus.yml  tsdb
  18. [root@prometheus prometheus_soft]# mv prometheus-2.17.2.linux-386 /usr/local/prometheus     //移动到/usr/local/prometheus(类似tomcat)
  19. [root@prometheus prometheus_soft]# ls /usr/local/prometheus/
复制代码

   Prometheus软件解压即可直接实行;
  2)修改prometheus配置文件(添加Target监控对象)

  1. [root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
  2. ...
  3. scrape_configs:
  4.   - job_name: 'prometheus'
  5.     static_configs:
  6.     - targets: ['192.168.4.10:9090']   //配置抓取目标,被监控端主机和端口
复制代码
  解释:targets监控对象,指定需被监控的主机IP:端口号(192.168.4.10:9090监控本机,端口9090)
  检查配置配置文件是否有语法错误
  1. [root@prometheus ~]# /usr/local/prometheus/promtool check config \
  2. > /usr/local/prometheus/prometheus.yml
  3. Checking /usr/local/prometheus/prometheus.yml
  4.   SUCCESS: 0 rule files found     //语法没有错误(仅供参考)
复制代码
3)编写服务service文件,使用systemd管理服务(端口9090)
  1. [root@prometheus ~]# vim /usr/lib/systemd/system/prometheus.service
  2. [Unit]
  3. Description=Prometheus Monitoring System
  4. Documentation=Prometheus Monitoring System
  5. [Service]
  6. ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml   
  7. [Install]
  8. WantedBy=multi-user.target
  9. [root@prometheus ~]# systemctl enable prometheus.service --now  //设置服务开机自启并立刻启动
  10. [root@prometheus ~]# ss -nlptu | grep :9090
  11. tcp    LISTEN     0      128      :::9090                 :::*                   users:(("prometheus",pid=764,fd=6))
复制代码
  补充:--config指定配置文件位置,在启动服务时可找到该文件
  
步骤3:登录Prometheus监控控制台
1)查察监控主机、监控数据
使用欣赏器访问http://192.168.4.10:9090,可看到监控控制台首页;

查察监控主机,点击【Status】-->【Targets】,可查察监控到的对象主机;

点击http://192.168.4.10:9090/metrics,可查察到该主机的监控数据(可视化效果不佳)

通过【Graph】,选择监控数据,如go_memstats_alloc_bytes,点击<Execute>实行,可查察详细某个监控数据和Value;

点击<Graph>,可查察选择的监控数据对应的监控图形


 常见错误:No datapoints found.

思路分析:

办理办法:
Servies服务可手动启动服务:/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml

 二、被监控端

1)监控方式
Prometheus客户端分为pull和push两种提交数据的方式:

2)Exporter导出器
按照监控要求实现什么范例的监控,则需要单独安装exporter(导出器),可参考官网开源的exporter,解压即可直接运行。

补充:广义上讲所有可以向Prometheus提供监控样本数据的程序都可以被称为一个Exporter,而Exporter的一个实例称为target;


案例2:Prometheus被监控端

案例要求:配置Prometheus被监控端主机,主要完成以下使命:


步骤1:设置防火墙与SELinux限定
  1. [root@node1 ~]#firewall-cmd --set-default-zone=trusted
  2. [root@node1 ~]#setenforce 0
  3. [root@node1 ~]#sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config
复制代码
步骤2:摆设被控制端软件(node1操作)
1)安装node_export导出器(可参考/linux-soft/2/prometheus_soft.tar.gz)
  1. [root@node1 ~]# tar -xf prometheus_soft.tar.gz
  2. [root@node1 ~]# cd prometheus_soft/
  3. [root@node1 prometheus_soft]# ls
  4. mysqld_exporter-0.12.1.linux-amd64.tar.gz
  5. node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
  6. ...
  7. [root@node1 prometheus_soft]# tar -xf node_exporter-1.0.0-rc.0.linux-amd64.tar.gz
  8. [root@node1 prometheus_soft]# ls node_exporter-1.0.0-rc.0.linux-amd64
  9. LICENSE  node_exporter  NOTICE
  10. [root@node1 prometheus_soft]# mv node_exporter-1.0.0-rc.0.linux-amd64 /usr/local/node_exporter
  11. [root@node1 prometheus_soft]# ls /usr/local/node_exporter
复制代码

2)编写服务service文件,使用systemd管理服务(端口9100)
  1. [root@node1 ~]# vim /usr/lib/systemd/system/node_exporter.service
  2. [Unit]
  3. Description=node_exporter
  4. After=network.target
  5. [Service]
  6. Type=simple
  7. ExecStart=/usr/local/node_exporter/node_exporter
  8. [Install]
  9. WantedBy=multi-user.target
  10. [root@node1 ~]# systemctl enable node_exporter --now   //设置服务开机自启并立刻启动
  11. [root@node1 ~]# ss -nlptu | grep :9100
  12. tcp    LISTEN     0      128      :::9100                 :::*                   users:(("node_exporter",pid=898,fd=3))
复制代码

步骤3:修改监控服务器的配置文件(Prometheus操作)
1)修改配置文件
   参考配置文件的监控使命模板,在【scrape_configs:】下添加3行新内容,详细内容如下:
  1. [root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
  2. scrape_configs:
  3.   - job_name: 'prometheus'
  4.     static_configs:
  5.     - targets: ['192.168.4.10:9090']
  6.   - job_name: 'node1'                  //监控任务名称(可任意)
  7.     static_configs:
  8.     - targets: ['192.168.4.11:9100']    //被监控端主机和端口
  9. [root@prometheus ~]# systemctl restart prometheus.service     //重启服务
复制代码

步骤4:登录Prometheus监控控制台
1) 查察监控主机、监控数据
使用欣赏器访问http://192.168.4.10:9090,进入监控首页,通过【Status】-->【Targets】,查察监控主机列表,验证是否有新增监控对象主机(确保被监控端服务正常开启,端口9100)

选择详细的监控数据(例如node_load1平均负载量1分钟),点击<Graph>,可查察选择的监控数据对应的监控图形


三、Grafana概述

Grafana 是一个开源的分析和交互式可视化平台,专门用于监控和分析时间序列数据。它由 Torkel Ödegaard 创建,并于2014年首次发布。Grafana 以其强盛的可视化能力、灵活的仪表板和插件生态体系而闻名,已成为监控领域的重要工具之一。
主要功能:
   数据源支持:
  
  可视化:
  
  仪表板:
  
  告警和通知:
  
  插件生态体系:
  
  权限管理:
  
  Grafana 的架构主要包括以下组件:



案例3:grafana可视化监控数据

案例要求:配置grafana实现数据可视化效果,完成以下使命:


步骤1:安装摆设grafana(prometheus操作)
1)安装grafana软件(可参考/linux-soft/2/prometheus_soft.tar.gz)
  1. [root@prometheus ~]# cd prometheus_soft/
  2. [root@prometheus prometheus_soft]# ls
  3. grafana-6.7.3-1.x86_64.rpm
  4. ...
  5. [root@prometheus prometheus_soft]# yum -y install grafana-6.7.3-1.x86_64.rpm  //安装软件包(可在任何主机上安装)
复制代码
2)启动服务
  1. [root@prometheus ~]# systemctl enable grafana-server.service --now   //设置服务开机自启动服务并立刻启动
  2. [root@prometheus ~]# ss -nlptu | grep :3000     //grafana服务端口3000
  3. tcp    LISTEN     0      128      :::3000                 :::*                   users:(("grafana-server",pid=1201,fd=7))
复制代码
3)登录可视化平台,重置登录密码
欣赏器访问Grafana可视化平台http://192.168.4.10:3000,默认用户名和密码:admin

   重置用户名和密码:admin(第一次登录,为了安全需要重置密码)
  登录Grafana可视化平台后,表现首页页面内容,如图所示:

补充:欣赏器兼容题目,可能无法重置密码,假如无法重置密码,则可设置grafana允许匿名登录,详细操作如下(非必要,不要实行如下操作)
  1. [root@prometheus ~]# vim /etc/grafana/grafana.ini
  2. [auth.anonymous]    //anonymous匿名的
  3. enabled = true   //是否允许匿名
  4. org_role = Admin   //以什么角色登录(Admin管理员用户)
  5. [root@prometheus ~]# systemctl restart grafana-server.service   //修改后需重启服务
复制代码

步骤2:配置Grafana
欣赏器访问Grafana控制台,http://192.168.4.10:3000,添加数据源(有数据才气天生可视化图形)
1)添加数据源(查察Prometheus监控端的体系信息)
Grafana可以将数据图形化,点击【Add data source】,选择从【Prometheus】获取数据;

填写Prometheus的根本信息,URL指定:http://192.168.4.10:9090,从该URL获取数据源;

2)导入可视化模板
使用不同的可视化模板(折线图、饼图、热图等),可实现将不同的数据举行图形化展示,点击<Data Sources>,选择需要可视化的数据源(例如Prometheus-1)

点击【Dashboards贸易智能仪表盘】,导入Prometheus 2.0 Stats图形化模板;


点击<rometheus 2.0 Stats图形化模板>,可查察该模板下毗连Prometheus数据源的可视化界面,如图所示:


步骤3:查察被监控主机的体系信息
1)导入主机监控的可视化模板(node_exporter模板)
   模板:1-node-exporter-for-prometheus-dashboard-update-1102_rev11.json
  通过真机欣赏器访问,以是需解压在真机目录下(可参考/linux-soft/2/prometheus_soft.tar.gz)
  1. [root@localhost 桌面]# tar -xf /linux-soft/2/prometheus_soft.tar.gz    //解压压缩包
复制代码


2)选择数据源
导入监控主机的可视化模板后,就可以查察主机的监控图形了,但该可视化图形的数据暂未获取,需要设置prometheus为数据源(Prometheus-1),完成后点击导入;

返回Grafana首页,点击node_exporter可视化模板,查察可视化监控图形;

最终的可视化界面,如图所示:



案例4:监控数据库

案例要求:使用prometheus监控MariaDB数据库,完成以下使命:


步骤1:安装MariaDB(node1操作)
1)安装软件,启动服务
  1. [root@node1 ~]# yum -y install mariadb-server
  2. [root@node1 ~]# systemctl enable mariadb --now
  3. [root@node1 ~]# ss -nlptu | grep :3306
  4. tcp    LISTEN     0      50        *:3306                  *:*                   users:(("mysqld",pid=1415,fd=14))
复制代码
2)创建数据库账户,配置密码
   监控服务器需要监控数据库,需创建一个对数据库有权限的账户并配置密码。
  1. [root@node1~]# mysql
  2. MariaDB [(none)]> grant all on *.* to 'jerry'@'127.0.0.1' identified by '123';
  3. Query OK, 0 rows affected (0.00 sec)
  4. MariaDB [(none)]> quit
复制代码
解释:创建用户jerry,授予该用户对所有数据库和表拥有所有权限,可以从本机127.0.0.1登录服务器,密码为123

步骤2:摆设被控制端软件
1)安装mysqld_exporter导出器(可参考/linux-soft/2/prometheus_soft.tar.gz)
  1. [root@node1 ~]# cd prometheus_soft/
  2. [root@node1 prometheus_soft]# ls
  3. mysqld_exporter-0.12.1.linux-amd64.tar.gz
  4. mysql-overview_rev5.json
  5. mysql_rev1.json
  6. ...
  7. [root@node1 prometheus_soft]# tar -xf mysqld_exporter-0.12.1.linux-amd64.tar.gz
  8. [root@node1 prometheus_soft]# ls mysqld_exporter-0.12.1.linux-amd64
  9. LICENSE  mysqld_exporter  NOTICE
  10. [root@node1 prometheus_soft]# mv mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter
复制代码
2)创建数据库配置文件.my.cnf,记载访问数据库信息
  1. [root@node1 ~]# vim /usr/local/mysqld_exporter/.my.cnf
  2. [client]
  3. host=127.0.0.1    //数据库的主机
  4. port=3306   //数据库的端口
  5. user=jerry   //数据库的用户名
  6. password=123   //数据库的密码
复制代码
解释:创建数据库配置文件.my.cnf,在监控服务器访问被监控服务器的mysqld_exporter服务时,exporter会主动读取配置文件,使用配置文件用的账户和密码信息访问数据库,获取数据库监控信息;
3)编写服务service文件,使用systemd管理服务(端口9104)
  1. [root@node1 ~]# vim /usr/lib/systemd/system/mysqld_exporter.service
  2. [Unit]
  3. Description=node_exporter
  4. After=network.target
  5. [Service]
  6. ExecStart=/usr/local/mysqld_exporter/mysqld_exporter \
  7. --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
  8. [Install]
  9. WantedBy=multi-user.target
  10. [root@node1 ~]# systemctl enable mysqld_exporter --now
  11. [root@node1 ~]# ss -nlptu | grep :9104
  12. tcp    LISTEN     0      128      :::9104                 :::*                   users:(("mysqld_exporter",pid=1561,fd=3))
复制代码
  补充:--config是mysqld_exporter的选项,指定配置文件位置
  
步骤3:修改监控服务器的配置文件(Prometheus操作)
1)修改监控服务器配置文件
参考配置文件的监控使命模板,在【scrape_configs:】下添加3行新内容,详细内容如下:
  1. [root@prometheus ~]# vim /usr/local/prometheus/prometheus.yml
  2. scrape_configs:    //抓取数据
  3. ...
  4.   - job_name: 'mysql'     //监控任务的名称
  5.     static_configs:
  6.     - targets: ['192.168.4.11:9104']    //被监控主机IP和端口
  7. [root@prometheus ~]# systemctl restart prometheus.service
复制代码
解释:targets指定被监控主机192.168.4.11,端口9104,毗连后pull拉取监控数据

步骤4:登录Prometheus监控控制台
1) 查察监控主机、监控数据
使用欣赏器访问http://192.168.4.10:9090,进入监控首页,通过【Status】-->【Targets】,查察监控主机列表,验证是否有新增监控对象主机(确保被监控端服务正常开启,端口9104)


步骤5:配置Grafana可视化
1)查察Prometheus监控服务状态(欣赏器访问http://192.168.4.10:9090)
   查察prometheus是否已经识别到MariaDB数据库主机,状态为UP;
  

2)访问Grafana平台,导入数据库可视化模板(欣赏器访问http://192.168.4.10:3000)
导入数据库可视化模板

设置prometheus为数据源(Prometheus-1),完成后点击导入;

可查察该模板下毗连Prometheus数据源的可视化界面,如图所示:


头脑导图:



小结:

本篇章节为【第二阶段】SECURITY-DAY3 的学习条记,这篇条记可以开端了解到 Prometheus监控服务器、Prometheus被监控端、Grafana监控可视化。除此之外保举参考相干学习网址:


Tip:究竟两个人的聪明大于一个人的聪明,假如你不理解本章节的内容或需要相干条记、视频,可私信小安,请不要含羞和回避,可以向他人请教,花点时间直到你真正的理解

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4