设为首页 收藏本站
查看: 1769|回复: 0

[经验分享] centos5.5下cacti安装部署步骤

[复制链接]

尚未签到

发表于 2015-11-22 11:01:59 | 显示全部楼层 |阅读模式
  一、安装前的准备工作
准备lnmp环境(略)
  下载最新cacti
# wget http://www.cacti.net/downloads/cacti-0.8.8a.tar.gz
  安装snmpwalk等工具集
# yum install net-snmp-utils
  安装snmp开发包
#yum  install net-snmp-devel
  安装rrdtool
# yum install rrdtool
  所有被监控端安装net-snm
#yum install net-snmp
  二、安装cacti
1、解压
# tar xzvf cacti-0.8.7i-PIA-3.1.tar.gz
  2、创建cacti数据库
  # mysqladmin -uroot -p  create cacti
  3、导入cacti的默认数据库结构
  # mysql -uroot -p  cacti < cacti.sql
  
4、给cacti用户对cacti数据库的访问进行授权
  mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY '123456';
mysql> flush privileges;
  5.修改连接cacti数据库的用户名密码
# more /var/www/cacti/include/config.php
$database_type = &quot;mysql&quot;;
$database_default = &quot;cacti&quot;;
$database_hostname = &quot;localhost&quot;;
$database_username = &quot;cactiuser&quot;;
$database_password = &quot;123456&quot;;
  6、给cacti目录设置权限
# chown nginx.nginx /var/www/cacti/ -R
  7、创建crontab
# crontab -l
*/5 * * * * php /var/www/cacti/poller.php > /dev/null 2>&1
  8、配置nginx
# more /etc/nginx/conf.d/cacti.conf |grep -v &quot;#&quot;
server {
    listen       80;
    server_name  localhost;
    root   /var/www/cacti;
    index  index.php index.html index.htm;
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/cacti$fastcgi_script_name;
        include        fastcgi_params;
    }
}

9、浏览器访问,进行初始设置cacti
http://192.168.100.158
用户名密码均为admin,初次登陆需要修改密码
  10、测试本机snmp运行是否正常
# snmpwalk -Os -c mycommunity -v 1 localhost system
  11、开机启动snmpd
# chkconfig snmpd on
  12、cacti监控
下载最新模板集
http://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.0.0.tar.gz
  $ ls percona-monitoring-plugins-1.0.0/cacti/templates/
cacti_host_template_percona_apache_server_ht_0.8.6i-sver1.0.0.xml
cacti_host_template_percona_gnu_linux_server_ht_0.8.6i-sver1.0.0.xml
cacti_host_template_percona_jmx_server_ht_0.8.6i-sver1.0.0.xml
cacti_host_template_percona_memcached_server_ht_0.8.6i-sver1.0.0.xml
cacti_host_template_percona_mongodb_server_ht_0.8.6i-sver1.0.0.xml
cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.0.0.xml
cacti_host_template_percona_nginx_server_ht_0.8.6i-sver1.0.0.xml
cacti_host_template_percona_openvz_server_ht_0.8.6i-sver1.0.0.xml
cacti_host_template_percona_redis_server_ht_0.8.6i-sver1.0.0.xml
解压后在cacti界面导入相应的xml文件。
  
安装脚本
#cp percona-monitoring-plugins-1.0.0/cacti/scripts/* /var/www/cacti/cacti/scripts/
  修改配置文件中的账号信息:
$ vim  /var/www/cacti/cacti/scripts/ss_get_by_ssh.php   
$ vim  /var/www/cacti/cacti/scripts/ss_get_mysql_stats.php
  在被监控机设置监控账号cactiuser(不设置密码,只允许公钥登陆),并且与被监控机之间采用ssh公钥通信
useradd cactiuser
mkdir /home/cactiuser/.ssh/
vim /home/cactiuser/.ssh/authorized_keys
chmod 700 /home/cactiuser/.ssh/
chown cactiuser.cactiuser /home/cactiuser/ -R
  把监控机上生成公钥,然后把公钥拷到被监控机上
ssh-copy-id -i /home/cactiuser/.ssh/id_rsa.pub cactiuser@192.168.0.10 或者
scp /home/cactiuser/.ssh/id_rsa.pub  cactiuser@192.168.0.16:/home/cactiuser/.ssh/authorized_keys
  监控nginx配置
###add by lai monitor nginx status
        location /server-status {
           stub_status on;
           allow 127.0.0.1;
         # deny all;
         }
监控mysql配置:
GRANT SUPER,PROCESS ON *.* TO 'cactiuser'@'192.168.0.200' IDENTIFIED BY &quot;cactiuser_mysql&quot;;
flush privileges;
  监控机设置Snmptrapd
