Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。
Elasticsearch特点
海量数据处理
-
大型分布式集群(数百台规模服务器)
-
处理PB级数据
-
小公司也可以进行单机部署
开箱即用
-
简单易用,操作非常简单
-
快速部署生产环境
作为传统数据库的补充
-
传统关系型数据库不擅长全文检索(MySQL自带的全文索引,与ES性能差距非常大)
-
传统关系型数据库无法支持搜索排名、海量数据存储、分析等功能
-
Elasticsearch可以作为传统关系数据库的补充,提供RDBM无法提供的功能
使用案例ELK
部署es
docker pull elasticsearch:7.1.1
docker network create elkwork # 创建自定义的网络(用于连接到连接到同一网络的其他服务(例如Kibana))
docker run -d --name elasticsearch --net elkwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.1.1
curl 192.21.1.81:9200 #测试是否部署成功
部署kibana
docker pull kibana:7.1.1
docker run -d --name kibana --net elkwork -p 5601:5601 kibana:7.1.1
访问 http://127.0.0.1:5601
安装 Logstash
docker pull logstash:7.1.1
mkdir -p /mnt/logstash
mkdir /mnt/logstash/conf.d
cd /mnt/logstash
cat > /mnt/logstash/logstash.yml << EOF
> path.config: /usr/share/logstash/conf.d/*.conf
> path.logs: /var/log/logstash
> EOF
cat > /mnt/logstash/conf.d/test.conf <<EOF
> input {
> beats {
> port => 5044
> codec => "json"
> }
> }
>
> output {
> elasticsearch { hosts => ["elasticsearch:9200"] }
> stdout { codec => rubydebug }
> }
> EOF
docker run -it -d -p 5044:5044 --name logstash --net elkwork -v /mnt/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v /mnt/logstash/conf.d/:/usr/share/logstash/conf.d/ logstash:7.1.1
部署 filebeat
docker pull store/elastic/filebeat:7.1.1
mkdir /mnt/filebeat
cd filebeat
curl -L -O https://raw.githubusercontent.com/elastic/beats/7.1/deploy/docker/filebeat.docker.yml
cat >> filebeat.docker.yml <<EOF
> filebeat.inputs:
> - type: log
> enabled: true
> paths:
> - /var/log/nginx/*.log
>
> output.logstash:
> hosts: ['{ip}:5044']
> EOF
#新添日志路径,把数据发送到当前网络5044端口 (logstash 端口)
docker run --name filebeat --user=root -d --net elkwork --volume="/usr/local/nginx/logs:/var/log/nginx/" --volume="/mnt/filebeat/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" --volume="/var/run/docker.sock:/var/run/docker.sock:ro" store/elastic/filebeat:7.1.1
或者:
docker run -d -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m -e ES_MAX_MEM=1024m --name elk sebp/elk
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本