摘要:如何配置BIG-IP V9.X 和 V10.X 的 syslog-ng 功能,讲logs发送到远端的一台或多台syslog服务器

1.1. V10.0及更高版本的配置步骤

在BIG-IP V10.0 以及更高版本,必须使用bigpipe syslog命令创建syslog配置。
配置步骤:
1. 确认系统版本
    b version | grep V
2. 添加一台syslog服务器
    bigpipe syslog remote server {remote_server1 {host X.X.X.X}}
    bigpipe syslog remote server all list
    bigpipe syslog remote server all remote port show        --查看端口
    bigpipe syslog remote server remote_server1 remote port XXX    -- 更改默认端口
3.    添加多台syslog服务器
    bigpipe syslog remote server {remote_server2 {host X.X.X.X} remote_server3 {host X.X.X.X} remote_server4 {host X.X.X.X}}
4. 保存当前配置
    bigpipe save

V1.2 删除配置
1. 删除一台syslog服务器
    bigpipe syslog remote server remote_server1 delete
2.    删除所有syslog服务器
    bigpipe syslog remote server all delete

1.2 V9.4.2 至 V8.4.8 版本的配置步骤
    bigpipe syslog 只允许添加一个远端syslog服务器,不过syslog-ng功能允许添加多个syslog服务器
配置步骤:
1.    查看系统版本
    b version | grep V
2.    添加一台syslog服务器
    bigpipe syslog remote server X.X.X.X
3.    配置多个远端syslog服务器
    bigpipe syslog include "destination remote_udp {udp(\"X.X.X.X\" port(514));};log {source(local); destination(remote_udp);};"
    bigpipe syslog include "destination remote_tcp {tcp(\"X.X.X.X\" port(123));tcp(\"X.X.X.X\" port(123));};log{source(local); destination(remote_tcp);};"
4. 保存配置
    bigpipe save
5. 删除一台syslog服务器
    bigpipe syslog remote server none
6. 删除多台syslog服务器
    bigpipe syslog include none

V9.0 至V9.4.1 或者 SAM 8.0 版本配置步骤
遵循如下3种方法发送:
1.    发送BIG-IP 所有logs至一个远端syslog服务器
2.    发送BIG-IP 所有logs至多个远端syslog服务器
3.    发送BIG-IP 特定logs至一个远端syslog服务器

发送所有logs至一个syslog服务器:
1. 查看版本
2.    cd /etc/syslog-ng
3. cp syslog-ng.conf syslog-ng.conf.bak
4.    vi syslog-ng.conf
5. 将如下内容添加到最后:

destination remote_server{
udp("X.X.X.X" port(514));
udp("X.X.X.X" port(514));        //发送至多个
udp("X.X.X.X" port(514));
};
filter f_alllogs{
level (debug...emerg);
};
log{
source(local);
filter(f_alllogs);
destination(remote_server);
};
6.重启syslog-ng,bigstart restart syslog-ng

发送特定log到指定服务器
定位到下面位置:
# local0.*
    filter f_local0{
facility(local 0) and level(info..emerg);
};        //定义logs过滤规则,过滤local0所有logs
destination d_ltm{
    file("/var/log/ltm" create_dirs(yes));
};        //定义logs消息目的,写到指定文件
log{
    source(local);    //指定消息源
    filter(f_local0);    //指定过滤规则
    destination(d_ltm);    //指定logs消息的目的
};

然后,手动顶一个一个logs消息的目的:
destination remote_syslog_server{
udp("X.X.X.X" port(514));
};                //定义消息目的,将logs发到X.X.X.X 514
修改消息路径,
log{
    source(local);    //指定消息源
    filter(f_local0);    //指定过滤规则
    destination(remote_syslog_server);    //指定logs消息的目的
};

用同样的方法,修改local1等。完成后重启