加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux中使用munin cgi 动态生成图形文件的方式

发布时间:2023-07-19 13:13:46 所属栏目:Linux 来源:
导读:今天有点时间搞了一下munin cgi了,下面我们来看小编整理的一篇关于linux中使用munin cgi 动态生成图形文件的例子,希望对各位有帮助.今天又弄了一下munin,发现有些图片出不来.http://Cuoxin.com/static/dynazoom.html

今天有点时间搞了一下munin cgi了,下面我们来看小编整理的一篇关于linux中使用munin cgi 动态生成图形文件的例子,希望对各位有帮助.

今天又弄了一下munin,发现有些图片出不来.

http://Cuoxin.com/static/dynazoom.html?cgiurl_graph=/munin-cgi/munin-cgi-graph&plugin_name=xxxxxx 加载图片的地方报404错误.

1,安装munin

请参考:linux munin 服务器监控 安装配置

2,安装munin-nginx

# yum install munin-nginx spawn-fcgi 

安装完了以后,在4个地方,会产生重要文件.

[root@node1 www]# ll /etc/nginx/conf.d/ |grep munin   

-rw-r--r-- 1 root root 1427 12月 30 14:11 munin.conf //nginx的配置文件   

[root@node1 www]# ll /var/www/cgi-bin/   

总用量 24   

-rwxr-xr-x 1 root munin 14530 11月 27 03:37 munin-cgi-graph    //perl cgi程序   

-rwxr-xr-x 1 root munin 4245 11月 27 03:37 munin-cgi-html   

[root@node1 www]# ll /etc/init.d/ |grep munin-fcgi   

-rwxr-xr-x 1 root root 1123 12月 30 19:22 munin-fcgi-graph     //调用munin-cgi-graph的系统脚本   

-rwxr-xr-x 1 root root 1037 12月 29 15:59 munin-fcgi-html   

[root@node1 www]# whereis spawn-fcgi    //perl程序的承载器   

spawn-fcgi:/usr/bin/spawn-fcgi /usr/share/man/man1/spawn-fcgi.1.gz 

在这里注意,/etc/init.d/munin-fcgi-graph,这个文件启动munin-cgi-graph,老是有问题,所以从官方网站找到了启动脚本.

3,修改munin.conf的主配置文件

[root@node1 munin]# cat munin.conf |awk '{if($0 !~ /^$/ && $0 !~ /#/) {print $0}}'   

dbdir /var/lib/munin   

htmldir /var/www/html/munin   

logdir /var/log/munin   

rundir /var/run/munin   

tmpldir /etc/munin/templates   

includedir /etc/munin/conf.d   

graph_strategy cgi       //在此处将cron改为cgi   

cgiurl_graph /munin-cgi/munin-cgi-graph   

html_strategy cron   

[munin]   

 address 127.0.0.1   

 use_node_name yes  

4,修改nginx的munin虚拟机

[root@node1 www]# cat /etc/nginx/conf.d/munin.conf |awk '{if($0 !~ /^$/ && $0 !~ /#/) {print $0}}'   

server {   

 listen 80;   

 server_name munin.51yip.com; //自定义   

 root /var/www/html/munin; //munin html的根目录   

 index index.html index.htm;   

 location ^~ /munin-cgi/munin-cgi-graph/ {   

 fastcgi_split_path_info ^(/munin-cgi/munin-cgi-graph)(.*);   

 fastcgi_param PATH_INFO $fastcgi_path_info;   

 fastcgi_pass unix:/var/run/munin/spawn-fcgi-munin-graph.sock;   

 include fastcgi_params;   

 }   

}  

5,启动脚本

[root@node1 www]# cat /etc/init.d/spawn-fcgi-munin-graph |awk '{if($0 !~ /^$/ && $0 !~ /#/) {print $0}}'   

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin   

NAME=spawn-fcgi-munin-graph   

PID_FILE=/var/run/munin/$NAME.pid   

SOCK_FILE=/var/run/munin/$NAME.sock   

SOCK_USER=tank    //nginx的启动用户   

FCGI_USER=munin   

FCGI_GROUP=munin   

FCGI_WORKERS=2   

DAEMON=/usr/bin/spawn-fcgi   

DAEMON_OPTS="-s $SOCK_FILE -F $FCGI_WORKERS -U $SOCK_USER -u $FCGI_USER -g $FCGI_GROUP -P $PID_FILE -- /var/www/cgi-bin/munin-cgi-graph"   

if [ ! -x $DAEMON ]; then   

 echo "File not found or is not executable: $DAEMON!"   

 exit 0   

fi   

status() {   

 if [ ! -r $PID_FILE ]; then   

 return 1   

 fi   

 for FCGI_PID in `cat $PID_FILE`; do   

 if [ -z "${FCGI_PID}" ]; then   

 return 1   

 fi   

 FCGI_RUNNING=`ps -p ${FCGI_PID} | grep ${FCGI_PID}`   

 if [ -z "${FCGI_RUNNING}" ]; then   

 return 1   

 fi   

 done;   

 return 0   

}   

start() {   

 if status; then   

 echo "FCGI is already running!"   

 exit 1   

 else   

 $DAEMON $DAEMON_OPTS   

 fi   

}   

stop () {   

 if ! status; then   

 echo "No PID-file at $PID_FILE found or PID not valid. Maybe not running"   

 exit 1   

 fi   

 for PID_RUNNING in `cat $PID_FILE`; do   

 kill -9 $PID_RUNNING   

 done   

 rm -f $PID_FILE   

 rm -f $SOCK_FILE   

}   

case "$1" in   

 start)   

 echo "Starting $NAME: "   

 start   

 echo "... DONE"   

 ;;   

 stop)   

 echo "Stopping $NAME: "   

 stop   

 echo "... DONE"   

 ;;   

 force-reload|restart)   

 echo "Stopping $NAME: "   

 stop   

 echo "Starting $NAME: "   

 start   

 echo "... DONE"   

 ;;   

 status)   

 if status; then   

 echo "FCGI is RUNNING"   

 else   

 echo "FCGI is NOT RUNNING"   

 fi   

 ;;   

 *)   

 echo "Usage: $0 {start|stop|force-reload|restart|status}"   

 exit 1   

 ;;   

esac   

exit 0   

注意:其实上述脚本就是围绕以下命令写的,也可以说上述脚本与以下命令等同.

# spawn-fcgi -s /var/run/munin/spawn-fcgi-munin-graph.sock -F 2 -U tank -u munin -g munin /var/www/cgi-bin/munin-cgi-graph  

6,权限设置

# chown tank:munin -R /var/www/cgi-bin/  //tank为nginx启动用户 

这一步,非常非常重要,这一步不做的话,图片出不来,nginx会报以下错误,因为这个小问题,费了我好几个小时.

2014/12/29 18:20:56 [error] 12263#0: *1 connect() to unix:/var/run/munin/spawn-fcgi-munin-graph.sock failed (111: Connection refused) while connecting to upstream, 

7,重启相关服务

# /etc/init.d/nginx restart   

# /etc/init.d/munin-node restart   

# chmod +x /etc/init.d/spawn-fcgi-munin-graph    

# /etc/init.d/spawn-fcgi-munin-graph start  

等一会后,久违的图片出来.

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章