syslog-ng和syslog-ng tls配置
syslog-ng服务端配置
1、配置源
source s_sys{
udp(ip(0.0.0.0) port(514)
flags(no-parse));
};
2、解析json
parser p_json{
json-parser (prefix(".message."));
};
3、将日志存储到文件中
destination d_mysql{
file(“var/log/test.json” template("$(format-json --scope dot-nv-pairs)\n"));
};
4、重启服务
systemctl restart syslog-ng.service
5、也可以使用syslog-ng -e -F -d -v
syslog-ng tls服务端配置
1、配置源之前需要获取证书,自己百度,也可参考链接: 这里.
2、配置tls过程
准备好生成CA,服务器和客户端证书后,将它们复制到相应的计算机上,并配置 syslog-ng 以使用它们。从理论上讲,CA和其他证书可以放在文件系统中的任何位置。实际上,服务器应用程序通常受AppArmor,SELinux或其他机制保护,因此建议在其所在的子目录中创建子目录 syslog-ng.conf 。这样syslog-ng 可以读取它们而无需修改相关的访问规则。
在下面的示例中, syslog-ng.conf 位于/etc/syslog-ng/
2.1在/etc/syslog-ng/目录下创建两个新 目录:
mkdir cert.d ca.d
2.2复制 serverkey.pem 和 servercert.pem 到 cert.d。复制 cacert.pem 到 ca.d 证书并在证书上发出以下命令:
openssl x509 -noout -hash -in cacert.pem
结果是哈希(例如89d329s),这是基于证书的专有名称的一系列字母数字字符。
2.3发出以下命令以创建指向使用上一命令和.0 后缀返回的哈希的证书的符号链接 。
ln -s cacert.pem 89d329s.0
3、配置源
source source1_tls{
network(
ip(0.0.0.0) port(1999)
flags(no-parse)
transport(“tls”)
tls(
key-file("/etc/syslog-ng/key.d/server.key")
cert-file("/etc/syslog-ng/cert.d/server.pem")
ca-dir("/etc/syslog-ng/ca.d")
)
);
};
4、将日志存到文件
destination tls_txt{
file("/var/log/testTLS.json");
};
5、重启服务
到此服务端就配置好啦
参考: https://www.syslog-ng.com/technical-documents/doc/syslog-ng-open-source-edition/3.18/administration-guide#TOPIC-1043877
https://blog.csdn.net/CODINGCS/article/details/78001727