• Flume配置2——监控之Ganglia


    Ganglia

    1.概述

    • 为HPC(高性能计算) 集群设计的可扩展性的分布式监控系统,可以监视和显示集群中节点的各种状态信息
    • 由运行在各个节点上的gmond守护进程来采集CPU、内存、磁盘利用率、I/O负载、网络流量情况等方面的数据,然后汇总到gmetad守护进程下,使用rrdtool存储数据,然后将历史数据以曲线方式通过PHP页面呈现
    • Ganglia的中文意思是神经中枢,现在支持多部分操作系统(包括linux、unix、windows),可支持2000个节点的网络监控(当然这不是上限,只是一个大集群使用的范例)

    2.组件

    • Ganglia底层使用RRDTool存储数据
    • gmond(ganglia monitor deamon)
    gmond运行在集群每个节点上,收集RRDTool产生的数据
    
    • 1
    • gmetad(ganglia metadata deamon)
    gmetad运行在监控服务器上,收集每个gmond的数据
    
    • 1
    • 这里可以看出这是一个主从架构
    • gweb
    ganglia可视化工具,显示ganglia收集的主机各项指标
    gweb允许在图标中通过点击-拖拽改变时间周期,包含从不同文本格式(CSV,JSON等)中便捷提供数据的工具,显示完整、使用的URL接口,使用户可以通过预知的URL将感兴趣的图表嵌入其他程序
    gweb是一种PHP程序,因为需要与轮询器创建的RRD数据库交互,所以gweb通常安装在和gmetad相同的物理硬件上
    
    • 1
    • 2
    • 3
    • 图解
      在这里插入图片描述

    3.层次结构

    • 由小到大可以分为node -> cluster -> grid
    • node
    一个node就是一个需要监控的节点,一般是个主机,用IP表示
    每个node上运行一个gmond进程用来采集数据,并提交给gmetad
    
    • 1
    • 2
    • cluster
    一个cluster由多个node组成,就是一个集群,我们可以给集群定义名字
    一个集群可以选一个node运行gmetad进程,汇总/拉取gmond提交的数据,并部署web front,将gmetad采集的数据用图表展示出来
    
    • 1
    • 2
    • grid
    一个grid由多个cluster组成,是一个更高层面的概念,我们可以给grid定义名字
    grid中可以定义一个顶级的gmetad进程,汇总/拉取多个gmond、子gmetad提交的数据,部署web front,将顶级gmetad采集的数据用图表展示出来
    
    • 1
    • 2

    4.收集数据工作的运行模式

    • 单播(unicast)
    发送自己收集到的监控数据到特定的一台或几台机器上,可以跨网段
    
    • 1
    • 多播(multicast)默认
    发送自己收集到的监控数据到同一网段内所有的机器上,同时收集同一网段内的所有机器发送过来的监控数据
    因为是以广播包的形式发送,因此需要同一网段内。但同一网段内,又可以定义不同的发送通道
    
    • 1
    • 2

    Ganglia的安装与部署(编译方式,centos7使用RPM方式安装会报错)

    1.环境准备

    • 停止防火墙
    systemctl stop firewalld.service
    
    • 1
    • 临时关闭selinux
    setenforce 0
    
    • 1
    • 卸载系统默认安装的Apache软件包,如果安装过的话
    rpm -qa httpd*
    rpm -e --nodeps 包名
    有多个httpd*,用脚本删除for name in `rpm -qa httpd*`;do rpm -e --nodeps $name;done
    
    • 1
    • 2
    • 3
    • 安装依赖包
    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    yum install wget lrzsz vim lynx lsof netstat-tools unzip -y
    
    • 1
    • 2
    • 时区设置
    timedatectl
    列出了所有的时区:timedatectl list-timezones
    把时区设置为上海:timedatectl set-timezone Asia/Shanghai
    
    • 1
    • 2
    • 3
    • 时间同步
    /usr/sbin/ntpdate time.nist.gov
    crontab -e
    	输入:*/10 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1
    
    • 1
    • 2
    • 3

    23456789是服务端的配置,此处选择node1

    2.gmetad配置

    • yum -y install apr-devel apr-util check-devel cairo-devel pango-devel
      libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel
      fontconfig-devel gcc gcc-c++ expat-devel python-devel
      libXrender-devel
    • yum install -y libart_lgpl-devel pcre-devel libtool
    • yum install -y rrdtool rrdtool-devel
    • mkdir /tools
    • cd /tools/
    • wget http://www.mirrorservice.org/sites/download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz
    • tar zxvf confuse-2.7.tar.gz
    • cd confuse-2.7
    • ./configure --prefix=/usr/local/ganglia-tools/confuse CFLAGS=-fPIC
      –disable-nls --libdir=/usr/local/ganglia-tools/confuse/lib64
    • make && make install
    • cd /tools/
    • wget https://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz --no-check-certificate
    • tar zxf ganglia-3.7.2.tar.gz
    • cd ganglia-3.7.2
    • ./configure --prefix=/usr/local/ganglia --enable-gexec --enable-status --with-gmetad --with-libconfuse=/usr/local/ganglia-tools/confuse
    • make && make install
    • cp gmetad/gmetad.init /etc/init.d/gmetad
    • ln -s /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad

    3.gweb配置

    • yum install httpd httpd-devel php -y
    • yum -y install rsync
    • cd /tools/
    • wget
      https://sourceforge.net/projects/ganglia/files/ganglia-web/3.7.2/ganglia-web-3.7.2.tar.gz
      –no-check-certificate
    • tar zxvf /tools/ganglia-web-3.7.2.tar.gz -C /var/www/html/
    /var/www/html/相当于tomcat的webapp目录
    
    • 1
    • cd /var/www/html/
    • mv ganglia-web-3.7.2 ganglia
    • cd /var/www/html/ganglia/
    • useradd -M -s /sbin/nologin www-data
    • make install
    • chown apache:apache -R /var/lib/ganglia-web/

    4.修改启动脚本

    • vim /etc/init.d/gmetad
    GMETAD=/usr/sbin/gmetad  #这句话可以自行更改gmetad的命令,当然也能向我们前面做了软连接
    start() {
        [ -f /usr/local/ganglia/etc/gmetad.conf  ] || exit 6  #这里将配置文件改成现在的位置,不然启动没反应
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    5.创建rrds目录

    • mkdir /var/lib/ganglia/rrds -p
    • chown -R nobody:nobody /var/lib/ganglia/rrds

    6.修改gmetad配置文件,实际就是配置客户端gmond(这个目录会经常被修改)

    • vim /usr/local/ganglia/etc/gmetad.conf
    data_source "my ganglia" 192.168.10.100:8649 192.168.10.102:8649
    
    • 1

    7.启动服务

    • mkdir -p /usr/local/ganglia/var/run
    • /etc/init.d/gmetad restart
    • systemctl restart httpd
    • netstat -luntp
      在这里插入图片描述

    8.修改配置文件

    • vim /etc/httpd/conf.d/ganglia.conf
    # Ganglia monitoring system php web frontend
    Alias /ganglia /var/www/html/ganglia/
    <Location /ganglia>
      #Order deny,allow
      #Deny from all
      Require all granted
      Allow from all
      # Allow from 127.0.0.1
      # Allow from ::1
      # Allow from .example.com
    </Location>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • vim /usr/local/ganglia/etc/gmond.conf
      在这里插入图片描述

    9.实战:随便编写一个页面然后访问

    • cd /var/www/html/
    • mkdir cj
    • cd cj
    • vim index.html
    hello
    <hr />
    
    • 1
    • 2
    • 访问:http://192.168.10.100/cj/
      在这里插入图片描述

    23是客户端的配置,此处选择node1

    10.如果该节点没有配置gmeta,则执行2

    11.安装过gmate的节点从这一步开始

    • 生成gmond配置文件
    /usr/local/ganglia/sbin/gmond -t >/usr/local/ganglia/etc/gmond.conf
    
    • 1
    • cp /tools/ganglia-3.7.2/gmond/gmond.init /etc/init.d/gmond
    • mkdir -p /usr/local/ganglia/var/run
    • /etc/init.d/gmond restart
    • netstat -luntp
      在这里插入图片描述

    操作Flume测试监控

    1.修改flume-env.sh配置

    • cd /usr/local/flume-1.9.0/conf
    • vim flume-env.sh
    JAVA_OPTS="-Dflume.monitoring.type=ganglia -Dflume.monitoring.hosts=192.168.10.100:8649 -Xms100m -Xmx200m"
    
    • 1

    2.启动Flume任务

    bin/flume-ng agent --conf conf/ --name a1 --conf-file jobs/t1/flume-telnet-logger.conf -Dflume.root.logger==INFO,console \
    -Dflume.monitoring.type=ganglia \
    -Dflume.monitoring.hosts=192.168.10.100:8649
    
    • 1
    • 2
    • 3

    3.启动另一个node1

    • telnet localhost 44444

    4.观察页面信息

    • http://192.168.10.100/ganglia/
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    5.其他

    • web页面介绍:https://www.shuzhiduo.com/A/Ae5RwY7LdQ/
    • 提示服务重启命令
    /etc/init.d/gmetad restart
    systemctl restart httpd
    /etc/init.d/gmond restart
    
    • 1
    • 2
    • 3
  • 相关阅读:
    21天Python进阶学习挑战赛
    C语言考试题库之填空题
    使用EasyExcel进行读写操作
    异步注解@Async失效的原因
    卡尔曼滤波基本原理详解
    SQL Server中row_number函数用法介绍
    【Vue】pc和移动端网页样式适配
    【牛客-SQL进阶挑战】增删改操作 (插入记录SQL110-112 更新记录SQL113-114 删除记录SQL115-117)
    Vue项目上线打包优化
    动态规划三:区间动态规划(19182+11078+洛谷P4170+力扣877)
  • 原文地址:https://blog.csdn.net/weixin_51699336/article/details/125508982