Flume監控之Ganglia
Ganglia簡介
Ganglia是UC Berkeley發起的一個開源叢集監視視覺化工具,設計用於測量數以千計的節點。Ganglia的核心包含gmond、gmetad以及一個Web前端。主要是用來監控系統效能,如:cpu 、mem、硬碟利用率, I/O負載、網路流量情況等,通過曲線很容易見到每個節點的工作狀態,對合理調整、分配系統資源,提高系統整體效能起到重要作用。
其詳細介紹和工作原理請參考百度百科,地址:https://baike.baidu.com/item/Ganglia/1283012?fr=aladdin
一. Ganglia的安裝與部署
1. 安裝httpd服務與php
[root@cos100 flume]# sudo yum -y install httpd php
- 1
2. 安裝其他依賴
[root@cos100 flume]# sudo yum -y install rrdtool perl-rrdtool rrdtool-devel apr-devel
- 1
3. 安裝Ganglia
1). 匯入rpm源
[root@cos100 flume]# sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
- 1
2). 安裝rpm的三大元件
[root@cos100 flume]# sudo yum -y install ganglia-gmetad ganglia-web ganglia-gmond
- 1
4. 修改配置檔案ganglia.conf(修改前端訪問許可權)
[root@cos100 flume]# sudo vim /etc/httpd/conf.d/ganglia.conf
- 1
修改為如下:
# Ganglia monitoring system php web frontend
Alias /ganglia /usr/share/ganglia
<Location /ganglia>
Order deny,allow
#Deny from all
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
5. 修改配置檔案gmetad.conf(修改data_source)
[root@cos100 flume]# sudo vim /etc/ganglia/gmetad.conf
- 1
修改為如下:
其中"cos100"為本地主機名
data_source "cos100" cos100
- 1
或:
data_source "cos100" 192.168.xx.x
- 1
6. 修改配置檔案gmond.conf(修改監控的資料來源)
[root@cos100 flume]# sudo vim /etc/ganglia/gmond.conf
- 1
在檔案中尋找cluster{},udp_send_channel{},udp_recv_channel{}三個組並修改如下:
cluster {
# 本機主機名
name = "cos100"
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
# 本機IP
host = 192.168.xx.x
port = 8649
ttl = 1
}
udp_recv_channel {
# mcast_join = 239.2.11.71
port = 8649
# 本機IP
bind = 192.168.xx.x
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
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
7. 修改selinux配置
[root@cos100 flume]# sudo vim /etc/selinux/config
- 1
設定其中的SELINUX=disabled從而關閉Selinux。
設定完畢需要重啟虛擬機器,如果暫時不想重啟,則必須使之臨時生效
[root@cos100 flume]# sudo setenforce 0
- 1
8. 啟動ganglia
[root@cos100 flume]# sudo service httpd start
- 1
[root@cos100 flume]# sudo service gmetad start
- 1
[root@cos100 flume]# sudo service gmond start
- 1
9. 網頁上瀏覽Ganglia頁面
開啟網頁,輸入網址:http://cos100/ganglia即可顯示如下頁面:
注意:如果完成如上配置,訪問網頁顯示許可權不足,如下圖所示:
此情況為/var/lib/ganglia目錄的許可權不足問題導致,授予許可權即可
[root@cos100 flume]# sudo chmod -R 777 /var/lib/ganglia
- 1
二. 使用Ganglia監控Flume
1. 修改Flume配置檔案flume-env.sh
[root@cos100 flume]# vim conf/flume-env.sh
- 1
在檔案中增加如下內容:
JAVA_OPTS="-Dflume.monitoring.type=ganglia
-Dflume.monitoring.hosts=cos100:8649
-Xms100m
-Xmx200m"
- 1
- 2
- 3
- 4
2. 啟動Flume任務
[root@cos100 flume]# bin/flume-ng agent --conf conf/ --name a1 --conf-file job/flume-netcat-logger.conf -Dflume.root.logger==INFO,console -Dflume.monitoring.type=ganglia -Dflume.monitoring.hosts=cos100:8649
- 1
此時即可在網頁檢視Flume的狀態,如下紅色框選部分
1). Grid下拉框選擇Source為本機主機名
2). 點選選擇進入新的網頁後繼續選擇Node為本機主機名
3). 點選選擇進入網頁後在如下右側框選下拉框部分選擇Metric Group為flume
選擇完成後即顯示Flume的狀態頁面
此時,Flume便被Ganglia實時監控。
3. 傳送資料觀察Ganglia監測圖
新開一個客戶端視窗,通過netcat實時生產資料
[root@cos100 flume]# nc localhost 44444
hello world
OK
- 1
- 2
- 3
服務端監控頁面顯示:
2020-02-18 04:59:02,343 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:95)] Event: { headers:{} body: 68 65 6C 6C 6F 20 77 6F 72 6C 64 20 hello world
- 1
網頁Flume監控頁面顯示:
如下為各個監控頁面的具體說明:
圖表名稱 | 具體說明 |
---|---|
EventPutAttemptCount | source嘗試寫入channel的事件總數量 |
EventPutSuccessCount | 成功寫入channel且提交的事件總數量 |
EventTakeAttemptCount | sink嘗試從channel拉取事件的總數量。這不意味著每次事件都被返回,因為sink拉取的時候channel可能沒有任何資料。 |
EventTakeSuccessCount | sink成功讀取的事件的總數量 |
StartTime | channel啟動的時間(毫秒) |
StopTime | channel停止的時間(毫秒) |
ChannelSize | 目前channel中事件的總數量 |
ChannelFillPercentage | channel佔用百分比 |
ChannelCapacity | channel的容量 |
完畢!
相關文章
- 分散式監控系統ganglia的詳細配置分散式
- Flume實時監控 單個追加檔案
- 11.prometheus監控之黑盒(blackbox)監控Prometheus
- Kubernetes監控之InfluxDBUX
- Prometheus監控之Blackbox ExporterPrometheusExport
- ORACLE監控之OSW部署Oracle
- Kubernetes監控實踐(2):可行監控方案之Prometheus和SensuPrometheus
- Java監控神器之psi-probe監控Tomcat和應用JavaTomcat
- PostgreSQL之鎖監控指令碼SQL指令碼
- Zabbix監控之遷移Zabbix
- 效能測試之Docker監控Docker
- 分散式監控系統之Zabbix主動、被動及web監控分散式Web
- 模擬登入之web監控Web
- redis監控工具之redis-liveRedis
- 呼叫鏈監控 CAT 之 入門
- Docker 之 執行狀態監控Docker
- 大資料之Flume(二)大資料
- 黑盒監控、日誌監控
- 6.prometheus監控--監控dockerPrometheusDocker
- TiDB監控實現--存活監控TiDB
- 15.prometheus之pushgateway自定義監控PrometheusGateway
- MySQL調優效能監控之show profileMySql
- MySQL調優效能監控之performance schemaMySqlORM
- 效能測試之JVM的監控GrafanaJVMGrafana
- 微服務架構之「 監控系統 」微服務架構
- 微服務架構之「 呼叫鏈監控 」微服務架構
- 效能監控工具之Grafana+Prometheus+ExportersGrafanaPrometheusExport
- 分散式監控系統之Zabbix proxy分散式
- web前端之異常/錯誤監控Web前端
- prometheus之docker監控與告警系列(一)PrometheusDocker
- prometheus之docker監控與告警系列(二)PrometheusDocker
- prometheus之docker監控與告警系列(三)PrometheusDocker
- 監控
- Flume和Hive整合之hive sinkHive
- 聊聊前端監控——錯誤監控篇前端
- 踩坑指南:入門OpenTenBase之監控篇
- 效能監控之常見 Java Heap Dump 方法Java
- 【MySQL】MHA原始碼之監控檢查(一)MySql原始碼