码迷,mamicode.com
首页 > 其他好文 > 详细

ELK搭建

时间:2020-09-07 19:04:27      阅读:40      评论:0      收藏:0      [点我收藏+]

标签:ref   store   nlp   developer   cti   设置ip   gis   ons   java环境   

搭建ELK

Elasticsearch搭建

由于Elasticsearch要求不能使用超级用户root运行,所以下载、解压、启动,以及data和logs目录的建立,都使用普通账号即可

环境准备
需要java环境,也就是需要安装jdk,参考链接:https://www.jianshu.com/p/10949f44ce9c

yum -y list java*                                 # 列出所有java版本            
yum install -y java-1.8.0-openjdk-devel.x86_64    # 安装java,默认安装的jdk在/usr/lib/jvm下
java -version

下载
当前下载的是elasticsearch-7.6.2-linux-x86_64.tar.gz,下载链接:https://www.elastic.co/cn/downloads/elasticsearch

解压

tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz && cd elasticsearch-7.6.2

配置修改
1.创建普通账号下的2个目录/data/es_store/data和/data/es_store/logs,用于保存ES的数据和运行日志

2.修改config目录下的elasticsearch.yml

node.name: node-1    			 # ES在该机器上的名称
path.data: /data/es_store/data    # ES保存数据的目录
path.logs: /data/es_store/logs    # ES保存运行日志的目录
network.host: 0.0.0.0             # 设置ip地址为0.0.0.0之后,ES才可以对外提供服务
cluster.initial_master_nodes: ["node-1"]    # ES要加入的集群列表(此时单点)

启动

./bin/elasticsearch -d            # -d表示后台运行

启动后可能出现以下问题

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
# 执行以下命令解决然后再次启动
sudo sysctl -w vm.max_map_count=262144

测试

curl http://ip:9200/?pretty

常见问题
https://segmentfault.com/a/1190000011899522

API

参考:

common options

elasticsearch python api

1.python调取es api 2.connect the python client to elasticsearch 3.Searching Data 4.Python Elasticsearch DSL 查询、过滤、聚合操作实例

?pretty=ture    # 返回更pretty的格式
?format=ymal    # 返回yaml格式
?human=false    # 返回更人类可读的格式

filter_path    # 用于过滤返回的结果

api

GET /_cluster/allocation/explain    # 获取集群的分片说明
GET /_cat/indices    # 获取所有索引状态
GET /_cat/indices/<index>    # 获取索引的状态(可使用正则)

Filebeat搭建

下载
当前下载的是filebeat-7.6.2-linux-x86_64.tar.gz,下载链接:https://www.elastic.co/cn/downloads/beats/filebeat

解压

tar -zxvf filebeat-7.6.2-linux-x86_64.tar.gz && cd filebeat-7.6.2-linux-x86_64

配置修改
修改当前目录下的filebeat.yml

filebeat.inputs:
- input_type: log
  enabled: true
  close_inactive: 30s
  paths:
    - /data/logs/websocket/*.log          # 要采集的日志文件

output.elasticsearch:
  hosts: ["http://10.193.161.32:9200"]    # 日志采集后流入的ES服务的集群列表(此时单点)
  index: "ime-adapter-log-%{+yyyyMMdd}"

# 下面的未采用
setup.template:
  name: ‘ime-adapter-log‘
  pattern: ‘ime-adapter-log-*‘
  enabled: false

setup.ilm.enabled: false

启动

nohup ./filebeat -e -c filebeat.yml -d publish > filebeat.log &

-e 日志输出到stderr并禁用syslog/file输出
-c 指定配置文件
-d 启用对指定选择器的调试,publish可以看到完整的event信息

测试
查看日志filebeat.log

filebeat保持文件状态

registry目录下的filebeat/data.json文件保存了每个文件的状态(harvester读取的最后一个偏移量)

参考:
filebeat
filebeat模块与配置

Kibana搭建

下载
当前下载的是kibana-7.6.2-linux-x86_64.tar.gz,下载链接:https://www.elastic.co/cn/downloads/kibana

解压

tar -zxvf kibana-7.6.2-linux-x86_64.tar.gz && cd kibana-7.6.2-linux-x86_64

修改配置
在config目录下修改kibana.yml

server.port: 5601
server.host: "0.0.0.0"                              # 所有ip都能访问kabana服务,如果用localhost只能本机访问
elasticsearch.hosts: "http://localhost:9200"        # kibana服务所连接的ES服务
logging.dest: /data/es_store/logs/kibana.log        # 输出的日志

启动
在bin目录下执行:

nohup ./kibana &

注意,kibana启动后是无法用ps -ef | grep kibana找到进程的,主要原因大概是kibana是用node写的,所以kibana运行的时候是在node里面。

netstat -tunlp | grep 5601    # 查找进程id,123881即进程id
tcp        0      0 127.0.0.1:5601          0.0.0.0:*               LISTEN      123881/./../node/bi 

测试和使用
https://www.cnblogs.com/yiwangzhibujian/p/7137546.html

ELK搭建

标签:ref   store   nlp   developer   cti   设置ip   gis   ons   java环境   

原文地址:https://www.cnblogs.com/sincere-ye/p/13574564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!