cacti安装syslog插件

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
简介:

cacti中syslog插件,是通过rsyslog或syslog-ng与mysql的交互,将日志存放到mysql数据库中,cacti中的syslog插件从mysql中检索查看日志数据。因此,首先要配置一台rsyslog与mysql的日志中心服务器来接收客户机的日志;其次,配置cacti的syslog插件,通过该插件检索与查询mysql中的日志。可以收集来自linux、windows等服务器和交换机路由器的日志。做到集中和分类查看。

一、设置接收日志
要想接收日志信息,并在cacti的syslog插件中显示接收到的日志,首先是接收日志,有二种办法:

1.使用syslog-ng,在centos5.5及以下系统上,系统默认有syslog,可以发送日志,但不能接受日志,因此要借助于syslog-ng,来接收发送过来的日志,并规范成一个模版,再通过自己写的脚本,插入到mysql数据库里

2.使用rsyslog,rsyslog是在centos6以上系统自带的,rsyslog不仅能接收日志,还可以发送日志,因此要是在centos6以上系统就不需要额外安装syslog-ng接收日志了,用自带的rsylog就可以接收日志,再用rsyslog-mysql就可以把接收到的日志写入mysql数据库

二、安装syslog插件

 cd /usr/local/nginx/html/cacti/plugins/
wget http://docs.cacti.net/_media/plugin:syslog-v1.22-2.tgz -O syslog.tgz
tar xvf syslog.tgz
chown -R www:www syslog

cd syslog
/usr/local/mysql/bin/mysql -e "create database syslog"
/usr/local/mysql/bin/mysql syslog < syslog.sql
/usr/local/mysql/bin/mysql -e "grant all privileges on syslog.* to cacti
@'localhosst' Identified by 'cacti'"

修改配置文件config.php

 
  1. global $config$database_type$database_default$database_hostname;  
  2. global $database_username$database_password$database_port;  
  3.  
  4. /* revert if you dont use the Cacti database */ 
  5. $use_cacti_db = false;  
  6.  
  7. if (!$use_cacti_db) {  
  8.         $syslogdb_type     = 'mysql';  
  9.         $syslogdb_default  = 'syslog';  
  10.         $syslogdb_hostname = 'localhost';  
  11.         $syslogdb_username = 'cacti';  
  12.         $syslogdb_password = 'cacti';  
  13.         $syslogdb_port     = 3306;  
  14. }else{  
  15.         $syslogdb_type     = $database_type;  
  16.         $syslogdb_default  = $database_default;  
  17.         $syslogdb_hostname = $database_hostname;  
  18.         $syslogdb_username = $database_username;  
  19.         $syslogdb_password = $database_password;  
  20.         $syslogdb_port     = $database_port;  

可以看到以上设置$use_cacti_db = false;这个是设置syslog是否要使用cacti的数据库,我在这里不使用cacti的数据,因为syslog往往比较多,日志比较多,为了便于备份和使用,还是选择用一个独立的数据库。因此要在下面设置连接数据库的用户名,密码,数据库名等

三、配置rsyslog或syslog-ng

rsyslog:

 yum install -y rsyslog rsyslog-mysql

编辑/etc/rsyslog.conf

 
  1. $ModLoad imudp.so  
  2. $UDPServerRun 514  
  3. $ModLoad ommysql  
  4. $template cacti_syslog,"INSERT INTO syslog_incoming(facility, priority, date, time, host, message) values (%syslogfacility%, %syslogpriority%, '%timereported:::date-mysql%', '%timereported:::date-mysql%', '%HOSTNAME%', '%msg%')", SQL  
  5. *.* &gt;localhost,syslog,cactiuser,cactifans.org;cacti_syslog 

在文件最后添加以上内容,然后重启rsyslog,并设置开机启动

 chkconfig rsyslog on
service rsyslog restart

 

syslog-ng:

 rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum install -y syslog-ng

编辑/etc/syslog-ng/syslog-ng.conf

 
  1. source net {  
  2.    
  3. udp();  
  4. };  
  5.    
  6. destination d_mysql {  
  7. pipe("/tmp/mysql.pipe" 
  8. template("INSERT INTO syslog_incoming (host, facility, priority, date, time, message) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$MSG' );\n")  
  9. template-escape(yes)  
  10. );  
  11. };  
  12.    
  13. log { source(net); destination(d_mysql); };  
  14. log { source(s_sys); destination(d_mysql); }; 

在文件最后添加以上内容,然后编写一个脚本把syslog-ng接收到的数据写进mysql

新建bash  /sbin/syslogtomysql

 
  1. #!/bin/bash  
  2. if [ ! -e /tmp/mysql.pipe ]; then  
  3.         mkfifo /tmp/mysql.pipe  
  4. fi  
  5.    
  6. while [ -e /tmp/mysql.pipe ]  
  7. do  
  8.         mysql -u cactiuser --password=cactifans.org syslog < /tmp/mysql.pipe  
  9. done 

保存退出,

 chmod +x /sbin/syslogtomysql
nohup /sbin/syslogtomysql &
echo "nohup /sbin/syslogtomysql &" >> /etc/rc.local
/etc/init.d/syslog-ng start
chkconfig syslog-ng on

四、cacti主页启动syslog

点syslog前面的那个先下箭头的小原点,会出现如下图:

 

这里是对syslog数据的一些设置第分别为Database Storage Engine(数据库存储引擎)、Database Architecutre(数据库架构)这二项在一般默认,如果你的mysql数据库为5.1.6后者以上可以选择InnoDB Storage 和Partitioned Table,可以提高syslog的性能最后一项是Retention Policy(保留策略)就是要在syslog存储多长的时间,这个可以根据自己的需求设定,最后我们点install

就可以看到syslog已经安装,但是还没有启用,我们点那个绿色箭头就可以启用syslog

启用后我们可以看到syslog了

 

五、被监控端设置

linux服务器设置:

编辑/etc/syslog.conf

 
  1. *.*     @192.168.1.100 
添加以上配置,然后重启syslog服务,并打开upd 514端口

监控主机就会自动接收被监控端传过来的日志数据!

本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/859585如需转载请自行联系原作者


lihuipeng

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
监控 关系型数据库 MySQL
|
关系型数据库 MySQL 数据安全/隐私保护
|
网络协议 关系型数据库 测试技术
nagios插件详解
一、check_apt 作用:debain相关系统的更新机制检查 update更新软件列表信息,包括版本,依赖关系等 upgrade在不改变现有软件设置的基础上更新软件 dist-upgrade会改变配置文件,改变旧的依赖关系 语法:check_apt [[-d|-u|-U]opts] [-n] [-t timeout] >#check_apt --help //查看具体使用说明 -d opts:--dist-upgrade=OPTS:执行dist-upgrade升级。
1616 0
|
Apache Linux 网络协议
|
Web App开发 存储 关系型数据库