说明:由于 winlogbeat 不支持在 Windows Server 2003 系统上运行,所以才使用 Evtsys 替代 Winlogbeat;Evtsys 可以将 Windows 日志转换成 syslog,然后发送到日志服务器;更多说明请参考 Evtsys 官网。
环境说明
本次实验使用到的系统与软件版本如下:
主机 | IP地址 | 系统 | 版本 | 软件 |
---|---|---|---|---|
Logstash | 172.16.68.10 | CentOS | 7.5 | logstash-7.6.2 |
Windows | 172.16.68.131 | Windows Server | 2003 R2 | evtsys-4.5.1 |
Elasticsearch1 | 172.16.68.12 | CentOS | 7.5 | elasticsearch-7.6.2 |
Elasticsearch2 | 172.16.68.13 | CentOS | 7.5 | elasticsearch-7.6.2 |
Elasticsearch3 | 172.16.68.14 | CentOS | 7.5 | elasticsearch-7.6.2 |
Kibana | 172.16.68.18 | CentOS | 7.5 | kibana-7.6.2 |
JDK 环境:因为最新版本 ELasticsearch 最低需要 jdk 11 版本,固这里采用 jdk-11.0.7
安装配置 JDK
在所有的 Linux 服务器上安装配置 jdk-11.0.7 环境,安装步骤如下:
解压 jdk 软件包
1
tar -zxvf jdk-11.0.7_linux-x64_bin.tar.gz -C /usr/local/java/
配置环境变量
新建文件 /etc/profile.d/java.sh,java.sh 内容如下:
1
2
3
4
5
export JAVA_HOME=/usr/local/java/jdk-11.0.7
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin刷新 java.sh 配置文件,验证 Java 环境
1
2
3
4# java -version
java version "11.0.7" 2020-04-14 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)
安装 Elasticsearch
在主机 Elasticsearch1,Elasticsearch2,Elasticsearch3 上安装 Elasticsearch,具体步骤如下:
解压 elasticsearch 软件包
1
tar zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz -C /usr/local/
修改 Elasticsearch 配置文件 elasticsearch.yml,需要修改的几个地方如下:
1
2
3
4
5
6
7
8cluster.name: titan-soc # 集群名称
node.name: elasticsearch-2 # 当前服务节点名称
path.data: /soc/data # 数据存放目录
path.logs: /soc/logs # 日志存放目录
network.host: 0.0.0.0 # 绑定地址
http.port: 9200 # 集群访问端口
discovery.seed_hosts: ["172.16.68.12:9300", "172.16.68.13:9300", "172.16.68.14:9300"]
cluster.initial_master_nodes: ["elasticsearch-1", "elasticsearch-2", "elasticsearch-3"]编辑 /etc/security/limits.conf,在最下面添加如下内容
1
2* soft nofile 65536
* hard nofile 65536编辑 /etc/sysctl.conf 文件,在最下面添加如下内容:
1
vm.max_map_count=262144
修改 elasticsearch 家目录权限为启动 Elasticsearch 的用户
1
chown -R wanwu:wanwu /usr/local/elasticsearch-7.6.2
启动 Elasticsearch,注意,Elasticsearch 需要以普通用户启动,否则会报错,无法启动
1
2cd /usr/local/elasticsearch-7.6.2
./bin/elasticsearch -d查看日志,确定集群启动正常,并且没有报错后,查看集群状态
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18$ curl 'http://172.16.68.12:9200/_cluster/health?pretty'
{
"cluster_name" : "titan-soc",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 5,
"active_shards" : 10,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}查看集群节点信息
1
2
3
4
5$ curl 'http://172.16.68.12:9200/_cat/nodes?v'
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.16.68.12 14 85 4 0.03 0.10 0.08 dilm - elasticsearch-1
172.16.68.14 16 91 3 0.02 0.08 0.07 dilm - elasticsearch-3
172.16.68.13 9 96 3 0.01 0.05 0.05 dilm * elasticsearch-2Elasticsearch 集群安装到此为止
安装 Logstash
在 Logstash 主机上安装 logstash,具体的步骤如下:
解压软件包
1
tar zxvf logstash-7.6.2.tar.gz -C /usr/local/
创建 logstash 配置文件,复制 logstash-sample.conf 为 0_evtsys.conf,修改后内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15input {
syslog {
port => 3514
type => "evtsys"
}
}
output {
if [type] == "evtsys" {
elasticsearch {
hosts => ["http://172.16.68.12:9200", "http://172.16.68.13:9200", "http://172.16.68.14:9200"]
index => "titan-evtsys-%{+YYYY.MM.dd}"
}
}
}检测配置文件是否正确
1
2
3
4logstash -f /etc/logstash/conf.d/0_evtsys.conf --config.test_and_exit
# 出现如下提示时表示配置文件正确无误
[2020-05-10T20:57:27,335][INFO ][logstash.runner ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash启动 logstah,如果需要以普通用户启动 logstah,记得修改目录权威,和 Elasticsearch 一样修改目录属主即可。
1
logstash -f /etc/logstash/conf.d/0_evtsys.conf > /tmp/logstash.log 2>&1 &
Logstash 的安装到此为止
安装 Kibana
Kibana 的安装比较简单,kibana 不需要 jdk 环境的支持;具体的安装步骤如下:
解压软件包
1
2tar -zxvf kibana-7.6.2-linux-x86_64.tar.gz
mv kibana-7.6.2-linux-x86_64 /usr/local/kibana-7.6.2编辑 kibana 的配置文件,需要修改的地方如下:
1
2
3
4
5server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://172.16.68.12:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"因为 kibana 不建议使用 root 运行,所以也需要修改目录权限
1
chown -R wanwu:wanwu /usr/local/kibana-7.6.2/
启动 kibana
1
2cd /usr/local/kibana-7.6.12
./bin/kibana -c config/kibana.yml -l /tmp/kibana.log &打开浏览器,访问
172.16.68.18:5601
地址,如下图:
Kibana 的安装到此为主
安装 Evtsys
在 windows Server 2003 R2 系统上安装 Evtsys 软件,具体的步骤如下:
解压软件包,并将软件包放到 C:\Program Files 目录下,如下图:
打开终端,进入到 Evtsys 软件所在目录
1
cd "C:\Program Files"
安装 Evtsys
1
evtsys.exe -i -h 172.16.68.10 -p 3514
启动 evtsys
1
net start evtsys
查看服务运行状态
1
2net start | findstr "Eventlog"
Eventlog to SyslogEvtsys 安装到此结束
Evtsys.cfg 配置文件配置说明
此处内容来自 https://isc.sans.edu/forums/diary/Monitoring+Windows+Networks+Using+Syslog+Part+One/17342/
evtsys.cfg的基本版本可以在 Github(http://goo.gl/79spGK
)上找到。此配置文件适用于Windows 7及更高版本。使用之前,请将该文件重命名为 Evtsys.cfg。该文件使用XPATH作为过滤器,这使得创建新过滤器变得容易。这是创建自己的快速方法。
在Windows事件查看器中,选择要从中创建规则的事件日志。
单击详细信息选项卡,然后选择XML视图。
确定事件的 Channel 以及您要从该Channel 中获取的任何特定事件ID。
在这种情况下,Windows Defender通道为
1
2<Channel>Microsoft-Windows-Windows Defender/Operational</Channel>
The event ID’s we want are: 1005,1006,1010,1012,1014,2001,2003, 2004, 3002,5008全部放在一起。规则的格式为:XPath:<\PathtoChannel>:<\Select statement>,并且规则必须在一行上。在频道名称中可以有空格,但是 Select 语句必须带双引号。
单击“事件视图”侧面的“过滤当前日志”按钮,然后输入要用于过滤的其他数据。然后单击顶部的XML选项卡。您可以剪切和粘贴整个选中的路径到你的过滤中
1
XPath:Microsoft-Windows-Windows Defender/Operational:<Select Path=”Microsoft-Windows-Windows Defender/Operational\”>*[System[(EventID=1005 or EventID=1006 or EventID=1010 or EventID=1012 or EventID=1014 or EventID=2001 or EventID=2003 or EventID=2004 or EventID=3002 or EventID=5008)]]</Select>
Kibana 配置索引
打开浏览器,访问 172.16.68.18:5601,点击 “Management”,选择 “索引模式”, 然后点击 “创建索引模式”,如下图所示
输入索引名称,点击下一步,如下图:
设置时间筛选字段名称,点击创建索引模式,如下图:
点击 Discover ,查看索引数据,如下图: