💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # 安装和部署 1. 安装httpd服务与php ~~~ yum install -y httpd php ~~~ 2. 安装其他依赖 ~~~ yum install -y rrdtool perl-rrdtool rrdtool-devel apr-devel ~~~ 3. 安装ganglia ~~~ rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum install -y ganglia-gmetad ganglia-web ganglia-gmond ~~~ gmetad是主节点,gmond是从节点, 需要监控那个节点,就在哪个节点上启动gmond,然后他会汇报给gmetad. web是显示页面程序 4. 修改配置文件 **安装目录说明** * ganglia配置文件目录:/etc/ganglia * rrd数据库存放目录:/var/lib/ganglia/rrds * httpd主站点目录:/var/www/html * ganglia-web安装目录:/usr/share/ganglia * ganglia-web配置目录:/etc/httpd/conf.d/ganglia.conf 修改httpd主站点目录下ganglia站点目录的访问权限 ~~~ #  将ganglia站点目录访问权限改为apache:root,否则会报错 $  chown -R apache:root /var/www/html/ganglia $  chmod -R 755 /var/www/html/ganglia # 修改rrd数据库存放目录访问权限 #  将rrd数据库存放目录访问权限改为gmetad:root,否则会报错 $  chown -R gmetad:root /var/lib/ganglia/rrds ~~~ 修改dwoo下面的权限 ~~~ chmod 777 /var/lib/ganglia/dwoo/compiled chmod 777 /var/lib/ganglia/dwoo/ cache ~~~ **ganglia.conf** ~~~ vim /etc/httpd/conf.d/ganglia.conf ~~~ ~~~ Alias /ganglia /usr/share/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> ~~~ **gmetad.conf** ~~~ vim /etc/ganglia/gmetad.conf ~~~ ~~~ #集群名称和主机地址(注意是所有节点都加上,如master:8649 slave0x:8649) data_source "master" master ~~~ **gmond.conf** ~~~ vim /etc/ganglia/gmond.conf ~~~ 涉及一下部分修改一下 ~~~ cluster { #name是集群的名称 name = "master" owner = "unspecified" latlong = "unspecified" url = "unspecified" } udp_send_channel { #bind_hostname = yes # Highly recommended, soon to be default. # This option tells gmond to use a source address # that resolves to the machine's hostname. Without # this, the metrics may appear to come from any # interface and the DNS names associated with # those IPs will be used to create the RRDs. #使用广播的形式发送形式 #mcast_join = 239.2.11.71 #使用单播的形式 host = master port = 8649 ttl = 1 } /* You can specify as many udp_recv_channels as you like as well. */ udp_recv_channel { #使用广播的形式 #mcast_join = 239.2.11.71 port = 8649 #绑定的地址 bind = master retry_bind = true # Size of the UDP buffer. If you are handling lots of metrics you really # should bump it up to e.g. 10MB or even higher. # buffer = 10485760 } ~~~ 从节点汇报数据的时候是用udp协议的 **启动ganglia** ~~~ systemctl status httpd systemctl start gmetad systemctl start gmond ~~~ **访问网页** `master/ganglia` # 常见问题 主要记录下自己遇到的问题: `There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Connection refused` 发现没找到什么解决方法,最后想到去看日志…… ~~~ Jan 4 14:23:40 localhost /usr/sbin/gmetad[5524]: Please make sure that /var/lib/ganglia/rrds is owned by ganglia Jan 4 14:30:13 localhost /usr/sbin/gmetad[5579]: Please make sure that /var/lib/ganglia/rrds is owned by ganglia ~~~ 好吧,又是我自己的问题…… 将`/var/lib/ganglia/rrds` 的所有者所属组改为ganglia后 在访问就ok了 在gmetad.conf中有这么一段 ~~~ # User gmetad will setuid to (defaults to "nobody") # default: "nobody" setuid_username ganglia # ~~~ 在gmond.conf则有这么一段 ~~~ /* This configuration is as close to 2.5.x default behavior as possible The values closely match ./gmond/metric.h definitions in 2.5.x */ globals { daemonize = yes setuid = yes user = ganglia debug_level = 0 max_udp_msg_len = 1472 ~~~ 上面截取的部分都是默认配置也就是未经过修改的,已经可以明白这个问题了 虽然默认设置的用户是nobody,但确多了一行`setuid_username ganglia` 覆盖了默认配置 在按原来的配置设置rrds为nobody显然是不行的,只需要将`setuid_username ganglia`注释掉就可以继续使用原来的方法安装了。或者rrds为ganglia所有 # 使用 **选择集群节点** ![](https://box.kancloud.cn/74b246acd44ab537a039f02468437033_233x39.png) ![](https://box.kancloud.cn/1e5acacf49419fe15dd4a0ce13518624_217x33.png) # 操作flume测试监控 修改flume-env.sh配置 ~~~ export JAVA_OPTS="-Dflume.monitoring.type=ganglia -Dflume.monitoring.hosts=192.168.33.80:8649 -Xms100m -Xmx200m" ~~~ 也可以在执行的时候添加参数,那就覆盖配置文件中的 ~~~ flume-ng agent -c conf -f netcat.conf -n a1 -Dflume.root.logger=INFO,console -Dflume.monitoring.type=ganglia -Dflume.monitoring.hosts=192.168.33.80:8649 ~~~ 然后启动flume任务 然后在对应节点的监控页面就可以看到了 **字段含义** ![](https://box.kancloud.cn/8a9a5cce43af302933b421d60bd5601e_846x549.png) 基本上有多少条的统计还有成功多少条统计 | 字段(图标名称) | 字段含义 | |---|---| | EventPutAttemptCount | source尝试写入channel的事件总数量 | | EventPutSuccessCount | 成功写入channel且提交的事件总数量 | | EventTakeAttemptCount | sink尝试从channel拉取事件的总数量。这不意味着每次事件都被返回,因为sink拉取的时候channel可能没有任何数据 | | EventTakeSuccessCount | sink成功读取的事件的总数量 | | StartTime | channel启动的时间(毫秒) | | StopTime | channel停止的时间(毫秒) | | ChannelSize | 目前channel中事件的总数量 | | ChannelFillPercentage | channel占用百分比 | | ChannelCapacity | channel的容量 |