導讀 | 從系統管理員接手服務器和主機管理以來,像應用監控這樣的工具就成了他們的好幫手。其中比較有名的有Nagios、 Zabbix、 Icinga 和 Centreon。以上這些是重量級的監控工具,讓一個新手管理員來設置,并使用其中的高級特性是有些困難的。 |
本文將向你介紹 Ganglia,它是一個易于擴展的監控系統。使用它可以實時查看 linux 服務器和集群(圖形化展示)中的各項性能指標。
Ganglia 能夠讓你以集群(按服務器組)和網格(按地理位置)的方式更好地組織服務器。這樣,我們可以創建一個包含所有遠程主機的網格,然后將那些機器按照其它標準分組成小的集合。此外, Ganglia 的 web 頁面對移動設備進行過優化,也允許你導出 csv和 .json 格式的數據。
我們的測試環境包括一個安裝 Ganglia 的主節點服務器 CentOS 7 (ip 地址 192.168.0.29),和一個作為被監控端的 Ubuntu 14.04 主機(192.168.0.32)。我們將通過 Ganglia 的 Web 頁面來監控這臺 Ubuntu 主機。
下面的例子可以給大家提供參考,CentOS7 作為主節點,Ubuntu 作為被監控對象。
安裝和配置 Ganglia請遵循以下步驟,在主節點服務器安裝監控工具。
1.啟用EPEL 倉庫 ,然后安裝 Ganglia 和相關工具:
# yum update && yum install epel-release# yum install ganglia rrdtool ganglia-gmetad ganglia-gmond ganglia-web在上面這步隨 Ganglia 將安裝一些應用,它們的功能如下:
rrdtool,Round-Robin 數據庫,它是一個儲存并圖形化顯示隨著時間變化的數據的工具;ganglia-gmetad 一個守護進程,用來收集被監控主機的數據。被監控主機與主節點主機都要安裝 Ganglia-gmond(監控守護進程本身);ganglia-web 提供 Web 前端,用于顯示監控系統的歷史數據和圖形。2.使用 Apache 提供的基本認證功能,為 Ganglia Web 界面(/usr/share/ganglia)配置身份認證。如果你想了解更多高級安全機制,請參閱 Apache 文檔的 授權與認證部分。
為完成這個目標,我們需要創建一個用戶名并設定一個密碼,以訪問被 Apache 保護的資源。在本例中,我們先來創建一個叫 adminganglia 的用戶名,然后給它分配一個密碼,它將被儲存在 /etc/httpd/auth.basic(可以隨意選擇另一個目錄 和/或 文件名, 只要 Apache 對此有讀取權限就可以。)
# htpasswd -c /etc/httpd/auth.basic adminganglia給 adminganglia 輸入兩次密碼完成密碼設置。
3.修改配置文件/etc/httpd/conf.d/ganglia.conf:
Alias /ganglia /usr/share/gangliaAuthType basicAuthName "Ganglia web UI"AuthBasicPRovider fileAuthUserFile "/etc/httpd/auth.basic"Require user adminganglia4.編輯 /etc/ganglia/gmetad.conf:
首先,使用 gridname 指令來為網格設置一個描述性名稱。
gridname "Home office"然后,使用 data_source 指令,后面跟集群名(服務器組)、輪詢時間間隔(秒)、主節點主機和被監控節點的 IP 地址:
data_source "Labs" 60 192.168.0.29:8649 # 主節點data_source "Labs" 60 192.168.0.32 # 被監控節點5.編輯/etc/ganglia/gmond.conf。
a) 確保集群的配置類似下面。
cluster {name = "Labs" # gmetad.conf 中的 data_source 指令的名字owner = "unspecified"latlong = "unspecified"url = "unspecified"}b) 在 udp_send_chanel 中,注釋掉 mcast_join:
udp_send_channel {# mcast_join = 239.2.11.71host = localhostport = 8649ttl = 1}c) 在 udp_recv_channel 中,注釋掉 mcast_join 和 bind 部分:
udp_recv_channel {# mcast_join = 239.2.11.71 ## comment outport = 8649# bind = 239.2.11.71 ## comment out}保存并退出。
6.打開 8649/udp 端口,使用 SELinux 確保 php 腳本(通過 Apache 運行)能夠連接到網絡:
# firewall-cmd --add-port=8649/udp# firewall-cmd --add-port=8649/udp --permanent# setsebool -P httpd_can_network_connect 17.重啟 Apache、gmetad、gmond,并確保它們啟用了“開機啟動”。
# systemctl restart httpd gmetad gmond# systemctl enable httpd gmetad httpd至此,我們現在能夠打開 Ganglia 的 Web 頁面 http://192.168.0.29/ganglia 并用步驟 2 中設置的憑證登錄。
8.在 Ubuntu 主機上,只需安裝 Ganglia-monitor,等同于 CentOS 上的 ganglia-gmond:
$ sudo aptitude update && aptitude install ganglia-monitor9.編輯被監控主機的 /etc/ganglia/gmond.conf 文件。與主節點主機上是相同的文件,除了被注釋掉的cluster, udp_send_channeludp_recv_channel 這里不應被注釋:
cluster {name = "Labs" # The name in the data_source directive in gmetad.confowner = "unspecified"latlong = "unspecified"url = "unspecified"}udp_send_channel {mcast_join = 239.2.11.71host = localhostport = 8649ttl = 1}udp_recv_channel {mcast_join = 239.2.11.71 ## comment outport = 8649bind = 239.2.11.71 ## comment out}之后重啟服務。
$ sudo service ganglia-monitor restart10. 刷新頁面,你將在 Home office grid / Labs cluster 中看到兩臺主機的各種統計及圖形化的展示(用下拉菜單選擇集群,本例中為 Labs):
使用菜單按鈕(如上指出的),你可以獲取到每臺服務器和集群的信息。還可以使用 對比主機Compare Hosts選項卡來比較集群中所有服務器的狀態。
可以使用正則表達式選擇一組服務器,立刻就可以看到它們性能的對比:
我最喜歡的一個特點是對移動端有友好的總結界面,可以通過 Mobile 選項來訪問。選擇你感興趣的集群,然后選中一個主機。
總結
本篇文章向大家介紹了 Ganglia,它是一個功能強大、擴展性很好的監控工具,主要用來監控集群和網格。它可以隨意安裝,便捷的組合各種功能(你甚至可以嘗試一下官方網站提供的 Demo)。
此時,你可能會發現許多知名的 IT 或非 IT 的企業在使用 Ganglia。除了我們在文章中提及的之外,還有很多理由這樣做,其中易用性,統計的圖形化(在名字旁附上臉部照片更清晰,不是嗎)可能是最重要的原因。
但是請不要拘泥于本篇文章,嘗試一下自己去做。如果你有任何問題,歡迎給我留言。
本文
免費提供最新Linux技術教程書籍,為開源技術愛好者努力做得更多更好,開源站點:http://www.linuxprobe.com/
Ganglia 監控實戰!
導讀 從系統管理員接手服務器和主機管理以來,像應用監控這樣的工具就成了他們的好幫手。其中比較有名的有Nagios、 Zabbix、 Icinga 和 Centreon。以上這些是重量級的監控工具,讓一個新手管理員來設置,并使用其中的高級特性是有些困難的。 本文將向你介紹 Ganglia,它是一個易于擴展的監控系統。使用它可以實時查看 Linux 服務器和集群(圖形化展示)中的各項性能指標。
Ganglia 能夠讓你以集群(按服務器組)和網格(按地理位置)的方式更好地組織服務器。這樣,我們可以創建一個包含所有遠程主機的網格,然后將那些機器按照其它標準分組成小的集合。此外, Ganglia 的 web 頁面對移動設備進行過優化,也允許你導出 csv和 .json 格式的數據。
我們的測試環境包括一個安裝 Ganglia 的主節點服務器 CentOS 7 (IP 地址 192.168.0.29),和一個作為被監控端的 Ubuntu 14.04 主機(192.168.0.32)。我們將通過 Ganglia 的 Web 頁面來監控這臺 Ubuntu 主機。
下面的例子可以給大家提供參考,CentOS7 作為主節點,Ubuntu 作為被監控對象。
安裝和配置 Ganglia請遵循以下步驟,在主節點服務器安裝監控工具。
1.啟用EPEL 倉庫 ,然后安裝 Ganglia 和相關工具:
# yum update && yum install epel-release# yum install ganglia rrdtool ganglia-gmetad ganglia-gmond ganglia-web在上面這步隨 Ganglia 將安裝一些應用,它們的功能如下:
rrdtool,Round-Robin 數據庫,它是一個儲存并圖形化顯示隨著時間變化的數據的工具;ganglia-gmetad 一個守護進程,用來收集被監控主機的數據。被監控主機與主節點主機都要安裝 Ganglia-gmond(監控守護進程本身);ganglia-web 提供 Web 前端,用于顯示監控系統的歷史數據和圖形。2.使用 Apache 提供的基本認證功能,為 Ganglia Web 界面(/usr/share/ganglia)配置身份認證。如果你想了解更多高級安全機制,請參閱 Apache 文檔的 授權與認證部分。
為完成這個目標,我們需要創建一個用戶名并設定一個密碼,以訪問被 Apache 保護的資源。在本例中,我們先來創建一個叫 adminganglia 的用戶名,然后給它分配一個密碼,它將被儲存在 /etc/httpd/auth.basic(可以隨意選擇另一個目錄 和/或 文件名, 只要 Apache 對此有讀取權限就可以。)
# htpasswd -c /etc/httpd/auth.basic adminganglia給 adminganglia 輸入兩次密碼完成密碼設置。
3.修改配置文件/etc/httpd/conf.d/ganglia.conf:
Alias /ganglia /usr/share/gangliaAuthType basicAuthName "Ganglia web UI"AuthBasicProvider fileAuthUserFile "/etc/httpd/auth.basic"Require user adminganglia4.編輯 /etc/ganglia/gmetad.conf:
首先,使用 gridname 指令來為網格設置一個描述性名稱。
gridname "Home office"然后,使用 data_source 指令,后面跟集群名(服務器組)、輪詢時間間隔(秒)、主節點主機和被監控節點的 IP 地址:
data_source "Labs" 60 192.168.0.29:8649 # 主節點data_source "Labs" 60 192.168.0.32 # 被監控節點5.編輯/etc/ganglia/gmond.conf。
a) 確保集群的配置類似下面。
cluster {name = "Labs" # gmetad.conf 中的 data_source 指令的名字owner = "unspecified"latlong = "unspecified"url = "unspecified"}b) 在 udp_send_chanel 中,注釋掉 mcast_join:
udp_send_channel {# mcast_join = 239.2.11.71host = localhostport = 8649ttl = 1}c) 在 udp_recv_channel 中,注釋掉 mcast_join 和 bind 部分:
udp_recv_channel {# mcast_join = 239.2.11.71 ## comment outport = 8649# bind = 239.2.11.71 ## comment out}保存并退出。
6.打開 8649/udp 端口,使用 SELinux 確保 php 腳本(通過 Apache 運行)能夠連接到網絡:
# firewall-cmd --add-port=8649/udp# firewall-cmd --add-port=8649/udp --permanent# setsebool -P httpd_can_network_connect 17.重啟 Apache、gmetad、gmond,并確保它們啟用了“開機啟動”。
# systemctl restart httpd gmetad gmond# systemctl enable httpd gmetad httpd至此,我們現在能夠打開 Ganglia 的 Web 頁面 http://192.168.0.29/ganglia 并用步驟 2 中設置的憑證登錄。
8.在 Ubuntu 主機上,只需安裝 Ganglia-monitor,等同于 CentOS 上的 ganglia-gmond:
$ sudo aptitude update && aptitude install ganglia-monitor9.編輯被監控主機的 /etc/ganglia/gmond.conf 文件。與主節點主機上是相同的文件,除了被注釋掉的cluster, udp_send_channeludp_recv_channel 這里不應被注釋:
cluster {name = "Labs" # The name in the data_source directive in gmetad.confowner = "unspecified"latlong = "unspecified"url = "unspecified"}udp_send_channel {mcast_join = 239.2.11.71host = localhostport = 8649ttl = 1}udp_recv_channel {mcast_join = 239.2.11.71 ## comment outport = 8649bind = 239.2.11.71 ## comment out}之后重啟服務。
$ sudo service ganglia-monitor restart10. 刷新頁面,你將在 Home office grid / Labs cluster 中看到兩臺主機的各種統計及圖形化的展示(用下拉菜單選擇集群,本例中為 Labs):
使用菜單按鈕(如上指出的),你可以獲取到每臺服務器和集群的信息。還可以使用 對比主機Compare Hosts選項卡來比較集群中所有服務器的狀態。
可以使用正則表達式選擇一組服務器,立刻就可以看到它們性能的對比:
我最喜歡的一個特點是對移動端有友好的總結界面,可以通過 Mobile 選項來訪問。選擇你感興趣的集群,然后選中一個主機。
總結
本篇文章向大家介紹了 Ganglia,它是一個功能強大、擴展性很好的監控工具,主要用來監控集群和網格。它可以隨意安裝,便捷的組合各種功能(你甚至可以嘗試一下官方網站提供的 Demo)。
此時,你可能會發現許多知名的 IT 或非 IT 的企業在使用 Ganglia。除了我們在文章中提及的之外,還有很多理由這樣做,其中易用性,統計的圖形化(在名字旁附上臉部照片更清晰,不是嗎)可能是最重要的原因。
但是請不要拘泥于本篇文章,嘗試一下自己去做。如果你有任何問題,歡迎給我留言。
新聞熱點
疑難解答