Ganglia詳細使用方法請閱讀Ganglia權威指南書籍。
1、Ganglia簡介
ganglia介紹:
ganglia是一款爲HPC(高性能計算) 集羣設計的可擴展性 的分佈式監控系統,它可以監視和顯示集羣中節點的各種狀態信息,他由運行在各個節點上的gmond守護進程來採集 CPU、內存、磁盤利用率、I/O負載、網絡流量情況等方面的數據。然後彙總到gmetad守護進程下,使用rrdtool存儲數據,然後將歷史數據以曲線方式通過PHP頁面呈現。
ganglia自帶了很多監控項,詳細的比較詳細,等後面搭建成功後,可以從截圖中看出。ganglia相關的PDF書和資料還是較少的。
Ganglia是一個集羣監控工具,由UC Berkeley創建並開源。Ganglia的中文意思是神經中樞,現在支持多部分操作系統(包括linux、unix、windows),可支持2000個節點的網絡監控(當然這不是上限,只是一個大集羣使用的範例)。
基本結構
Ganglia底層使用RRDTool獲得數據,Ganglia主要分爲兩個進程組件:
gmond(ganglia monitor deamon)
gmetad(ganglia metadata deamon)
其中,gmond運行在集羣每個節點上,收集RRDTool產生的數據;gmetad運行在監控服務器上,收集每個gmond的數據。Ganglia還提供了一個PHP實現的web front end,一般使用Apache2作爲其運行環境,通過Web Front可以看到直觀的各種集羣數據圖表。
Ganglia的層次化結構做的非常好,由小到大可以分爲node -> cluster -> grid,這三個層次。
一個node就是一個需要監控的節點,一般是個主機,用IP表示。每個node上運行一個gmond進程用來採集數據,並提交給gmetad。
一個cluster由多個node組成,就是一個集羣,我們可以給集羣定義名字。一個集羣可以選一個node運行gmetad進程,彙總/拉取gmond提交的數據,並部署web front,將gmetad採集的數據用圖表展示出來。
一個grid由多個cluster組成,是一個更高層面的概念,我們可以給grid定義名字。grid中可以定義一個頂級的gmetad進程,彙總/拉取多個gmond、子gmetad提交的數據,部署web front,將頂級gmetad採集的數據用圖表展示出來。
顯然,這種方式非常靈活,可以實現多種結構的數據監控。由下圖,我們可以清晰的看出這種層次化的結構,和不同的部署方式。
Ganglia運行模式(單播與多播):
Ganglia的收集數據工作可以工作在單播(unicast)或多播(multicast)模式下,默認爲多播模式。
單播:發送自己收集到的監控數據到特定的一臺或幾臺機器上,可以跨網段。
多播:發送自己收集到的監控數據到同一網段內所有的機器上,同時收集同一網段內的所有機器發送過來的監控數據。因爲是以廣播包的形式發送,因此需要同一網段內。但同一網段內,又可以定義不同的發送通道。
ganglia三大組件:
gmond:
gmond類似於傳統監控系統中的代理,需要安裝在每臺主機上,負責和操作系統交互以獲得需要關注的指標數據。
gmond再內部採用模塊化設計,採用基於C語言編寫、根據操作系統定製的插件進行監控。gmond爲指標提供了大部分標準插件,而且可以增加更多的用C、C++或Python等語言編寫的插件來支持新的指標。此外,內置的gmetric工具可以用來報告用任何語言編譯的自定義指標數據。
gmond根據自身本地配置文件定義的調度方案進行輪詢。監聽數據時使用簡單的監聽/通告協議,通過XDR在集羣內的主機之間共享。這些通告默認使用多播,而集羣是由共享同一多播地址的主機所構成的。當然gmond也可以使用單播,將數據都匯聚到同一臺中心節點。
因爲每臺gmond主機將指標數據多播到集羣內的其他主機,每臺gmond主機也記錄了集羣內其他主機的指標數據。遠程輪詢器通過默認的8649端口,向集羣內任意節點請求獲得該集羣XML格式的所有數據。
如果服務器主機過多,因爲只要輪詢集羣中任意節點就能獲取所有集羣內其他主機的性能指標數據,所以我們可以將衆多的主機劃分到不同的組裏面,這樣一來,收集數據的工作量將得到大大的減輕。
gmetad:
主要作用就是整合所有信息。
gmetad是一個簡單的輪詢器,對網絡中每個集羣進行輪詢,並將每臺主機上返回的所有指標數據寫入各個集羣對應的輪詢數據庫。輪詢器對集羣的“輪詢”只需要打開一個用於讀取的套接字,連接到目標gmond節點的8649端口即可,通過遠程非常容易實現。
gmetad還有一些其他特性,如可以從其他的gmetad中輪詢數據,gmetad通過tcp端口8651偵聽遠程gmetad連接,並且向授權主機提供XML格式的網格狀態。從而構成一種聯合層次結構。gmetad具有交互式查詢功能,外部監控系統可以通過TCP 8652端口用簡單文本協議進行輪詢。gmetad也可以通過配置gmetad將指標數據轉送到諸如Graphite外部系統發送數據。
gmetad默認將指標數據直接寫入文件系統上的RRD文件,在有I/O限制的大型裝置中,rrdcached充當gmetad和RRD文件之間的緩存。
gweb:
ganglia可視化工具。顯示ganglia收集的主機各項指標。
gweb允許在圖標中通過點擊-拖拽改變時間週期,包含從不同文本格式(CSV,JSON等)中便捷提供數據的工具,顯示完整、使用的URL接口,使用戶可以通過預知的URL將感興趣的圖表嵌入其他程序。
gweb是一種PHP程序,因爲需要與輪詢器創建的RRD數據庫交互,所以gweb通常安裝在和gmetad相同的物理硬件上。
ganglia的官網:http://ganglia.info 下載鏈接:http://ganglia.info/?page_id=66
2、環境準備
設置或停止防火牆: [root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# systemctl disable firewalld.service 關閉selinux: 臨時關閉: [root@localhost ~]# setenforce 0 永久關閉(修改配置文件): [root@localhost ~]# vi /etc/selinux/config 改成SELINUX=disabled 卸載系統默認安裝的Apache軟件包: [root@localhost ~]# rpm -qa httpd* [root@localhost ~]# rpm -e --nodeps 包名 有多個httpd*,用腳本刪除for name in `rpm -qa httpd*`;do rpm -e --nodeps $name;done 安裝依賴包: [root@localhost ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm [root@localhost ~]# yum install wget lrzsz vim lynx lsof netstat-tools unzip -y 時區設置: [root@localhost ~]timedatectl [root@localhost ~]timedatectl list-timezones #該命令列出了所有的時區 [root@localhost ~]timedatectl set-timezone Asia/Shanghai #該命令把時區設置爲上海 時間同步: [root@localhost ~]# ntpdate time.nist.gov #如果沒有yum安裝此命令 [root@localhost ~]# /usr/sbin/ntpdate time.nist.gov [root@localhost ~]# crontab -e */10**** /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1
3、RPM方式安裝Ganglia
3.1 服務端(192.168.146.128)的安裝:
yum安裝相關依賴包: [root@localhost system]# 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 [root@localhost system]# yum install -y libart_lgpl-devel pcre-devel libtool [root@localhost system]# yum install -y rrdtool rrdtool-devel [root@localhost system]# systemctl restart gmond [root@localhost system]# systemctl restart gmetad [root@localhost system]# systemctl restart httpd [root@localhost system]# netstat -lntup 安裝gmetad: [root@localhost system]# cd [root@localhost ~]# yum install libconfuse libconfuse-devel -y [root@localhost ~]# mkdir /tools && cd /tools/ [root@localhost ~]# wget https://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz [root@localhost ~]# tar zxf ganglia-3.7.2.tar.gz [root@localhost ganglia-3.7.2]# ls -l ganglia.spec #因爲有這個ganglia.spec,所以說是支持rpm安裝的 -rw-r--r--. 1 www-data www-data 23494 7月 2 2015 ganglia.spec [root@localhost ganglia-3.7.2]# rpmbuild -tb /tools/ganglia-3.7.2.tar.gz #-tb表示從tar包中build二進制文件 [root@localhost ganglia-3.7.2]# cd /root/rpmbuild/RPMS/x86_64/ [root@localhost x86_64]# ll 總用量 896 -rw-r--r--. 1 root root 486864 6月 3 11:29 ganglia-debuginfo-3.7.2-1.x86_64.rpm -rw-r--r--. 1 root root 49596 6月 3 11:29 ganglia-devel-3.7.2-1.x86_64.rpm -rw-r--r--. 1 root root 59088 6月 3 11:29 ganglia-gmetad-3.7.2-1.x86_64.rpm -rw-r--r--. 1 root root 134956 6月 3 11:29 ganglia-gmond-3.7.2-1.x86_64.rpm -rw-r--r--. 1 root root 128628 6月 3 11:29 ganglia-gmond-modules-python-3.7.2-1.x86_64.rpm -rw-r--r--. 1 root root 45344 6月 3 11:29 libganglia-3.7.2-1.x86_64.rpm 把gmetad和gmond都安裝了。 [root@localhost x86_64]# rpm -ivh /root/rpmbuild/RPMS/x86_64/* /etc/ganglia/ #爲主配置文件目錄 /var/lib/ganglia/rrds #爲rrds圖信息存儲目錄 [root@localhost x86_64]# rpm -ql ganglia-gmetad-3.7.2-1 #如:通過這個命令也可以看出,gmetad的rpm包相關的目錄 /etc/ganglia/gmetad.conf /etc/init.d/gmetad /etc/sysconfig/gmetad /usr/sbin/gmetad /usr/share/man/man1/gmetad.1.gz /usr/share/man/man1/gmetad.py.1.gz /var/lib/ganglia /var/lib/ganglia/rrds 安裝gweb: [root@localhost x86_64]# yum install httpd httpd-devel php -y [root@localhost x86_64]# yum -y install rsync [root@localhost x86_64]# cd /tools/ [root@localhost tools]# wget https://sourceforge.net/projects/ganglia/files/ganglia-web/3.7.2/ganglia-web-3.7.2.tar.gz [root@localhost tools]# tar zxvf /tools/ganglia-web-3.7.2.tar.gz -C /var/www/html/ [root@localhost tools]# cd /var/www/html/ [root@localhost html]# mv ganglia-web-3.7.2 ganglia [root@localhost html]# cd /var/www/html/ganglia/ [root@localhost ganglia]# useradd -M -s /sbin/nologin www-data [root@localhost ganglia]# make install #執行這步,會創建相關的目錄 [root@localhost ganglia]# systemctl restart gmond [root@localhost ganglia]# systemctl restart gmetad [root@localhost ganglia]# systemctl restart httpd gmond默認端口8649。 gmetad默認端口8651、9652。 gmond默認組播方式。 [root@localhost system]# netstat -lntup Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:8649 0.0.0.0:* LISTEN 14244/gmond tcp 0 0 0.0.0.0:8651 0.0.0.0:* LISTEN 14257/gmetad tcp 0 0 0.0.0.0:8652 0.0.0.0:* LISTEN 14257/gmetad tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1430/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1734/master tcp6 0 0 :::80 :::* LISTEN 14274/httpd tcp6 0 0 :::22 :::* LISTEN 1430/sshd tcp6 0 0 ::1:25 :::* LISTEN 1734/master udp 0 0 239.2.11.71:8649 0.0.0.0:* 14244/gmond udp 0 0 0.0.0.0:49704 0.0.0.0:* 1240/dhclient udp 0 0 0.0.0.0:68 0.0.0.0:* 1240/dhclient udp6 0 0 :::28458 :::* 1240/dhclient
3.2 gmond客戶端(192.168.146.134)安裝:
[root@localhost system]# 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 [root@localhost system]# yum install libconfuse libconfuse-devel -y 需要下面四個rpm包:發送到其他客戶端上面,rpm -ivh *一下就好 ganglia-devel-3.7.2-1.x86_64.rpm ganglia-gmond-3.7.2-1.x86_64.rpm ganglia-gmond-modules-python-3.7.2-1.x86_64.rpm libganglia-3.7.2-1.x86_64.rpm #啓動gmond服務便可,因爲默認配置就是一個組播組,組播地址和端口都是統一的。 [root@localhost system]# systemctl restart gmond 備註:服務端應該要改一個配置文件,說明到哪個gmond去獲取數據。
web訪問:
http://192.168.146.128/ganglia/
解決辦法:
[root@localhost system]# ln -s /var/lib/ganglia /var/lib/ganglia-web [root@localhost system]# mkdir -p /var/lib/ganglia-web/dwoo/{compiled,cache} -p [root@localhost system]# chown -R apache:apache /var/lib/ganglia 備註:如果ganglib和ganglia-web原本就存在,那直接對ganglia-web賦予權限。
備註一:
There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Connection refused 查看message日誌: localhost /usr/sbin/gmetad[14747]: RRD_create: creating '/var/lib/ganglia/rrds/__SummaryInfo__/diskstat_vda_writes.rrd': Permission denied localhost /usr/sbin/gmetad[14747]: Unable to write meta data for metric diskstat_vda_writes to RRD 解決辦法: # /etc/init.d/gmetad status #查看狀態gmetad是死狀態 gmetad 已死,但是 subsys 被鎖 # chown nobody:nobody /var/lib/ganglia/rrds -R # /etc/init.d/gmetad restart
備註二:
注意: Centos7的系列,用這種rpm安裝的方式是會報錯的: # rpm -ivh *.rpm 錯誤:依賴檢測失敗: libpcre.so.0()(64bit) 被 ganglia-gmond-3.7.2-1.x86_64 需要 libpcre.so.0()(64bit) 被 ganglia-gmond-modules-python-3.7.2-1.x86_64 需要 libpython2.6.so.1.0()(64bit) 被 ganglia-gmond-modules-python-3.7.2-1.x86_64 需要 libpcre.so.0()(64bit) 被 libganglia-3.7.2-1.x86_64 需要 原因: 從上圖中可以看出,要找對應的庫文件沒有,如libpython2.6.so.1.0,這是Centos6版本里面纔有的,Centos7默認是libpython2.7。 而我們下載的ganglia也是最新版了,所以系統如果有Centos7的版本了,就不能用這種rpm包省事的方法安裝了。就要換成編譯安裝的形式了,而我們線上一般也是採取編譯安裝的形式,因爲編譯安裝可以指定對應的目錄和參數。
備註三:
服務器啓動,節點也加載了你會發現只有主機圖,但是主機圖裏面沒有曲線數值:圖的下方提示:No matching metrics detected 第一:安裝步驟是否正確,是否缺少相關的目錄 第二:查看message日誌,是否目錄權限錯誤,尤其是/var/lib/ganglia/rrds/是否有權限報警。 第三:被監控的節點是不是開了防火牆之類的操作。 就以192.168.1.103舉例(Centos7的firewalld沒有關閉):下面是關閉防火牆服務後的效果圖
4、編譯方式安裝Ganglia(推薦)
4.1 服務器端(192.168.146.128)的操作:
安裝gmetad [root@localhost ~]# 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 [root@localhost ~]# yum install -y libart_lgpl-devel pcre-devel libtool [root@localhost ~]# yum install -y rrdtool rrdtool-devel [root@localhost ~]# mkdir /tools [root@localhost ~]# cd /tools/ [root@localhost ~]# wget http://www.mirrorservice.org/sites/download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz [root@localhost ~]# tar zxvf confuse-2.7.tar.gz [root@localhost ~]# cd confuse-2.7 [root@localhost ~]# ./configure --prefix=/usr/local/ganglia-tools/confuse CFLAGS=-fPIC --disable-nls --libdir=/usr/local/ganglia-tools/confuse/lib64 [root@localhost ~]# make && make install [root@localhost ~]# cd /tools/ [root@localhost ~]# wget https://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz [root@localhost ~]# tar zxf ganglia-3.7.2.tar.gz [root@localhost ~]# cd ganglia-3.7.2 [root@localhost ~]# ./configure --prefix=/usr/local/ganglia --enable-gexec --enable-status --with-gmetad --with-libconfuse=/usr/local/ganglia-tools/confuse #enable-gexec是gmond節點 [root@localhost ~]# make && make install [root@localhost ~]# cp gmetad/gmetad.init /etc/init.d/gmetad [root@localhost ~]# ln -s /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad 安裝gweb [root@localhost x86_64]# yum install httpd httpd-devel php -y [root@localhost x86_64]# yum -y install rsync [root@localhost x86_64]# cd /tools/ [root@localhost tools]# wget https://sourceforge.net/projects/ganglia/files/ganglia-web/3.7.2/ganglia-web-3.7.2.tar.gz [root@localhost tools]# tar zxvf /tools/ganglia-web-3.7.2.tar.gz -C /var/www/html/ [root@localhost tools]# cd /var/www/html/ [root@localhost html]# mv ganglia-web-3.7.2 ganglia [root@localhost html]# cd /var/www/html/ganglia/ [root@localhost ganglia]# useradd -M -s /sbin/nologin www-data [root@localhost ganglia]# make install #執行這步,會創建相關的目錄 [root@localhost ganglia]# chown apache:apache -R /var/lib/ganglia-web/ 修改配置 修改啓動腳本 [root@localhost ganglia]# vi /etc/init.d/gmetad GMETAD=/usr/sbin/gmetad #這句話可以自行更改gmetad的命令,當然也能向我們前面做了軟連接 start() { [ -f /usr/local/ganglia/etc/gmetad.conf ] || exit 6 #這裏將配置文件改成現在的位置,不然啓動沒反應 創建rrds目錄 [root@localhost ganglia]# mkdir /var/lib/ganglia/rrds -p [root@localhost ganglia]# chown -R nobody:nobody /var/lib/ganglia/rrds 修改gmetad配置文件 因爲我們這裏就先讓它當一個單純的gweb節點和gmetad節點,不給其啓動gmond服務,假設它沒有再哪個多播集羣裏。 [root@localhost ganglia]# vi /usr/local/ganglia/etc/gmetad.conf data_source "my cluster" 192.168.146.134:8649 #這也是我們以後經常修改的地方,""裏面是組名稱 後面是去哪個IP的那個端口去採集gmond數據 啓動服務 [root@localhost ganglia]# mkdir -p /usr/local/ganglia/var/run [root@localhost ganglia]# /etc/init.d/gmetad restart [root@localhost ganglia]# systemctl restart httpd [root@localhost tools]# netstat -luntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:8651 0.0.0.0:* LISTEN 16547/gmetad tcp 0 0 0.0.0.0:8652 0.0.0.0:* LISTEN 16547/gmetad tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1433/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1741/master tcp6 0 0 :::80 :::* LISTEN 16344/httpd tcp6 0 0 :::22 :::* LISTEN 1433/sshd tcp6 0 0 ::1:25 :::* LISTEN 1741/master udp 0 0 0.0.0.0:47154 0.0.0.0:* 1242/dhclient udp 0 0 0.0.0.0:68 0.0.0.0:* 1242/dhclient udp6 0 0 :::2514 :::* 1242/dhclient
4.2 客戶端(192.168.146.134)的操作:
[root@localhost ~]# 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 [root@localhost ~]# yum install -y libart_lgpl-devel pcre-devel libtool [root@localhost ~]# mkdir /tools [root@localhost ~]# cd /tools/ [root@localhost tools]# wget http://www.mirrorservice.org/sites/download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz [root@localhost tools]# tar zxvf confuse-2.7.tar.gz [root@localhost tools]# cd confuse-2.7 [root@localhost confuse-2.7]# ./configure --prefix=/usr/local/ganglia-tools/confuse CFLAGS=-fPIC --disable-nls --libdir=/usr/local/ganglia-tools/confuse/lib64 [root@localhost confuse-2.7]# make && make install [root@localhost confuse-2.7]# cd /tools/ [root@localhost tools]# wget https://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz [root@localhost tools]# tar zxvf ganglia-3.7.2.tar.gz [root@localhost tools]# cd ganglia-3.7.2 [root@localhost ganglia-3.7.2]# ./configure --prefix=/usr/local/ganglia --enable-gexec --enable-status --with-libconfuse=/usr/local/ganglia-tools/confuse #enable-gexec是gmond節點 [root@localhost ganglia-3.7.2]# make && make install [root@localhost ganglia-3.7.2]# /usr/local/ganglia/sbin/gmond -t >/usr/local/ganglia/etc/gmond.conf #生成gmond配置文件 [root@localhost ganglia-3.7.2]# cp /tools/ganglia-3.7.2/gmond/gmond.init /etc/init.d/gmond [root@localhost ganglia-3.7.2]# mkdir -p /usr/local/ganglia/var/run [root@localhost ganglia-3.7.2]# /etc/init.d/gmond restart [root@localhost ganglia-3.7.2]# netstat -luntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1056/php-fpm: maste tcp 0 0 0.0.0.0:8649 0.0.0.0:* LISTEN 15476/gmond tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 1061/sshd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1061/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1683/master tcp6 0 0 :::50088 :::* LISTEN 1375/httpd tcp6 0 0 :::3306 :::* LISTEN 1410/mysqld tcp6 0 0 :::2222 :::* LISTEN 1061/sshd tcp6 0 0 :::22 :::* LISTEN 1061/sshd tcp6 0 0 ::1:25 :::* LISTEN 1683/master tcp6 0 0 :::50080 :::* LISTEN 1375/httpd udp 0 0 0.0.0.0:50614 0.0.0.0:* 855/dhclient udp 0 0 239.2.11.71:8649 0.0.0.0:* 15476/gmond udp 0 0 0.0.0.0:68 0.0.0.0:* 855/dhclient udp6 0 0 :::6727 :::* 855/dhclient
web訪問
http://192.168.146.128/ganglia/
注:
測試結果是OK的,這裏就截圖了。線上環境,我們一般會創建一個監控用於,專門用來存放相關的監控程序,所以你看我的編譯過程都指定了安裝位置,但是一般不會放到/usr/local下面,會都指向安裝到我們的監控用戶或者監控目錄下面。另外客戶端有一個編譯安裝成功了,可以直接把生成的目錄發送到其他的客戶端上面,一樣也可以使用的,不需要每臺機器都進行一次編譯過程。當然yum安裝軟件包組還是需要的。
5、Ganglia目錄及配置文件詳解
5.1 gmond節點的目錄結構
[root@localhost ganglia]# tree -L 3 . ├── bin │ ├── ganglia-config │ ├── gmetric │ └── gstat ├── etc │ ├── conf.d │ │ └── modpython.conf │ └── gmetad.conf ├── include │ ├── ganglia_gexec.h │ ├── ganglia.h │ ├── gm_file.h │ ├── gm_metric.h │ ├── gm_mmn.h │ ├── gm_msg.h │ ├── gm_protocol.h │ └── gm_value.h ├── lib64 │ ├── ganglia │ │ ├── modcpu.so │ │ ├── moddisk.so │ │ ├── modgstatus.so │ │ ├── modload.so │ │ ├── modmem.so │ │ ├── modmulticpu.so │ │ ├── modnet.so │ │ ├── modproc.so │ │ ├── modpython.so │ │ └── modsys.so │ ├── libganglia.a │ ├── libganglia.la │ ├── libganglia.so -> libganglia.so.0.0.0 │ ├── libganglia.so.0 -> libganglia.so.0.0.0 │ └── libganglia.so.0.0.0 ├── sbin │ ├── gmetad │ └── gmond ├── share │ └── man │ ├── man1 │ └── man5 └── var └── run └── gmetad.pid 13 directories, 31 files
5.2 gmond配置文件詳解
[root@localhost ganglia]# /usr/local/ganglia/sbin/gmond -t #查看gmond的默認配置 配置文件由{}括起來的幾個section組成。section名和屬性不區分大小寫。 globals { #section:globals. globals在配置中只出現一次。 daemonize = yes #當值爲true(yes|true|on)時,gmond將在後臺分散運行。設置爲false由守護進程管理器運行gmond。 setuid = yes #這是gmond將user屬性指定的特定用戶的UID作爲有效UID;值爲false時,gmond將不會改變其有效用戶。 user = nobody #用戶名 debug_level = 0 #值爲0,gmond正常運行,大於0,gmond前臺運行並輸出調試信息。debug_level值越大,輸出越詳細。 max_udp_msg_len = 1472 #gmond發送包所能包含的最大長度。一般不改變此值。 mute = no #設置爲no,gmond就是可以發送數據。設置爲yes,就是單收,但是仍然會相應諸如gmetad的外部輪詢器。 deaf = no #當值爲true時,gmond將不能接收數據。設置no就是可以接收數據。 allow_extra_data = yes #當值爲false時,gmond將不會發送XML的EXTRA_ELEMENT和EXTRA_DATA部分。這是是發送。 host_dmax = 86400 #設置爲0,gmond不會從隊列中刪除不在報告的主機。這裏的意思是在86400秒內,接收不到某臺主機的數據,gmond將刪除。 host_tmax = 20 #當gmond等到20秒*4的時間內,接收不到某臺主機的任何消息,gmond就認爲該主機已經崩潰。 cleanup_threshold = 300 #gmond清除過期數據的最小時間間隔爲300秒。 gexec = no #當值爲true時,gmond將允許主機運行gexec任務。這種方式需要允許gexecd並安裝合適的驗證碼。 send_metadata_interval = 0 #這是設置gmond兩次發送元數據包的時間間隔。單位是秒。默認設置爲0,表示gmond只有在啓動和收集到其他遠程允許的gmond節點請求時纔會發送元數據包。但是如果單播環境下必須設置重發間隔。 # override_hostname = "mywebserver.domain.com"” #這裏是gweb界面要顯示的名稱,可以是IP或者字符串,默認是註釋狀態。默認情況下,gmond在顯示主機名時將使用反向DNS解析。 }