cacti一键安装脚本V1.1

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

 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,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
运维 Java 大数据
一步步教你激活Termius(针对Termius持续更新导致失效解决)
一步步教你激活Termius(针对Termius持续更新导致失效解决)
一步步教你激活Termius(针对Termius持续更新导致失效解决)
|
监控 前端开发 JavaScript
前端监控(Frontend Monitoring):保障用户体验的不可或缺工具
前端监控是维护卓越用户体验的关键,它使您能够追踪、分析和解决您的Web应用程序中的性能问题和错误。在本博客中,我们将深入探讨前端监控的重要性、监控的关键指标以及如何实施前端监控来提高您的应用程序的可用性和性能。
1075 0
|
人工智能 开发者
黑神话:悟空中的AI行为树设计
【8月更文第26天】在《黑神话:悟空》这款游戏中,NPC(非玩家角色)的智能行为对于创造一个富有沉浸感的游戏世界至关重要。为了实现复杂的敌人行为模式,游戏开发团队采用了行为树作为NPC决策的核心架构。本文将详细介绍《黑神话:悟空》中NPC AI的设计原理,特别关注行为树的设计与实现。
784 0
|
存储 负载均衡 NoSQL
MongoDB架构设计
【6月更文挑战第6天】MongoDB架构设计
341 2
|
监控 测试技术 数据安全/隐私保护
Snmp接口测试随记
Snmp接口测试方案,以及使用python开发的工具实现自动化测试。
264 0
|
监控 Linux
CentOS7中使用一键脚本部署Librenms网络监控系统
CentOS7中使用一键脚本部署Librenms网络监控系统
678 1
|
监控 JavaScript 前端开发
Grafana 系列 - 统一展示 -6-Zabbix 仪表板
Grafana 系列 - 统一展示 -6-Zabbix 仪表板
|
人工智能 监控 安全
智能机场系统:打造出行体验的未来
随着航空业的迅猛发展,机场作为出行的重要枢纽,必须不断提升自身的服务质量和效率。智能机场系统应运而生,为旅客提供更加便捷、智能化的出行体验。本文将从技术应用、服务优化和安全保障三个方面,全面介绍智能机场系统的特点和优势。
智能机场系统:打造出行体验的未来
|
Web App开发 监控 关系型数据库
|
JavaScript 前端开发 算法
国王小组:开发数字货币交易所使用到的交易库
交易所开发成品丨交易所系统开发(演示版)丨交易所APP源码设计 区块链交易所开发详细丨区块链交易所系统开发(开发方案)丨区块链交易所源码案例部署 Uniswap交易所开发稳定版丨Uniswap交易所系统开发(开发模板)丨Uniswap交易所系统源码案例部署 数字货币交易所开发详情版丨数字货币交易所系统开发(web3.0技术开发)丨数字货币交易所开发源码成品 交易所APP开发功能丨交易所系统开发(成熟及案例)丨交易所系统源码平台 DAPP交易所系统开发(开发案例)丨DAPP交易所系统开发(源码及方案) DAPP数字货币交易所开发逻辑,DAPP数字货币交易所系统开发(案例及源码)