Elastic(3)+kibana+FileBeat+Mysql

1、ElasticSearch安装
机器IP地址为:192.168.1.111
Mysql提前安装完成
jar包下载:链接:
https://pan.baidu.com/s/1-Jonq9r8ydTDrSl1byGIbQ 
提取码:flut 
1.1解压安装包
tar -zxvf elasticsearch-7.9.2-linux-x86_64.tar.gz
1.2修改elasticsearch.yml
cluster.name: elasticsearch
node.name: node-1
path.data: /home/els/data
path.logs: /home/els/logs
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]
1.3、切换非Root账号
[root]# useradd es 
[root]# passwd es 
[root]# chown -R es:es /home 
[root]# su es
1.4、启动和测试
[es]# cd /home/els/elasticsearch/bin 
[es]# ./elasticsearch -p /home/els/pid -d
浏览器访问:http://192.168.1.111:9200/,出现如下,启动成功

在这里插入图片描述

2、Kibana安装(与ES同一台机器)

2.1、解压
tar -zxvf kibana-7.9.2-linux-x86_64.tar.gz
2.2、kinana.xml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://127.0.0.1:9200"]
elasticsearch.requestTimeout: 30000
i18n.locale: "zh-CN"
2.3、切换es用户并启动
[es bin]# cd /home/kibana/bin/
[es bin]# ./kibana >./log.txt  2>&1 &
2.4、测试
http://192.168.1.111:5601

3、遇到的问题

3.1、kibana-Request Timeout after 30000ms
解决
	配置:elasticsearch.yml network.host
	network.host: 0.0.0.0
	注意关闭防火墙,
重启ES

配置:kibana.yml
	elasticsearch.hosts: ["http://127.0.0.1:9200"] #ES地址不能配置错误
重启Kibana
3.2、[master_not_discovered_exception] null
配置elasticsearch.yml中,initial_master_nodes的值与node.name一致;(单机)
	node.name: node-1
	cluster.initial_master_nodes: ["node-1"]
重启ES
3.3、其他问题详见
引用这篇文章(感谢作者):https://blog.csdn.net/m0_37886429/article/details/72395809

4、FileBeat监控Mysql

学习参考地址:
https://helpcdn.aliyun.com/document_detail/170479.html#section-hyw-06v-cxp

构建图:
在这里插入图片描述

4.1、fileBean相关配置:
  • filebeat.yml
