ELK安装
安装环境及版本:
- 操作系统:Centos7
- 内存:大于或等于4G
- ElasticSearch:7.6.1
- Logstash:7.6.1
- Kibana:7.6.1
- filebeat :6.2.4
建议把所需的安装包,手动从网上下载下来,因为服务器下载ELK安装包速度像蜗牛……,非常非常慢~~,可能是国内的网络原因吧!
将手动下载下来的安装包,上传到服务器某个文件夹下。
3.1、ElasticSearch安装
3.1.1、安装JDK(已经安装过,可以跳过)
elasticsearch依赖Java开发环境支持,先安装JDK。
yum -y install java-1.8.0-openjdk
查看java安装情况
java -version
3.1.2、安装ElasticSearch
进入到对应上传的文件夹,安装ElasticSearch
rpm -ivh elasticsearch-7.6.1-x86_64.rpm
查找安装路径
rpm -ql elasticsearch
一般是装在/usr/share/elasticsearch/下。
3.1.3、设置data的目录
创建/data/es-data目录,用于elasticsearch数据的存放
mkdir -p /data/es-data
修改该目录的拥有者为elasticsearch
chown -R elasticsearch:elasticsearch /data/es-data
3.1.4、设置log的目录
创建/data/es-log目录,用于elasticsearch日志的存放
mkdir -p /log/es-log
修改该目录的拥有者为elasticsearch
chown -R elasticsearch:elasticsearch /log/es-log
3.1.5、修改配置文件elasticsearch.yml
vim /etc/elasticsearch/elasticsearch.yml
修改如下内容:
#设置data存放的路径为/data/es-data
path.data: /data/es-data
#设置logs日志的路径为/log/es-log
path.logs: /log/es-log
#设置内存不使用交换分区
bootstrap.memory_lock: false
#配置了bootstrap.memory_lock为true时反而会引发9200不会被监听,原因不明
#设置允许所有ip可以连接该elasticsearch
network.host: 0.0.0.0
#开启监听的端口为9200
http.port: 9200
#配置集群的主机地址,配置之后集群的主机之间可以自动发现:
discovery.seed_hosts: ["本机ip"]
#开启认证(单独添加)
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
xpack.security.authc.api_key.enabled: true
http://www.eryajf.net/3500.html
https://www.cnblogs.com/sanduzxcvbnm/p/12654166.html
3.1.6、启动elasticsearch
启动
systemctl start elasticsearch
查看状态
systemctl status elasticsearch
设置开机启动
systemctl enable elasticsearch
启动成功之后,测试服务是否开启
curl -X GET http://localhost:9200
开启安全认证
进入目录
cd /usr/share/elasticsearch/bin
执行密码生成
3.2、Logstash安装
3.2.1、安装logstash
rpm -ivh logstash-7.6.1.rpm
3.2.2、设置data的目录
创建/data/ls-data目录,用于logstash数据的存放
mkdir -p /data/ls-data
修改该目录的拥有者为logstash
chown -R logstash:logstash /data/ls-data
3.2.3、设置log的目录
创建/data/ls-log目录,用于logstash日志的存放
mkdir -p /log/ls-log
修改该目录的拥有者为logstash
chown -R logstash:logstash /log/ls-log
3.2.4、设置conf.d的目录,创建配置文件
#进入logstash目录
cd /etc/logstash
#创建conf.d的目录
mkdir conf.d
创建配置文件,日志内容输出到elasticsearch中,如下
vim /etc/logstash/conf.d/logstash.conf
内容如下:
input {
beats {
port => 5044
codec => plain {
charset => "UTF-8"
}
}
}
output {
elasticsearch { hosts => ["es的ip:9200"] }
stdout { codec => rubydebug }
}
3.2.5、修改配置文件logstash.yml
vim /etc/logstash/logstash.yml
内容如下:
# 设置数据的存储路径为/data/ls-data
path.data: /data/ls-data
# 设置管道配置文件路径为/etc/logstash/conf.d
path.config: /etc/logstash/conf.d
# 设置日志文件的存储路径为/log/ls-log
path.logs: /log/ls-log
3.2.6、启动logstash
启动
systemctl start logstash
查看
systemctl status logstash
设置开机启动
systemctl enable logstash
3.2.7、测试logstash
--config.test_and_exit
表示,检查测试创建的logstash.conf配置文件,是否有问题,如果没有问题,执行之后,显示Configuration OK 证明配置成功!
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf --config.test_and_exit
如果报错:WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using –path.settings.
解决办法:
cd /usr/share/logstash ln -s /etc/logstash ./config
3.2.8、logstash指定配置进行运行
指定logstash.conf
配置文件,以后台的方式运用,执行这段命令之后,需要回车一下
nohup /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf &
检查logstash是否启动
ps -ef|grep logstash
显示如下信息,说明启动了
3.3、kibana安装
3.3.1、安装kibana
rpm -ivh kibana-7.6.1-x86_64.rpm
搜索rpm包
rpm -ql kibana
默认是装在/usr/share/kibana/下。
3.3.2、修改kibana.yml
修改kibana的配置文件
vim /etc/kibana/kibana.yml
内容如下:
#kibana页面映射在5601端口
server.port: 5601
#允许所有ip访问5601端口
server.host: "本机ip"
#elasticsearch所在的ip及监听的地址
elasticsearch.url: "http://esip:9200"
#去掉注释
kibana.index: ".kibana"
#修改认证密码,去掉注释加上密码
elasticsearch.username: "kibana"
elasticsearch.password: "你的密码"
3.3.3、启动kibana
启动
systemctl start kibana
查看状态
systemctl status kibana
设置开机启动
systemctl enable kibana
到这一步,elk基本配置完了,输入如下命令,启动服务
# 启动ELK和nginx
systemctl restart elasticsearch logstash kibana
#查看ELK和nginx启动状态
systemctl status elasticsearch logstash kibana
在浏览器输入ip:5601, 就可以访问了kibana
grok编写
问题碎片
grok处理base64解密
绿盟waf的syslog不支持分词,需要进行base编码后进行分词
但是logstash官方并没有解码base的插件或者方式,在github找到一个开源插件
进入目录
cd /usr/share/logstash/bin
执行logstash-plugin install logstash-filter-base64
进行安装插件。
切换配置文件加入
base64 {
field => "需要解码的字段"
}
文档:https://www.rubydoc.info/gems/logstash-filter-base64
多规则过滤方法
多源多过滤多输出
方法1:使用命令指定数据目录进行多进程接收数据
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/指定配置文件 --path.data=/新目录,每个进程目录不可以一致
方法2:使用多文件,每个文件判断type方法,每个文件的input、filter、output均需要加入if参数判断type
360天眼使用kafka输入到elk
安装:
官网下载地址:http://kafka.apache.org/downloads
tar -xf kafka_2.11-0.11.0.2.tgz
mv kafka_2.11-0.11.0.2 /usr/local/kafka
cd kafka
然后启动zookeeper,需要执行下jps来查看有没有QuorumPeerMain
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
启动kafka
bin/kafka-server-start.sh -daemon config/server.properties
创建topic
使用kafka-topics.sh 创建单分区单副本的topic test:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看topic:
bin/kafka-topics.sh --list --zookeeper localhost:2181
如果输出一个test说明正常。
logstash插件告警
http {
http_method => "post"
url => "https://dddd/Napi/work.php?title=全流量安全报警&msg=警告!发现一起状态为%{host_state}的攻击事件,事件类型为:%{vuln_type};攻击IP为:%{sip},受攻击IP为%{dip}。请收到告警及时处理!"
}
破解
https://www.cnblogs.com/fat-girl-spring/p/12425049.html
Kibana优化过程(Optimize)过长或无法结束的解决方案
https://blog.csdn.net/u013613428/article/details/84966701
ELK优化
https://www.geek-share.com/detail/2794646755.html
wazuh安装
安装 Wazuh Manager
添加软件库
rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH
cat > /etc/yum.repos.d/wazuh.repo <<\EOF
[wazuh_repo]
gpgcheck=1
gpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH
enabled=1
name=Wazuh repository
baseurl=https://packages.wazuh.com/3.x/yum/
protect=1
EOF
安装manager
yum install wazuh-manager
安装完成后检查状态
systemctl status wazuh-manager
安装Wazuh API
添加官方NodeJS存储库
curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
安装NodeJS
yum install nodejs
安装Wazuh API
yum install wazuh-api
检查服务状态
systemctl status wazuh-api
禁用Wazuh存储库,以防止意外升级。为此,请使用以下命令:
sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/wazuh.repo
es安装wazuh
curl https://raw.githubusercontent.com/wazuh/wazuh/v3.12.0/extensions/elasticsearch/7.x/wazuh-template.json | curl -X PUT -u 账号:密码 "http://你的ip:9200/_template/wazuh" -H 'Content-Type: application/json' -d @-
Kibana安装wazuh
cd /usr/share/kibana/
sudo -u kibana bin/kibana-plugin install https://packages.wazuh.com/wazuhapp/wazuhapp-3.12.0_7.6.1.zip
logstash安装wazuh
curl -so /etc/logstash/conf.d/01-wazuh.conf https://raw.githubusercontent.com/wazuh/wazuh/v3.12.0/extensions/logstash/7.x/01-wazuh-remote.conf
需要注意修改配置文件中的ip和判断