【昊鼎王五】如何在centos7上安裝ganglia?
引子:
本篇是接着上一篇《【昊鼎王五】如何在centos7上安裝ganglia之寫在前面的話?》的專題的繼續。當前已經知道了ganglia的框架結構,接下來就是安裝ganglia服務端。咱們說幹就幹,直奔主題吧。
1.環境準備
1.1防火牆設置
具體請見《昊鼎王五:如何一分鐘查看並關閉CentOS7的防火牆?》
1.2卸載系統默認安裝的Apache軟件包
[root@localhost ~]# rpm -qa httpd*
[root@localhost ~]# rpm -e --nodeps 包名
有多個httpd*,用腳本刪除for name in `rpm -qa httpd*`;do rpm -e --nodeps $name;done
1.3時區設置
[root@localhost ~]timedatectl
[root@localhost ~]timedatectl list-timezones #該命令列出了所有的時區
[root@localhost ~]timedatectl set-timezone Asia/Shanghai #該命令把時區設置爲上海
1.4時間同步
[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
1.5安裝依賴包
[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
2.編譯安裝
2.1安裝ganglia服務端
2.1.1安裝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
2.1.2安裝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/
2.1.3修改配置
2.1.3.1修改啓動腳本
[root@localhost ganglia]# vi /etc/init.d/gmetad
GMETAD=/usr/sbin/gmetad #這句話可以自行更改gmetad的命令,當然也能向我們前面做了軟連接
start() {
[ -f /usr/local/ganglia/etc/gmetad.conf ] || exit 6 #這裏將配置文件改成現在的位置,不然啓動沒反應
2.1.3.2創建rrds目錄
[root@localhost ganglia]# mkdir /var/lib/ganglia/rrds -p
[root@localhost ganglia]# chown -R nobody:nobody /var/lib/ganglia/rrds
2.1.3.3修改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數據
2.1.3.4啓動服務
[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
2.2安裝ganglia客戶端
被控端命令如下:
[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
3.結果檢查
3.1web訪問
http://192.168.127.133/ganglia/
3.2文件檢查
3.2.1gmond節點的目錄結構
[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
3.2.2gmond配置文件詳解
[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解析。
}
好了,聰明如你,知道了如何在centos7上安裝ganglia,是不是很歡喜 _
還有其他問題的可以在評論區留言或者掃碼加博主獲取資源或者提問。