[iyunv@admin200 snmp]# more /etc/snmp/snmptrapd.conf
#traphandle default  /etc/snmp/lognotify  
# the generic traps
traphandle NET-SNMP-AGENT-MIB::nsNotifyShutdown /etc/snmp/lognotify  snmpdShutdown
traphandle SNMPv2-MIB::coldStart    /etc/snmp/lognotify coldStart
traphandle SNMPv2-MIB::warmStart    /etc/snmp/lognotify warmStart
traphandle IF-MIB::linkDown         /etc/snmp/lognotify linkDown
traphandle IF-MIB::linkUp           /etc/snmp/lognotify linkUp
traphandle SNMPv2-MIB::authenticationFailure /home/nba/bin/traps authFailure
  
authCommunity log,execute,net WBY_com_cacti
  [iyunv@admin200 snmp]# more lognotify
#!/bin/sh

read host
read ip
vars=

while read oid val
do
   if [ &quot;$vars&quot; = &quot;&quot; ]
   then
     vars=&quot;$oid = $val&quot;
   else
     vars=&quot;$vars, $oid = $val&quot;
   fi
done

echo trap: $1 $host $ip $vars >checkfile  
  echo &quot;trap: $1 $host $ip $vars&quot; |mail -s zhaowei_snmptrap_alert:&quot;$ip&quot; 362560701@qq.com -- -f trap_admin200@sdwzy.com
#echo “mail content”|mail -s test 362560701@qq.com
  
被监控机设置trap,在snmpd.conf 的最后添加如下几行:
# vim /etc/snmp/snmpd.conf
###add by for sending v1 traps to the admin server
trapsink        192.168.0.200:162  WBY_com_cacti
/etc/init.d/snmpd restart
  交换机设置trap
[H3C254_uplink]snmp-agent trap enable
[H3C254_uplink]snmp-agent target-host trap address udp-domain 192.168.0.200 udp-port 162 params securityname WBY_com_cacti v1
  
  三、批量安装被监控端
虚机
for i in 90 91 92 95 96 97 98 100 101 102 103 106 107 108 110 111 112 113 118;do ssh  192.168.100.$i 'mkdir /root/.ssh';done
for i in 90 91 92 95 96 97 98 100 101 102 103 106 107 108 110 111 112 113 118;do scp /root/.ssh/id_rsa.pub 192.168.100.$i:/root/.ssh/authorized_keys;done
for i in 90 91 92 95 96 97 98 100 101 102 103 106 107 108 110 111 112 113 118;do ssh  192.168.100.$i 'yum -y install net-snmp';done
for i in 90 91 92 95 96 97 98 100 101 102 103 106 107 108 110 111 112 113 118;do scp /etc/snmp/snmpd.conf 192.168.100.$i:/etc/snmp/snmpd.conf;done
for i in 90 91 92 95 96 97 98 100 101 102 103 106 107 108 110 111 112 113 118;do ssh  192.168.100.$i 'echo &quot;#########################重启snmpd 192.168.100.&quot;'$i'   &&
  /etc/init.d/snmpd restart';done
  for i in 120 121 122 123 126 127 128 130 131 132 133 138 140 141 142 143 144 145 150 151 152 153 155;do ssh  192.168.100.$i 'mkdir /root/.ssh';done
for i in 120 121 122 123 126 127 128 130 131 132 133 138 140 141 142 143 144 145 150 151 152 153 155;do echo &quot;########################scp 192.168.100.&quot;$i && scp
  /root/.ssh/id_rsa.pub 192.168.100.$i:/root/.ssh/authorized_keys;done
for i in 120 121 122 123 126 127 128 130 131 132 133 138 140 141 142 143 144 145 150 151 152 153 155;do ssh  192.168.100.$i 'echo &quot;########################install snmp
  192.168.100.&quot;'$i' && yum -y install net-snmp';done
for i in 120 121 122 123 126 127 128 130 131 132 133 138 140 141 142 143 144 145 150 151 152 153 155;do scp /etc/snmp/snmpd.conf 192.168.100.
  $i:/etc/snmp/snmpd.conf;done
for i in 120 121 122 123 126 127 128 130 131 132 133 138 140 141 142 143 144 145 150 151 152 153 155;do ssh  192.168.100.$i 'echo &quot;#########################重启snmpd
  192.168.100.&quot;'$i'   && /etc/init.d/snmpd restart';done
  实机
for i in 101 121 123 182 130 131 184 187 ;do ssh  192.168.1.$i 'mkdir /root/.ssh';done
for i in 101 121 123 182 130 131 184 187;do scp /root/.ssh/id_rsa.pub 192.168.1.$i:/root/.ssh/authorized_keys;done
for i in 101 121 123 182 130 131 184 187;do ssh  192.168.1.$i 'yum -y install net-snmp';done
for i in 101 121 123 182 130 131 184 187;do scp /etc/snmp/snmpd.conf 192.168.1.$i:/etc/snmp/snmpd.conf;done
for i in 101 121 123 182 130 131 184 187;do ssh  192.168.1.$i '/etc/init.d/snmpd restart';done
  四、批量添加主机
进入/var/www/cacti/cli
  列出可用主机模板的ID
# php -q cli/add_device.php --list-host-templates
创建主机
#php add_device.php --description=192.168.100.103_vm_dev100_C103 --ip=192.168.100.103 --template=3 --version=1 --community=mycommunity
  
