【昊鼎王五】如何在centos7上安装ganglia?

本文详述了在CentOS7系统中安装Ganglia监控系统的全过程,包括环境准备、防火墙设置、时区及时间同步配置、依赖包安装、服务端与客户端的编译安装步骤,以及配置修改和结果检查方法。

【昊鼎王五】如何在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,是不是很欢喜 _

还有其他问题的可以在评论区留言或者扫码加博主获取资源或者提问。
在这里插入图片描述

<think>根据用户上一次的提问,我们需要向之前创建的student表中插入两条记录:王五(20岁,男)和小龙(23岁,女)。之前创建的student表结构如下(参考历史记录):表名:student字段:sid:INT,主键,自增sname:VARCHAR(50),NOTNULLsage:INT,默认0ssex:CHAR(5),默认'-'vander10:INT,默认0vander5:INT,默认0注意:sid是自增字段,插入时不需要指定值(除非需要覆盖自增值),而vander10和vander5有默认值0,我们也可以不指定。因此,插入数据的SQL语句有两种写法:1.指定所有需要赋值的字段(不包括自增主键sid和采用默认值的字段)2.如果为所有字段赋值(包括自增主键),则必须显式写出所有字段名(但通常不推荐指定自增主键的值,除非必要)但是,这里我们只需要插入姓名、年龄和性别,其他字段采用默认值,所以采用第一种写法。具体步骤:1.编写INSERT语句,指定字段:sname,sage,ssex2.提供对应的值:('王五',20,'男')和('小龙',23,'女')注意:字符串值需要用单引号括起来。参考用户提供的引用[^1]和[^3]中的插入语法。因此,插入数据的SQL语句如下:</think> ### 在`student`表中插入数据的SQL解决方案 根据表结构(参考您上次创建的表)和插入需求,以下是完整的SQL插入语句: ```sql -- 插入单条数据(王五) INSERT INTO student (sname, sage, ssex) VALUES ('王五', 20, '男'); -- 插入单条数据(小龙) INSERT INTO student (sname, sage, ssex) VALUES ('小龙', 23, '女'); ``` #### 关键说明: 1. **字段匹配原则** 只指定必要字段:`sname`(非空)、`sage`、`ssex` 未指定字段(如自增主键`sid`、`vander10`、`vander5`)将自动填充默认值[^1] 2. **自增主键机制** ```mermaid graph LR A[插入新记录] --> B[分配sid] B --> C{计算规则} C -->|新sid| D[$sid_n = \max(sid_{n-1}) + 1$] ``` 插入后自动生成唯一ID(例如第一条记录`sid=1`) 3. **批量插入方案**(可选) ```sql -- 一次性插入多行数据 INSERT INTO student (sname, sage, ssex) VALUES ('王五', 20, '男'), ('小龙', 23, '女'); ``` #### 插入后的表数据示例: | sid | sname | sage | ssex | vander10 | vander5 | |-----|-------|------|------|----------|---------| | 1 | 王五 | 20 | 男 | 0 | 0 | | 2 | 小龙 | 23 | 女 | 0 | 0 | > ⚠️ **注意事项** > - 字符串值必须用单引号包裹(如`'男'`) > - 若`sname`重复会报错(除非添加唯一约束) > - 默认值策略:整数字段填0,字符串字段填`'-'`[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值