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: "你的密码"

http://www.idcsec.com/2020/01/09/ELK%E6%97%A5%E5%BF%97%E5%B9%B3%E5%8F%B0%E7%B4%A2%E5%BC%95%E5%A4%87%E4%BB%BD%EF%BC%8C%E8%BF%81%E7%A7%BB%E5%8F%8A%E6%81%A2%E5%A4%8D-ELK7-5-1%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2/

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编写

https://help.aliyun.com/document_detail/129387.html?spm=a2c4g.11186623.2.8.4f5111e0O2CtpT#concept-1597616

问题碎片

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和判断

Last modification:December 28, 2020
如果觉得我的文章对你有用,请随意赞赏