批量增加主机脚本
# more auto_bat_add_hosts.sh
#!/bin/bash
php add_device.php --description=192.168.100.106_vm_dev100_C103 --ip=192.168.100.106 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.107_vm_dev100_C103 --ip=192.168.100.107 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.108_vm_dev100_C103 --ip=192.168.100.108 --template=3 --version=1 --community=mycommunity
  php add_device.php --description=192.168.100.111_vm_dev100_C103 --ip=192.168.100.111 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.112_vm_dev100_C103 --ip=192.168.100.112 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.113_vm_dev100_C103 --ip=192.168.100.113 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.118_vm_dev100_C103 --ip=192.168.100.118 --template=3 --version=1 --community=mycommunity
  php add_device.php --description=192.168.100.121_vm_dev100_C103 --ip=192.168.100.121 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.122_vm_dev100_C103 --ip=192.168.100.122 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.123_vm_dev100_C103 --ip=192.168.100.123 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.126_vm_dev100_C103 --ip=192.168.100.126 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.127_vm_dev100_C103 --ip=192.168.100.127 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.128_vm_dev100_C103 --ip=192.168.100.128 --template=3 --version=1 --community=mycommunity
  php add_device.php --description=192.168.100.131_vm_dev100_C103 --ip=192.168.100.131 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.132_vm_dev100_C103 --ip=192.168.100.132 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.133_vm_dev100_C103 --ip=192.168.100.133 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.138_vm_dev100_C103 --ip=192.168.100.138 --template=3 --version=1 --community=mycommunity
  php add_device.php --description=192.168.100.141_vm_dev100_C103 --ip=192.168.100.141 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.142_vm_dev100_C103 --ip=192.168.100.142 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.143_vm_dev100_C103 --ip=192.168.100.143 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.144_vm_dev100_C103 --ip=192.168.100.144 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.145_vm_dev100_C103 --ip=192.168.100.145 --template=3 --version=1 --community=mycommunity
  php add_device.php --description=192.168.100.151_vm_dev100_C103 --ip=192.168.100.151 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.152_vm_dev100_C103 --ip=192.168.100.152 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.153_vm_dev100_C103 --ip=192.168.100.153 --template=3 --version=1 --community=mycommunity
php add_device.php --description=192.168.100.155_vm_dev100_C103 --ip=192.168.100.155 --template=3 --version=1 --community=mycommunity
  
五、批量增加监控图像
列出存在的主机
# php add_graphs.php --list-hosts
列出可用的图像模板
# php add_graphs.php --list-graph-templates
  1、增加cpu图像
php add_graphs.php --host-id=16 --graph-type=cg --graph-template-id=4
  2、增加Load Average图像
php add_graphs.php --host-id=16 --graph-type=cg --graph-template-id=11
  3、增加Logged in Users图像
php add_graphs.php --host-id=16 --graph-type=cg --graph-template-id=28
  4、增加memory图像
php add_graphs.php --host-id=16 --graph-type=cg --graph-template-id=13
  5、增加Ping Latency图像
php add_graphs.php --host-id=16 --graph-type=cg --graph-template-id=7
  6、增加Processes图像
php add_graphs.php --host-id=16 --graph-type=cg --graph-template-id=29
  7、增加Traffic图像(最好手工增加)
php add_graphs.php --host-id=16 --graph-type=cg --graph-template-id=2
  8、增加disk图像(最好手工增加)
php add_graphs.php --host-id=16 --graph-type=cg --graph-template-id=3
  
批量增加图像脚本
# more auto_bat_add_graph.sh
#!/bin/bash
loop=15
while [ &quot;$loop&quot; -le 41 ]
do
     loop=`expr $loop &#43; 1`
     echo $loop
#log in user
php add_graphs.php --host-id=$loop --graph-type=cg --graph-template-id=28
#ping
php add_graphs.php --host-id=$loop --graph-type=cg --graph-template-id=7
#process
php add_graphs.php --host-id=$loop --graph-type=cg --graph-template-id=29
done
  
六、批量添加主机到树
查看存在的主机
# php add_tree.php --list-hosts
查看存在的树
# php add_tree.php --list-trees
  脚本:
# more auto_bat_add_tree.sh
#!/bin/bash
loop=33
while [ &quot;$loop&quot; -le 41 ]
do
     loop=`expr $loop &#43; 1`
     echo $loop
  #add tree
php add_tree.php --type=node --node-type=host --tree-id=2 --host-id=$loop
done
  
七、参考
cacti插件安装方法:http://docs.cacti.net/plugins
批量创建host、图像、tree:
http://www.vim-fu.com/using-cacti-to-monitor-a-large-scale-infrastructure-in-amazons-ec2/
http://www.php-oa.com/2011/05/19/cacti-cli.html
http://hi.baidu.com/cavaran/blog/item/a903338a17546508c8fc7a16.html
  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142074-1-1.html 上篇帖子: cacti数据迁移步骤 下篇帖子: cacti nagios nginx squid等怎么读?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表