成功实现syslog在cacti上的插件

成功实现syslog:

第一步:配置环境,把拿到的数据导进去mysql数据库

我用的是centos6.5使用的是rsyslog,配置下就可以用来接受日志。可是要收集日志就还要安装syslog-ng用来接受日志。另外还要安装rsyslog-mysql来把接受到的日志插入到mysql数据库里

yum install -y rsyslog rsyslog-mysql

下面我们要对rsyslog进行设置

vi /etc/rsyslog.conf

在文件最后添加—加红色字部分就好

end of the forwarding rule

$ModLoad imudp.so

$UDPServerRun 514

$ModLoad ommysql

$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

. >localhost,syslog,cactiuser,cactifans.org;cacti_syslog

-------------------------------------------------------------------------------------这是源

$ModLoad imudp.so

$UDPServerRun 514

$ModLoad ommysql

$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

. >localhost,syslog,cactiuser,cactifans.org;cacti_syslog


然后保存,重新启动rsyslog,并设置rsyslog开机启动

chkconfig rsyslog on

service rsyslog restart

第二部:配置syslog的数据库
[root@localhost~]# mysql -u root -p
Enter password:

輸入剛剛設定好的root密碼

進入資料庫之後,建立syslog的資料庫
mysql> create database syslog;
Query OK, 1 row affected (0.00 sec)
建立使用者syslog,對於syslog這個資料庫的所有使用權,並設定cactiuser這個使用者的密碼為cactifans.org

mysql> GRANT ALL ON syslog.* TO cactiuser@localhost IDENTIFIED BY 'cactifans.org';
Query OK, 1 row affected (0.00 sec)
更新資料庫的授權表
mysql> flush privileges;
Query OK, 1 row affected (0.00 sec)

離開資料庫
mysql> exit
Bye
设置的数据库名:syslog 用户名:cactiuser 密码:cactifans.org 可以自行设定

以上可以参考如下语法:


以下範例是使用root帳號來建立資料庫給cacti。設定cacti的帳號為:cacti 密碼:centos

[root@localhost~]# mysql -u root -p
Enter password:

輸入剛剛設定好的root密碼

進入資料庫之後,建立cacti的資料庫
mysql> create database cacti;
Query OK, 1 row affected (0.00 sec)

建立使用者cacti,對於cacti這個資料庫的所有使用權,並設定cacti這個使用者的密碼為centos
mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'centos';
Query OK, 1 row affected (0.00 sec)

更新資料庫的授權表
mysql> flush privileges;
Query OK, 1 row affected (0.00 sec)

離開資料庫
mysql> exit

Bye

安装syslog插件-与安装其他插件差不多
由于syslog依赖settings插件,所以安装syslog插件之前先安装settings插件

先安装settings插件

cd /usr/share/cacti/plugins

wget http://docs.cacti.net/_media/plugin:settings-v0.71-1.tgz

mv plugin:settings-v0.71-1.tgz settings-v0.71-1.tgz

tar zxvf settings-v0.71-1.tgz -C /usr/share/cacti/plugins

chown -R apache:apache /usr/share/cacti/plugins/setting

再安装syslog插件

cd /usr/share/cacti/plugins

wget http://docs.cacti.net/_media/plugin:syslog-v1.22-2.tgz -O syslog.tgz

tar zxvf syslog*.tgz –C /usr/share/cacti/plugins

chown -R apache:apache /usr/share/cacti/plugins/syslog

接下来我们进行一下配置 修改下面三个红色字体部分就好

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

vi /usr/share/cacti/plugins/syslog/config.php

......

global $config, $database_type, $database_default, $database_hostname;

global $database_username, $database_password, $database_port;

/ revert if you dont use the Cacti database /

$use_cacti_db = false;

if (!$use_cacti_db) {

      $syslogdb_type     = 'mysql';

      $syslogdb_default  = 'syslog';

      $syslogdb_hostname = 'localhost';

      $syslogdb_username = 'cactiuser';

      $syslogdb_password = 'cactifans.org';

      $syslogdb_port     = 3306;

     }else{

      $syslogdb_type     = $database_type;

      $syslogdb_default  = $database_default;

     $syslogdb_hostname = $database_hostname;

     $syslogdb_username = $database_username;

     $syslogdb_password = $database_password;

     $syslogdb_port     = $database_port;

}

.......

可以看到以上设置$use_cacti_db = false;这个是设置syslog是否要使用cacti的数据库,我在这里不使用cacti的数据,因为syslog往往比较多,日志比较多,为了便于备份和使用,还是选择用一个独立的数据库。因此要在下面设置连接数据库的用户名,密码,数据库名等。设置好后我们打开cacti,点console——Plugin Management,可以看到syslog还没有被启用,先启用settings插件,再启用syslog插件。

image.png

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

image.png

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

image.png

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

image.png

启用后我们可以看到syslog了

image.png

Syslog的服务器也要把514端口打开:方法如下linux服务器设置一样。

4.被监控端设置

A.Linux服务器设置

设置完毕后重启rsyslog服务,并在防火墙上允许udp 514端口

或者直接把防火墙关了:

【Step15:修改防火牆的設定】
這裡會建議初學者直接將防火牆關閉(service iptables stop)

,讓之後debug會比較容易一點。
[root@localhost~]# vi /etc/sysconfig/iptables 把红色部分加进去就好

Firewall configuration written by system-config-firewall

Manual customization of this file is not recommended.

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp -m state --state NEW --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
-A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT

-A INPUT -p udp -m state --state NEW --dport 514 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 514 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT

將防火牆服務重新啟動
[root@localhost~]# /etc/init.d/iptables restart

chkconfig iptables on

实在不行才用Service iptables stop

Centos6.5

vi /etc/rsyslog.conf 在最后面加上下面红色字部分就可以了

end of the forwarding rule

. @202.46.32.84:514

@后面为你的cacti服务器IP地址一般端口为514

设置完毕后重启rsyslog服务,并在防火墙上允许udp 514端口

通过以上设置就可以把服务器的所有日志发送到cacti服务器

B.网络设备

Cisco3750

SW3750 (config)#logging on

SW3750(config)#logging 192.168.X.X //日志服务器的IP地址]

logging source-interface Loopback0 或者交换机上的其他接口

在设备上指定logging 为cacti的服务器就成了。(设备不通设置方法可能有所不同,可以参考设备说明书)

网络设备包括路由器,防火墙交换机。这样就可以在cacti里看到接受到的日志

效果图

image.png

syslog可以接受到防火墙,路由器,交换机,服务器的日志,并自动分为7个等级,并用不通的颜色表示,看起来直观,也做到的日志的集中收集与查看.另外还可以在cacti里对的setting里对syslog插件进行一些设置。

上一篇:CentOS:Device eth0 does not seem to be present 问题解决方法


下一篇:成功解决 shape = predictor(img, dets[0]) IndexError: Index out of range