cacti一键安装脚本V1.1

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

 cacti一键安装脚本V1.1

 
  1. #!/bin/bash 
  2. #function +++++++++++++cacti auto install scripts+++++++++++++++++++ 
  3. #author itnihao  
  4. #version 1.1  
  5. #date 2012-08-17  v1.0
  6. #date 2012-08-18 v1.1更新增加syslog-ng等内容
  7. #mail itnihao@qq.com  
  8. #转载请注明http://itnihao.blog.51cto.com,谢谢合作 
  9. #source http://code.google.com/p/auto-task-pe/ 
  10.  
  11. green='\e[0;32m'  
  12. red='\e[0;31m'  
  13. blue='\e[0;36m'  
  14. blue1='\e[5;31m'  
  15. NC='\e[0m'  
  16. path_soft=$(pwd) 
  17.  
  18. function base { 
  19.    #rpm -e lrzsz&& yum -y install lrzsz* 
  20.    #[ "$?" != "0" ] && echo "yum is badly,please check" && exit 1 
  21.    for i in  $(rpm -q gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel bison bison-devel readline readline-devel libmcrypt libmcrypt-devel net-snmp-devel gcc  gcc-c++ apr apr-util postgresql-libs  openssl openssl-devel autoconf automake fiex* libxml* ncurses*  libtool* libxslt libxslt-devel curl* bzip2*  gd gd-devel freetype freetype-devel libpng*|grep 'not installed' | awk '{print $2}')   
  22.    do  
  23.         yum -y  install $i;  
  24.    done  
  25.  
  26.  
  27. function lamp { 
  28. yum -y install httpd mysql-server mysql php* net-snmp*  rrdtool* 
  29. sed -i "s/;date.timezone =/date.timezone = Asia\/Chongqing/g" /etc/php.ini 
  30. #start lamp services 
  31. for  name  in  httpd  mysqld snmpd 
  32.    do 
  33.         service  ${name}  restart 
  34.         chkconfig --add ${name} 
  35.         chkconfig --level 345 ${name} on 
  36.    done 
  37. for name1 in nfslock rpcbind 
  38.    do 
  39.         service  ${name1}  stop 
  40.         chkconfig --del ${name1} 
  41.    done 
  42.    echo  -e "<?php\nphpinfo();\n?>">/var/www/html/test.php 
  43.  
  44. #add php_type 
  45. #echo "AddType application/x-httpd-php .php" >>/etc/httpd/conf/httpd.conf 
  46. #sed -i "s/AddType\ application\/x-gzip\ \.gz\ \.tgz/AddType\ application\/x-gzip\ \.gz\ \.tgz\ AddType\ application\/x-httpd-php\ .php/g" /etc/httpd/conf/httpd.conf 
  47. #sed -i "s/DirectoryIndex\ index.html\ index.html.var/DirectoryIndex\ index.php\ index.html\ index.html.var/g"  /etc/httpd/conf/httpd.conf 
  48.  
  49. #install cacti 
  50. function install_cacti { 
  51. cd  ${path_soft} 
  52. [ ! -e cacti*.tar.gz ]; stats=$?  
  53. [ "$stats" == 0 ] && echo -e "${red} there is not cacti*.tar.gz file${NC}" && wget --no-check-certificate http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz 
  54. tar zxvf cacti*.tar.gz 
  55. cp -rf cacti-0.8.8a  /var/www/html/cacti 
  56. restorecon -R -v '/var/www/html/cacti' 
  57. chown  apache.apache  -R  /var/www/html/cacti/ 
  58. sed -i "s/\$database_username\ =\ \"cactiuser\"/\$database_username\ =\ \"cacti\"/g" /var/www/html/cacti/include/config.php   
  59. sed -i "s/\$database_password\ =\ \"cactiuser\"/\$database_password\ =\ \"cacti123\"/g" /var/www/html/cacti/include/config.php 
  60.  
  61. #database password setting 
  62. mysqladmin  -uroot password 'itnihao' 
  63. mysqladmin  -uroot  -pitnihao  flush-privileges 
  64. mysqladmin  -uroot  -pitnihao  create cacti 
  65. mysql -uroot  -pitnihao  cacti </var/www/html/cacti/cacti.sql 
  66. mysql -uroot  -pitnihao  -e "grant all on cacti.* to cacti@localhost identified by 'cacti123'" 
  67. mysql -uroot  -pitnihao  -e "FLUSH PRIVILEGES" 
  68.  
  69. #add crontab 
  70. chmod 777 -R  /var/www/html/cacti/rra 
  71. chmod 777 -R  /var/www/html/cacti/log 
  72. echo "*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null 2&1" >/tmp/cron.cacti 
  73. crontab -l|sort|uniq >>  /tmp/cron.cacti 
  74. crontab -uroot /tmp/cron.cacti && rm -rf /tmp/cron.cacti 
  75. #setsebool -P httpd_unified=1 
  76. #chcon -t httpd_sys_content_t /usr/local/rrdtool -R 
  77. echo -e "${green}++++++++++++++++++++++++cacti installed OK,path is http://ip/cacti++++++++++++++++++++${NC}" 
  78.  
  79.  
  80. function plugin { 
  81. cd     ${path_soft}/plugin 
  82. [ ! -e cacti-spine-0.8.8a.tar.gz ]; stats=$? 
  83. [ "$stats" == 0 ] && echo -e "${red} there is not cacti-spine*.tar.gz file${NC}" && wget --no-check-certificate  http://www.cacti.net/downloads/spine/cacti-spine-0.8.8a.tar.gz 
  84. tar zxvf  cacti-spine-0.8.8a.tar.gz 
  85. cd cacti-spine-0.8.8a 
  86. ./configure 
  87. make && make install 
  88. cd ../ 
  89. mv /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf 
  90. #wget http://docs.cacti.net/_media/plugin:docs-v0.4-1.tgz 
  91. #wget http://docs.cacti.net/_media/plugin:boost-v5.0-1.tgz 
  92. #wget http://docs.cacti.net/_media/plugin:discovery-v1.5-1.tgz 
  93. #wget http://docs.cacti.net/_media/plugin:monitor-v1.2-1.tgz 
  94. #wget http://docs.cacti.net/_media/plugin:monitor-v1.3-1.tgz 
  95. #wget http://docs.cacti.net/_media/plugin:mobile-latest.tgz 
  96. #wget http://docs.cacti.net/_media/plugin:settings-v0.7-1.tgz 
  97. #wget http://docs.cacti.net/_media/plugin:syslog-v1.22-2.tgz 
  98. #wget http://docs.cacti.net/_media/plugin:thold-v0.4.9-3.tgz 
  99. #wget http://docs.cacti.net/_media/plugin:clog-v1.7-1.tgz 
  100. #wget http://docs.cacti.net/_media/plugin:ntop-v0.2-1.tgz 
  101. #wget http://docs.cacti.net/_media/plugin:domains-v0.1-1.tgz 
  102. #wget http://docs.cacti.net/_media/userplugin:manage-0.6.2.zip 
  103. #wget http://wotsit.thingy.com/haj/cacti/quicktree-0.2.zip 
  104. #wget http://www.network-weathermap.com/files/php-weathermap-0.97a.zip 
  105. #wget http://docs.cacti.net/_media/plugin:timeshift-latest.zip  
  106. #wget http://docs.cacti.net/_media/plugin:loginmod-latest.tgz 
  107. #wget http://docs.cacti.net/_media/plugin:realtime-v0.5-2.tgz 
  108.   
  109.   for name in `ls|sed -e "s/plugin://g" -e "s/.tgz//g"` 
  110.   do 
  111.       mv plugin:${name}.tgz ${name}.tar.gz 
  112.   done 
  113.  
  114.   for name1 in boost discovery docs domains loginmod-latest manage monitor quicktree realtime settings syslog thold timeshift weathermap 
  115.   do 
  116.      tar zxvf ${name1}*.tar.gz 
  117.      mv ${name1} /var/www/html/cacti/plugins/ 
  118.   done 
  119.   chown apache.apache -R /var/www/html/cacti/plugins 
  120.  
  121. function config_apache { 
  122. cat >> /etc/httpd/conf/httpd.conf << EOF 
  123. Alias /cacti "/var/www/html/cacti" 
  124. <Directory "/var/www/html/cacti"> 
  125.    Options -Indexes MultiViews -FollowSymLinks 
  126.    DirectoryIndex index.php 
  127.    AllowOverride None 
  128.    Order allow,deny 
  129.    Allow from all 
  130. </Directory> 
  131. <Directory /var/www/html/cacti/plugin/weathermap> 
  132.    <Files editor.php> 
  133.             Order Deny,Allow 
  134.             Deny from all 
  135.             Allow from 127.0.0.1 
  136.         </Files> 
  137. </Directory>  
  138. EOF 
  139.  
  140. function syslog { 
  141. #syslog_mysql 
  142. yum install -y rsyslog rsyslog-mysql  
  143. cat >> /etc/rsyslog.conf << EOF 
  144. $ModLoad imudp.so 
  145. $UDPServerRun 514 
  146. $ModLoad ommysql 
  147. $template cacti_syslog,"INSERT INTO syslog_incoming(facility, priority, date, time, host, message) values (%syslogfacility%,  
  148. %syslogpriority%,  '%timereported:::date-mysql%', '%timereported:::date-mysql%', '%HOSTNAME%', '%msg%')", SQL 
  149. *.*             >localhost,syslog,cacti_log,cacti_log_pass;cacti_syslog 
  150. EOF 
  151. sed -i "s/SYSLOGD_OPTIONS=\"-c 4\"/SYSLOGD_OPTIONS=\"-c 4 -r -m 1\"/g"  /etc/sysconfig/rsyslog  
  152. chkconfig rsyslog on 
  153. service rsyslog restart 
  154.  
  155. #syslog_database  
  156. mysqladmin  -uroot  -pitnihao  create syslog 
  157. mysql -uroot  -pitnihao  syslog </var/www/html/cacti/plugins/syslog/syslog.sql 
  158. mysql -uroot  -pitnihao  -e "grant all on syslog.* to cacti_log@localhost identified by 'cacti_log_pass'" 
  159. mysql -uroot  -pitnihao  -e "FLUSH PRIVILEGES" 
  160.  
  161. #cacti_syslog 
  162. sed -i "s/use_cacti_db = true;/use_cacti_db = false;/g" /var/www/html/cacti/plugins/syslog/config.php 
  163. sed -i "s/syslogdb_username = 'cactiuser'/syslogdb_username = 'cacti_log'/g" /var/www/html/cacti/plugins/syslog/config.php 
  164. sed -i "s/syslogdb_password = 'cactiuser'/syslogdb_password = 'cacti_log_pass'/g" /var/www/html/cacti/plugins/syslog/config.php 
  165. #client_syslog or rsyslog 
  166. #echo "*.* @192.168.16.200"  >> /etc/syslog.conf 
  167. #echo "*.* @192.168.16.200"  >> /etc/rsyslog.conf 
  168.  
  169. function syslog_ng { 
  170. service rsyslog stop 
  171. chkconfig --del rsyslog 
  172. service syslog stop 
  173. chkconfig --del syslog 
  174. cd ${path_soft}/syslog 

  175. #############################download#################################### 
  176. #wget wget http://dl.fedoraproject.org/pub/epel/6/x86_64/libnet-1.1.5-1.el6.x86_64.rpm 
  177. #wget http://dl.fedoraproject.org/pub/epel/6/x86_64/eventlog-0.2.12-1.el6.x86_64.rpm 
  178. #wget ftp://fr2.rpmfind.net/linux/epel/6/x86_64/syslog-ng-3.2.5-3.el6.x86_64.rpm 
  179. #wget http://dl.fedoraproject.org/pub/epel/6/x86_64/syslog-ng-libdbi-3.2.5-3.el6.x86_64.rpm 
  180. ######################################################################## 
  181. rpm -ivh libnet-1.1.5-1.el6.x86_64.rpm 
  182. rpm -ivh eventlog-0.2.12-1.el6.x86_64.rpm  
  183. rpm -ivh syslog-ng-3.2.5-3.el6.x86_64.rpm 
  184. rpm -ivh libdbi-0.8.3-3.1.el6.x86_64.rpm 
  185. rpm -ivh syslog-ng-libdbi-3.2.5-3.el6.x86_64.rpm 
  186.  
  187. cat >> /etc/syslog-ng/syslog-ng.conf  << EOF 
  188. source s_rsc { 
  189.                unix-stream("/dev/log"); 
  190.                udp(ip("192.168.16.200") port(514)); 
  191. }; 
  192.  
  193. #destination r_mesg  { file("/var/log/warn");}; 
  194.  
  195. destination d_mysql { 
  196.                     program("mysql -ucacti_log -pcacti_log_pass syslog < /var/log/mysql.pipe"); 
  197.                     pipe("/var/log/mysql.pipe" 
  198.                     template("INSERT INTO syslog_incoming (host, facility, priority, status, date, time, seq, message) VALUES( '\$FULLHOST', '\$FACILITY', '\$PRIORITY', '\$STATUS', '\$YEAR-\$MONTH-\$DAY', '\$HOUR:\$MIN:\$SEC','\$SEQ', '\$MESSAGE' );\n") 
  199.                     template-escape(yes)); 
  200. }; 
  201.  
  202. log { source(s_rsc); destination(d_mysql); }; 
  203. log { source(s_sys); destination(d_mysql); }; 
  204. EOF 
  205.  
  206. function client_config { 
  207. #client syslog-ng,you should install syslog-ng  
  208. cat >> /etc/syslog-ng/syslog-ng.conf  << EOF 
  209. destination d_udp {udp("192.168.16.200" port(514));}; 
  210. log { source(s_sys); destination(d_udp);}; 
  211. EOF 
  212.  
  213. #client_syslog or rsyslog 
  214. #rhel5.X use syslog 
  215. echo "*.* @192.168.16.200"  >> /etc/syslog.conf 
  216. #rhel6.X use rsyslog 
  217. echo "*.* @192.168.16.200"  >> /etc/rsyslog.conf 
  218.  
  219. #clietn snmpd configuration 
  220. sed -i s"/^/#/g" /etc/snmp/snmpd.conf 
  221. cat >> /etc/snmp/snmpd.conf << EOF 
  222. com2sec mynetwork 192.168.16.200 public 
  223. com2sec mynetwork 127.0.0.1 public  
  224. group MyROGroup v2c mynetwork 
  225. access MyROGroup "" any noauth prefix all none none   
  226. view all included .1 80 
  227. EOF 
  228.  
  229. function main { 
  230. base 
  231. lamp 
  232. install_cacti 
  233. plugin 
  234. config_apache 
  235. syslog 
  236. #syslog_ng 
  237. #client_config 
  238.  
  239. main 

配置完成,截图如下

软件包有以下下文件夹和文件

plugin文件夹内内容

syslog文件内容(住e15为多余,本环境用的是el6)



本文转自it你好 51CTO博客,原文链接:http://blog.51cto.com/itnihao/965308,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
Kubernetes 调度 Docker
一键安装k8s脚本
一键安装k8s脚本
164 0
|
关系型数据库 MySQL Shell
|
关系型数据库 MySQL 应用服务中间件
|
关系型数据库 MySQL 应用服务中间件
|
Web App开发 监控 关系型数据库
|
监控 Apache 数据安全/隐私保护
|
Web App开发 Ubuntu 关系型数据库
|
存储 PHP 关系型数据库