ELK搭建教程

一、elastic search搭建

1、环境centos->usr目录下创建elk目录,然后在elk目录下分别创建es目录,kibana目录,logstash目录

2、下载对应的.tar.gz包并解压。

elasticsearch-6.5.4, kibana-6.5.4-linux-x86_64, logstash-6.5.4

(这里最好三者的版本号要一致)

3、es从5.0开始,ElasticSearch 安全级别提高了,不允许采用root帐号启动,所以我们要添加一个用户

创建用户组:

groupadd elsearch

创建用户,-g代表把es用户分配到es用户组中,-p代表给es用户设置密码为es123456:

useradd elkroot -g elsearch -p 123456

修改权限,更改elasticsearch文件夹以及内部文件的所属用户以及组为es,-R表示逐级(N层目录)

chown -R elsearch:elsearch /usr/elk/es/elasticsearch-6.5.4

su elkroot

4、修改config目录下的文件elasticsearch.yml

cluster.name: my-application #集群名称

#node.name: node-1 #节点名称

path.data: /usr/elk/es/data/elasticsearch #文件路径

path.logs: /usr/elk/es/logs/elasticsearch #日志路径

network.host:0.0.0.0 #服务IP地址

5、给用户elsearch授予路径权限

chown elkroot:elsearch -R ./*

6、启动报错解决方案:

2、ERROR: [2] bootstrap checks failed

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

[2]: max number of threads [3797] for user [elsearch] is too low, increase to at least [4096]

ElasticSearch启动报错,bootstrap checks failed

修改elasticsearch.yml配置文件,允许外网访问。

vim config/elasticsearch.yml

network.host: 0.0.0.0
启动失败,检查没有通过,报错

[2018-05-18T17:44:59,658][INFO ][o.e.b.BootstrapChecks ] [gFOuNlS] bound or publishing to a non-loopback address, enforcing bootstrap checks

ERROR: [2] bootstrap checks failed

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

编辑 /etc/security/limits.conf,追加以下内容;

  • soft nofile 65536

  • hard nofile 65536

此文件修改后需要重新登录用户,才会生效

[2]: max number of threads [3797] for user [elsearch] is too low, increase to at least [4096]

  • soft nproc 4096

  • hard nproc 4096

[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

编辑 /etc/sysctl.conf,追加以下内容:

vm.max_map_count=655360

保存后,执行:

sysctl -p

重新启动,成功。

7、analysis-ik 6.5.3(中文分词器)

安装执行命令:
bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.3/elasticsearch-analysis-ik-6.5.3.zip
8、启动命令: ./bin/elasticsearch

后台启动: ./bin/elasticsearch -d

使用ps aux|grep elasticsearch可以查看是否启动

二、Logstash实现mysql同步数据到elasticsearch

  1. 安装插件

由于这里是从mysql同步数据到elasticsearch,所以需要安装jdbc的入插件和elasticsearch的出插件:logstash-input-jdbc、logstash-output-elasticsearch

logstash插件安装命令

cd logstash-6.5.4/bin

./logstash-plugin install logstash-input-jdbc

./logstash-plugin install logstash-output-elasticsearch

2.下载mysql的连接库jar包(版本库):
将jar包"mysql-connector-java-8.0.17.jar"
放至logstash-7.6.2\logstash-core\lib\jars目录下
在config目录下,创建配置文件(logstash-mysql-es.conf):

添加如下配置

input {
  jdbc {
    # mysql相关jdbc配置
    jdbc_connection_string => "jdbc:mysql://192.168.3.31:3306/logimis.iot?characterEncoding=utf8&serverTimezone=Asia/Shanghai"
    jdbc_user => "userid"
    jdbc_password => "yourpwd"
    # jdbc连接mysql驱动的文件目录
    jdbc_driver_library => "./config/mysql-connector-java-8.0.17.jar"
    jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
    jdbc_paging_enabled => true
    jdbc_page_size => "50000"
    jdbc_default_timezone =>"Asia/Shanghai"
    # mysqlSQL语句
    statement => "select im_id,im_name, im_updatetime from iot_menu  where im_updatetime>= :sql_last_value "
	# 也可以使用文件
    # statement_filepath => "./config/jdbc.sql"
    # 这里类似crontab,可以定制定时操作,比如每分钟执行一次同步(分 时 天 月 年)
    schedule => "* * * * *"
    #type => "jdbc"
    # 是否记录上次执行结果, 如果为真,将会把上次执行到的 tracking_column 字段的值记录下来,保存到 last_run_metadata_path 指定的文件中
    #record_last_run => true
    # 是否需要记录某个column 的值,如果record_last_run为真,可以自定义我们需要 track 的 column 名称,此时该参数就要为 true. 否则默认 track 的是 timestamp 的值.
    use_column_value => true
    # 如果 use_column_value 为真,需配置此参数. track 的数据库 column 名,该 column 必须是递增的. 一般是mysql主键
    tracking_column => "im_updatetime"
    tracking_column_type => "timestamp"
    last_run_metadata_path => "./logstash_capital_bill_last_id"
    # 是否清除 last_run_metadata_path 的记录,如果为真那么每次都相当于从头开始查询所有的数据库记录
    clean_run => false
    #是否将 字段(column) 名称转小写
    lowercase_column_names => false
#分页
    #jdbc_paging_enabled => true
    #jdbc_page_size => 10000
  }
}
output {
  elasticsearch {
 hosts => "127.0.0.1:9200"
	#索引名可以理解为数据库
    index => "logimis_iot"
    document_id => "%{im_id}"
	#类型可以理解为表
	document_type => "iot_menu"
    #template_overwrite => true
  }

  #这里输出调试,正式运行时可以注释掉
  stdout {
      # codec => json_lines
  } 
}

运行一下命令
./logstash-6.5.4/bin/logstash -f ./logstash-6.5.4/config/logstash-mysql-es.conf
后台执行
nohup ./logstash-6.5.4/bin/logstash -f ./logstash-6.5.4/config/logstash-mysql-es.conf > logs/logstash.out 2>&1 &
停止 logstash
ps -aux|grep logstash

三、Kibana 配置文件 kibana.yaml修改

允许远程访问

server.host: “0.0.0.0”

elasticsearch.username: “elsearch”

elasticsearch.password: “elsearch”

elasticsearch.pingTimeout: 1500

elasticsearch.requestTimeout: 30000

ps -ef|grep kibana

ps -ef|grep 5601

都找不到

尝试 使用 fuser -n tcp 5601

kill -9 端口

ps -ef|grep node 或 netstat -anltp|grep 5601

启动即可 ./kibana

后台启动: nohup ./bin/kibana &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值