北京SEO

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

2019/10/10/17:46:03  阅读:1855  来源:谷歌SEO算法  标签: 微信公众号

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

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

http://phpfensi.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个地方,会产生重要文件.

  1. [root@node1www]#ll/etc/nginx/conf.d/|grepmunin
  2. -rw-r--r--1rootroot142712月3014:11munin.conf//nginx的配置文件
  3. [root@node1www]#ll/var/www/cgi-bin/
  4. 总用量24
  5. -rwxr-xr-x1rootmunin1453011月2703:37munin-cgi-graph//perlcgi程序
  6. -rwxr-xr-x1rootmunin424511月2703:37munin-cgi-html
  7. [root@node1www]#ll/etc/init.d/|grepmunin-fcgi
  8. -rwxr-xr-x1rootroot112312月3019:22munin-fcgi-graph//调用munin-cgi-graph的系统脚本
  9. -rwxr-xr-x1rootroot103712月2915:59munin-fcgi-html
  10. [root@node1www]#whereisspawn-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的主配置文件

  1. [root@node1munin]#catmunin.conf|awk'{if($0!~/^$/&&$0!~/#/){print$0}}'
  2. dbdir/var/lib/munin
  3. htmldir/var/www/html/munin
  4. logdir/var/log/munin
  5. rundir/var/run/munin
  6. tmpldir/etc/munin/templates
  7. includedir/etc/munin/conf.d
  8. graph_strategycgi//在此处将cron改为cgi
  9. cgiurl_graph/munin-cgi/munin-cgi-graph
  10. html_strategycron
  11. [munin]
  12. address127.0.0.1
  13. use_node_nameyes

4,修改nginx的munin虚拟机

  1. [root@node1www]#cat/etc/nginx/conf.d/munin.conf|awk'{if($0!~/^$/&&$0!~/#/){print$0}}'
  2. server{
  3. listen80;
  4. server_namemunin.51yip.com;//自定义
  5. root/var/www/html/munin;//muninhtml的根目录
  6. indexindex.htmlindex.htm;
  7. location^~/munin-cgi/munin-cgi-graph/{
  8. fastcgi_split_path_info^(/munin-cgi/munin-cgi-graph)(.*);
  9. fastcgi_paramPATH_INFO$fastcgi_path_info;
  10. fastcgi_passunix:/var/run/munin/spawn-fcgi-munin-graph.sock;
  11. includefastcgi_params;
  12. }
  13. }

5,启动脚本

  1. [root@node1www]#cat/etc/init.d/spawn-fcgi-munin-graph|awk'{if($0!~/^$/&&$0!~/#/){print$0}}'
  2. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  3. NAME=spawn-fcgi-munin-graph
  4. PID_FILE=/var/run/munin/$NAME.pid
  5. SOCK_FILE=/var/run/munin/$NAME.sock
  6. SOCK_USER=tank//nginx的启动用户
  7. FCGI_USER=munin
  8. FCGI_GROUP=munin
  9. FCGI_WORKERS=2
  10. DAEMON=/usr/bin/spawn-fcgi
  11. 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"
  12. if[!-x$DAEMON];then
  13. echo"Filenotfoundorisnotexecutable:$DAEMON!"
  14. exit0
  15. fi
  16. status(){
  17. if[!-r$PID_FILE];then
  18. return1
  19. fi
  20. forFCGI_PIDin`cat$PID_FILE`;do
  21. if[-z"${FCGI_PID}"];then
  22. return1
  23. fi
  24. FCGI_RUNNING=`ps-p${FCGI_PID}|grep${FCGI_PID}`
  25. if[-z"${FCGI_RUNNING}"];then
  26. return1
  27. fi
  28. done;
  29. return0
  30. }
  31. start(){
  32. ifstatus;then
  33. echo"FCGIisalreadyrunning!"
  34. exit1
  35. else
  36. $DAEMON$DAEMON_OPTS
  37. fi
  38. }
  39. stop(){
  40. if!status;then
  41. echo"NoPID-fileat$PID_FILEfoundorPIDnotvalid.Maybenotrunning"
  42. exit1
  43. fi
  44. forPID_RUNNINGin`cat$PID_FILE`;do
  45. kill-9$PID_RUNNING
  46. done
  47. rm-f$PID_FILE
  48. rm-f$SOCK_FILE
  49. }
  50. case"$1"in
  51. start)
  52. echo"Starting$NAME:"
  53. start
  54. echo"...DONE"
  55. ;;
  56. stop)
  57. echo"Stopping$NAME:"
  58. stop
  59. echo"...DONE"
  60. ;;
  61. force-reload|restart)
  62. echo"Stopping$NAME:"
  63. stop
  64. echo"Starting$NAME:"
  65. start
  66. echo"...DONE"
  67. ;;
  68. status)
  69. ifstatus;then
  70. echo"FCGIisRUNNING"
  71. else
  72. echo"FCGIisNOTRUNNING"
  73. fi
  74. ;;
  75. *)
  76. echo"Usage:$0{start|stop|force-reload|restart|status}"
  77. exit1
  78. ;;
  79. esac
  80. exit0

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

  1. #spawn-fcgi-s/var/run/munin/spawn-fcgi-munin-graph.sock-F2-Utank-umunin-gmunin/var/www/cgi-bin/munin-cgi-graph

6,权限设置

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

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

  1. 2014/12/2918:20:56[error]12263#0:*1connect()tounix:/var/run/munin/spawn-fcgi-munin-graph.sockfailed(111:Connectionrefused)whileconnectingtoupstream,

7,重启相关服务

  1. #/etc/init.d/nginxrestart
  2. #/etc/init.d/munin-noderestart
  3. #chmod+x/etc/init.d/spawn-fcgi-munin-graph
  4. #/etc/init.d/spawn-fcgi-munin-graphstart

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

广告内容

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

相关阅读

热门评论

木木老贼 木木老贼

互联网营销达人~

总篇数181

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法