filebeat.inputs:
- type: log
  enabled: false
  paths:
    - /var/log/*.log

filebeat.config.modules:
  path: /etc/filebeat/modules.d/mysql.yml
  reload.enabled: true
  reload.period: 2s


setup.template.settings:
  index.number_of_shards: 1
setup.kibana:
  host: "192.168.1.111:5601"
output.elasticsearch:
  hosts: ["192.168.1.111:9200"]
  • filebeat module中mysql.yml配置,cat /etc/filebeat/modules.d/mysql.yml
 - module: mysql
 # Error logs
  error:
    enabled: true
    var.paths: ["/var/log/mysql/mysqld.log"]

  # Slow logs
  slowlog:
    enabled: true
    var.paths: ["/var/log/mysql/slow-mysql-query.log"]
  • var.paths # 设置为对应日志文件的路径。需要与MySQL配置文件中设置的路径保持一致

  • mysql配置文件如下:cat /etc/my.cnf,此处配置了慢查询和safe日志

[mysqld]
port=3306
user=mysql
basedir=/usr/local/mysql8.0
datadir=/usr/local/mysql8.0/data
socket=/tmp/mysql.sock

log_queries_not_using_indexes = 1
slow_query_log=on
slow_query_log_file=/var/log/mysql/slow-mysql-query.log
long_query_time=0
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysql/mysqld.log

5、Elastic集群(3集群,同一台机器开了3个端口)

  • 启动部署的方式和单台是一样的,配置如下:
安装目录
[root]# cd /home/es
[root]# ls
els1    els2    els3
5.1、els1
[root]# cd /home/es/els1
[root]# ls
data  elasticsearch  logs
[root]# vim /home/es/els1/elasticsearch/config/elasticsearch.yml
  • elasticsearch.yml
# 集群名称
cluster.name: elasticsearch
# 节点名称
node.name: node-1
# Path to directory where to store the data (separate multiple locations by comma):
path.data: /home/es/els1/data
# Path to log files:
path.logs: /home/es/els1/logs

# 网络绑定,写自己的主机
network.host: 0.0.0.0

# 设置对外服务的http端口
http.port: 9200
# 是否允许该节点存储数据,默认开启
node.data: true
# 是否可以成为master节点
node.master: true

# 设置节点间交互的tcp端口,默认是9300,为和单机分开,我设置9301
transport.tcp.port: 9301

#设置集群自动发现机器ip的集合
discovery.seed_hosts: ["192.168.1.111:9301","192.168.1.111:9302","192.168.1.111:9303"]
bootstrap.memory_lock: false
bootstrap.system_call_filter: false


# 指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["node-1","node-2","node-3"]


#允许跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
  • 启动(下面两个节点的启动方式类似)
./elasticsearch -p /home/es/els1/pid  -d
5.2、els2
[root]# cd /home/es/els2
[root]# ls
data  elasticsearch  logs
[root]# vim /home/es/els2/elasticsearch/config/elasticsearch.yml
  • elasticsearch.yml
# 集群名称
cluster.name: elasticsearch
# 节点名称
node.name: node-2
# Path to directory where to store the data (separate multiple locations by comma):
path.data: /home/es/els2/data
# Path to log files:
path.logs: /home/es/els2/logs

# 网络绑定,写自己的主机
network.host: 0.0.0.0

# 设置对外服务的http端口
http.port: 9300
# 是否允许该节点存储数据,默认开启
node.data: true
# 是否可以成为master节点
node.master: true

# 设置节点间交互的tcp端口,默认是9300,为和单机分开,我设置9301
transport.tcp.port: 9302

#设置集群自动发现机器ip的集合
discovery.seed_hosts: ["192.168.1.111:9301","192.168.1.111:9302","192.168.1.111:9303"]
bootstrap.memory_lock: false
bootstrap.system_call_filter: false


# 指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["node-1","node-2","node-3"]


#允许跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
5.3、els3
[root]# cd /home/es/els3
[root]# ls
data  elasticsearch  logs
[root]# vim /home/es/els3/elasticsearch/config/elasticsearch.yml
  • elasticsearch.yml
# 集群名称
cluster.name: elasticsearch
# 节点名称
node.name: node-3
# Path to directory where to store the data (separate multiple locations by comma):
path.data: /home/es/els3/data
# Path to log files:
path.logs: /home/es/els3/logs

# 网络绑定,写自己的主机
network.host: 0.0.0.0

# 设置对外服务的http端口
http.port: 9400
# 是否允许该节点存储数据,默认开启
node.data: true
# 是否可以成为master节点
node.master: true

# 设置节点间交互的tcp端口,默认是9300,为和单机分开,我设置9301
transport.tcp.port: 9303

#设置集群自动发现机器ip的集合
discovery.seed_hosts: ["192.168.1.111:9301","192.168.1.111:9302","192.168.1.111:9303"]
bootstrap.memory_lock: false
bootstrap.system_call_filter: false


# 指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["node-1","node-2","node-3"]


#允许跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
  • (非root账户)如果启动有读写问题,可能是权限问题,当前用的是es账号,切换到root
chown -R es:es /home

然后切换到es,重新启动
全部启动之后查看节点情况:http://192.168.1.111:9200/_cat/nodes?pretty

192.168.1.111 56 95 1 0.01 0.03 0.08 dilmrt * node-1
192.168.1.111 47 95 1 0.01 0.03 0.08 dilmrt - node-3
192.168.1.111 54 95 1 0.01 0.03 0.08 dilmrt - node-2
  • 查看所有的Index

    http://192.168.1.111:9200/_cat/indices

重启之后遇到的报错

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

临时修改
    sysctl -w vm.max_map_count=262144
查看修改结果:
    sysctl -a|grep vm.max_map_count
    结果:vm.max_map_count = 262144

永久修改
    在/etc/sysctl.conf文件最后添加一行
    vm.max_map_count=262144
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值