点击上方"walkingcloud"关注,并选择"星标"公众号
先上最终的效果图:防火墙NAT日志在GrayLogServer4.1的呈现的效果
(图片可点击放大查看)
(图片可点击放大查看)
下面细说具体的步骤
一、EVE-NG下模拟网络设备syslog日志
使用的是EVE-NG社区懒人版,测试使用hillstone山石网科防火墙
链接: https://pan.baidu.com/s/15G_ONhBD7TpZo3w0vKmU0g 提取码: xucy
复制
搭建的拓扑也很简单(典型的简单企业园区网)
(图片可点击放大查看)
1、Hillstone防火墙
E0/0 DHCP 桥接PC本地网卡作为外网WAN 192.168.31.163
E0/1 10.10.10.253 与三层交换机G0/0互联
2、Cisco Switch三层交换机
G0/0 VLAN100 VLAN IP 10.10.10.254
G0/1 VLAN200 VLAN IP 10.10.200.1
3、测试PC
IP 10.10.200.200 VLAN200
拓扑如下
(图片可点击放大查看)
这里就不详细描述园区网各设备的具体配置过程了
主要就是模拟山石网科防火墙的日志发送
(图片可点击放大查看)
(图片可点击放大查看)
二、GrayLogServer 4.1版本的搭建
之前有搭建过GraryLog,链接如下
GrayLogServer 4.1版本的搭建步骤大同小异
1、配置yum源,安装jdk+pwgen
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y java-1.8.0-openjdk-headless.x86_64
yum install -y pwgen复制
(图片可点击放大查看)
(图片可点击放大查看)
2、安装MongoDB4.4
vi /etc/yum.repos.d/mongodb-org.repo
#修改成如下行
[mongodb-org]
name=MongoDB Repository
baseurl=https://mirrors.aliyun.com/mongodb/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc复制
(图片可点击放大查看)
yum install mongodb-org
systemctl daemon-reload
systemctl enable mongod.service
systemctl start mongod.service
systemctl --type=service --state=active | grep mongod复制
(图片可点击放大查看)
3、安装Elasticsearch7.14版本
先创建Elasticsearch数据存储和日志目录,建议要使用磁盘分区容量较大的目录
mkdir -p /opt/elasticsearch/data
mkdir -p /opt/elasticsearch/logs
chown -R elasticsearch:elasticsearch /opt/elasticsearch复制
(图片可点击放大查看)
腾讯云镜像站Elastic源中下载elasticsearch的rpm包,进行本地rpm安装
https://mirrors.cloud.tencent.com/elasticstack/yum/elastic-7.x/7.14.0/elasticsearch-7.14.0-x86_64.rpm
复制
(图片可点击放大查看)
rpm -ihv elasticsearch-7.14.0-x86_64.rpm
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl restart elasticsearch.service复制
(图片可点击放大查看)
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml_default
并修改配置文件
vi/etc/elasticsearch/elasticsearch.yml
#添加或修改如下行
cluster.name:graylog
action.auto_create_index:false
path.data: /opt/elasticsearch/data
path.logs: /opt/elasticsearch/logs复制
(图片可点击放大查看)
(图片可点击放大查看)
4、安装GrayLogServer4.1
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-4.1-repository_latest.rpm
yum install graylog-server复制
(图片可点击放大查看)
(图片可点击放大查看)
5、修改Graylog相关配置文件
cp /etc/graylog/server/server.conf /etc/graylog/server/server.conf_default
pwgen -N 1 -s 96
Joznyj3G5p13hwaIwdvZVJ9TfiPcb4PINOdSPH3uq5GKFaG9jvgsgjQNGVrUwy4F057PTYBmP7dJP6Svx8t8w1h61hVhVUcX
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
Enter Password: Graylog@2021
10dfabb9595634675701865aa1c6e774d89d59f4a104ab128fbffcdaa3cf8f7b复制
(图片可点击放大查看)
修改graylogserver配置文件
vim /etc/graylog/server/server.conf
root_timezone = Asia/Shanghai
allow_highlighting = true
http_bind_address = 0.0.0.0:9000复制
1)、admin帐号
2)、时区设置
3)、查询结果高亮
4)、http绑定的IP与端口
(图片可点击放大查看)
5)、重启服务并防火墙开放9000端口
systemctl daemon-reload
systemctl enable graylog-server.service
systemctl start graylog-server.service
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --reload复制
(图片可点击放大查看)
6、GrayLog配置SyslogInput接收
(图片可点击放大查看)
(图片可点击放大查看)
firewall-cmd --zone=public --add-port=1514/udp –permanent
复制
防火墙上配置日志服务器,测试日志接收,并查询日志
(图片可点击放大查看)
(图片可点击放大查看)
(图片可点击放大查看)
-三、安装Nxlog实现编码转换
可能网络设备发送过来的日志编码非UTF-8编码,在GrayLogServer上呈现出中文乱码的情况
(图片可点击放大查看)
针对这种情况可以借助nxlog实现转换为UTF-8编码,解决中文乱码问题
具体原理(Nxlog也安装GrayLogServer这台服务器上)
(图片可点击放大查看)
rpm -ivh nxlog-ce-2.11.2190-1_rhel7.x86_64.rpm
会提示缺少依赖包
yum localinstall nxlog-ce-2.11.2190-1_rhel7.x86_64.rpm复制
(图片可点击放大查看)
1、前端网络设备先发到nxlog的1513端口,nxlog开放UDP 1513用于接收
2、nxlog配置文件修改,进行编码转换,转换成UTF-8编码
3、再发送GrayLog的UDP 1514端口
cp /etc/nxlog.conf /etc/nxlog.conf_bak
vim /etc/nxlog.conf
配置文件中主要段如下
<Extension _syslog>
Module xm_syslog
</Extension>
<Extension charconv>
Module xm_charconv
AutodetectCharsets gbk,utf-8, euc-jp, utf-16, utf-32, iso8859-2
</Extension>
<Input in1>
Module im_udp
Host 192.168.31.127
Port 1513
Exec convert_fields("auto", "utf-8");
</Input>
<Output out1>
Module om_udp
Host 192.168.31.127
Port 1514
</Output>
########################################
# Routes #
########################################
<Route graylog-utf-8>
Path in1 => out1
</Route>复制
(图片可点击放大查看)
firewall-cmd --permanent --zone=public --add-port=1513/udp
firewall-cmd --reload
service nxlog restart
chkconfig --list | grep nxlog复制
(图片可点击放大查看)
验证效果
若有遇到这种情况时可以采用这种nxlog转换编码的方案
(图片可点击放大查看)
四、GrayLogServer中日志源source显示名称问题
在图中可以看到source一直为0010097503844724(root),不太直观
可以通过pipeline规则来实现显示名称修改
参考如下链接解决
https://community.graylog.org/t/making-source-field-show-hostname-instead-of-ip-address/7801
复制
步骤如下
1、创建Pipeline
(图片可点击放大查看)
2、配置rules
(图片可点击放大查看)
语法配置如下
rule "CorrectHillstoneDeviceName"
when
has_field("source") AND contains(to_string($message.source), "0010097503844724(root)")
then
set_field("source", "Hillstone");
end复制
(图片可点击放大查看)
3、然后再应用到Stream "All messages"中
(图片可点击放大查看)
(图片可点击放大查看)
就可以完美解决这个问题
(图片可点击放大查看)
(图片可点击放大查看)
切换为暗黑模式
(图片可点击放大查看)