以普通用户运行Ganglia监控框架
2015-10-11 21:06
281 查看
现在有这样的一个应用场景:需要以普通用户运行Ganglia监控框架,具体的来说就是以普通用户运行Ganglia中的gmond,gmetad和gweb。
接下来分别介绍。
一、以普通用户运行gmond
通过"man gmond"可知,可通过"--conf"命令行参数来指定运行gmond时所需要的配置文件路径。
在gmond的配置文件中的globals小节下有两个相关属性:setuid和user。如果setuid属性值为yes,那么运行gmond时会将进程的EUID设置为user属性值对应的用户的UID,这需要root权限。而现在需要以普通用户运行gmond,因此设置setuid属性的属性值为no。
二、以普通用户运行gmetad
通过"man gmetad"可知,可通过"--conf"命令行参数来指定运行gmetad时所需要的配置文件路径。
在gmetad的配置文件中有3个相关属性:setuid,setuid_username,rrd_rootdir。
如果setuid属性的属性值为on,那么运行gmetad时会将进程的EUID设置为setuid_username属性值对应的用户的UID,这需要root权限。而现在需要以普通用户运行gmetad,因此设置setuid属性的属性值为off。
rrd_rootdir属性的默认值为/var/lib/ganglia/rrds,在该值对应的目录下增加文件需要root权限或者当前用户是nobody。而现在需要以普通用户运行gmetad,因此设置rrd_rootdir属性的属性值为该普通用户具有操作权限的目录路径。
三、以普通用户运行gweb
要运行gweb,首先得运行apache(在作者的环境中,具体是apache2),因此接下来分为两个步骤来讲。
3.1、以普通用户运行apache2
一般是通过"apache2ctl"脚本来管理"apache2"的运行,通过"less apache2ctl"可知,可通过"APACHE_CONFDIR"环境变量来指定运行apache2时所需要的配置文件的所在目录。因此在运行"apache2ctl"脚本前,首先执行如下命令:
配置文件所在目录的内容结构如图1所示。
图1
其中apache2.conf是主配置文件,它会加载conf-enabled,mods-enabled,sites-enabled目录下的内容和ports.conf的内容,apache2.conf主配置文件和它所加载的内容中会用到一些环境变量,这些环境变量的值在envvars文件中配置。
在ports.conf中和site-enabled/000-default.conf中配置了apache2监听80端口,而绑定0-1024端口需要root权限,而现在需要以普通用户运行apache2,因此修改ports.conf中和site-enabled/000-default.conf中的监听端口为大于1024的某个端口。
在site-enabled/000-default.conf中配置了Web项目的存放目录,默认值为/var/www/html,在该目录下增加文件需要root权限,而现在需要以普通用户运行apache2,因此修改该值为普通用户有权限进行操作的目录路径NEWDIR。与该值对应的是在apache2.conf中配置有允许访问的几个目录路径,本来相应地含有/var/www,现在需要改成NEWDIR或者NEWDIR的父路径。
在envvars文件中配置的环境变量值很多都要求运行的时候具有root权限,因此都得做相应的修改,以使得以普通用户运行时不会出错。
3.2、以普通用户运行gweb
安装gweb的方式是下载ganglia-web.tar.gz包,解压,然后进入该目录,运行"make install"。
在其中的Makefile中的“User configurables”小节下的几个变量原先的值配置都要求运行时具有root权限,因此都得做相应的修改,以使得以普通用户运行时不会出错。
尤其是GDESTDIR和GMETAD_ROOTDIR变量:GDESIDIR变量表示apache2的Web项目存放目录(需要跟apache2中site-enabled/000-default.conf文件的相应配置对应起来);GMETAD_ROOTDIR表示gmetad的RRDFile存放目录(需要跟gmetad.conf中相应的配置对应起来)。
接下来分别介绍。
一、以普通用户运行gmond
通过"man gmond"可知,可通过"--conf"命令行参数来指定运行gmond时所需要的配置文件路径。
在gmond的配置文件中的globals小节下有两个相关属性:setuid和user。如果setuid属性值为yes,那么运行gmond时会将进程的EUID设置为user属性值对应的用户的UID,这需要root权限。而现在需要以普通用户运行gmond,因此设置setuid属性的属性值为no。
二、以普通用户运行gmetad
通过"man gmetad"可知,可通过"--conf"命令行参数来指定运行gmetad时所需要的配置文件路径。
在gmetad的配置文件中有3个相关属性:setuid,setuid_username,rrd_rootdir。
如果setuid属性的属性值为on,那么运行gmetad时会将进程的EUID设置为setuid_username属性值对应的用户的UID,这需要root权限。而现在需要以普通用户运行gmetad,因此设置setuid属性的属性值为off。
rrd_rootdir属性的默认值为/var/lib/ganglia/rrds,在该值对应的目录下增加文件需要root权限或者当前用户是nobody。而现在需要以普通用户运行gmetad,因此设置rrd_rootdir属性的属性值为该普通用户具有操作权限的目录路径。
三、以普通用户运行gweb
要运行gweb,首先得运行apache(在作者的环境中,具体是apache2),因此接下来分为两个步骤来讲。
3.1、以普通用户运行apache2
一般是通过"apache2ctl"脚本来管理"apache2"的运行,通过"less apache2ctl"可知,可通过"APACHE_CONFDIR"环境变量来指定运行apache2时所需要的配置文件的所在目录。因此在运行"apache2ctl"脚本前,首先执行如下命令:
APACHE_CONFDIR=自定义apache2配置文件所在目录路径 export APACHE_CONFDIR
配置文件所在目录的内容结构如图1所示。
图1
其中apache2.conf是主配置文件,它会加载conf-enabled,mods-enabled,sites-enabled目录下的内容和ports.conf的内容,apache2.conf主配置文件和它所加载的内容中会用到一些环境变量,这些环境变量的值在envvars文件中配置。
在ports.conf中和site-enabled/000-default.conf中配置了apache2监听80端口,而绑定0-1024端口需要root权限,而现在需要以普通用户运行apache2,因此修改ports.conf中和site-enabled/000-default.conf中的监听端口为大于1024的某个端口。
在site-enabled/000-default.conf中配置了Web项目的存放目录,默认值为/var/www/html,在该目录下增加文件需要root权限,而现在需要以普通用户运行apache2,因此修改该值为普通用户有权限进行操作的目录路径NEWDIR。与该值对应的是在apache2.conf中配置有允许访问的几个目录路径,本来相应地含有/var/www,现在需要改成NEWDIR或者NEWDIR的父路径。
在envvars文件中配置的环境变量值很多都要求运行的时候具有root权限,因此都得做相应的修改,以使得以普通用户运行时不会出错。
3.2、以普通用户运行gweb
安装gweb的方式是下载ganglia-web.tar.gz包,解压,然后进入该目录,运行"make install"。
在其中的Makefile中的“User configurables”小节下的几个变量原先的值配置都要求运行时具有root权限,因此都得做相应的修改,以使得以普通用户运行时不会出错。
尤其是GDESTDIR和GMETAD_ROOTDIR变量:GDESIDIR变量表示apache2的Web项目存放目录(需要跟apache2中site-enabled/000-default.conf文件的相应配置对应起来);GMETAD_ROOTDIR表示gmetad的RRDFile存放目录(需要跟gmetad.conf中相应的配置对应起来)。
相关文章推荐
- linux(centos)下ext4硬盘格式误删文件后的恢复(testdisk与photorec的使用)
- Linux 如何打开端口
- Linux使用dd命令备份大文件显示进度
- opencv 获取摄像头图像
- 一个不错的谈架构的链接
- 配置opencv2.4.11生成release版本
- 【2015/10/11】Linux学习日志_Day6 YUM 进程 桥接模式
- Centos7 + Windows7 双系统,通过修改grub2,重新添加 Win7 启动引导项
- Linux下一个C(编程入门.h档,.c档,而路多文件的调用)
- 生活小常识——总体架构目录
- 监控报警平台设计思路
- 配置opencv2.411调试版本(debug)
- 资源网站整理
- nginx配置学习备忘0
- 《Linux内核设计与实现》读书笔记(十)- 内核同步方法
- 《Linux内核设计与实现》读书笔记(九)- 内核同步介绍
- Nginx/LVS/HAProxy负载均衡软件的优缺点详解
- Linux下的socket编程实践(五)设置套接字I/O超时的方案
- Linux战地日记—Vim替换字符串
- 网 卡 和 IP 的 应 用