日志搜集之ELK
二、 部署安装
环境:
1、jdk环境:
[root@openstack-node7 local]# java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
2、
7.102 es kibana
7.108 es logstash
7.109 es filebast
3、版本均为6.8.9
2.3.安装es(所有节点操作)
1、选择版本
官网:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
配置hosts文件
192.168.7.102 master-node
192.168.7.108 data-node1
192.168.7.109 data-node2
2、获取安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.9.tar.gz
3、解压并建立软连接
mkdir /usr/local/elk
tar zxf elasticsearch-6.8.0.tar.gz
ln -sv /usr/local/src/elasticsearch-6.8.9 /usr/local/elk/es
4、新建安装目录和并授权elk用户
useradd elk
chown -R elk.elk /usr/local/elk/es/
5、配置文件描述符和内核参数
vim /etc/security/limits.conf
# End of file
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072
vim /etc/sysctl.conf
vm.max_map_count = 655360
sysctl -p
设置用户资源参数
vi /etc/security/limits.d/20-nproc.conf
elk soft nproc 65536
6、修改配置文件
vim /config/elasticsearch.yml
[root@master-node es]# egrep -v "^$|^#" config/elasticsearch.yml
cluster.name: es-linux37
node.name: master-node
path.data: /data/es/data
path.logs: /logs/es/logs
network.host: 192.168.7.102
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.7.108", "192.168.7.109","192.168.7.102"]
discovery.zen.minimum_master_nodes: 3
http.cors.enabled: true #解决跨域无法访问问题
http.cors.allow-origin: "*"
7、新建文件夹
mkdir /logs/es/logs -pv
mkdir /data/es/data -pv
chown elk.elk /logs/es/ -R
chown elk.elk /data/es/ -R
8、启动文件(如果log有输出,即正常启动成功)
su - elk
cd /usr/local/elk/es
./bin/elasticseach
#这是提示找不到足够的节点应该是3个节点
其他节点只要修改node.name:和network.host:,都改成自己的IP地址
9、后台执行
#所有节点用elk用户启动服务,后台运行,现在就要看日志看看有什么问题了。root用户启动会报错的得非root用户启动
./bin/elasticsearch -d
节点启动后:日志输出如下为成功启动
在102查看日志,如没有报错即可
9、查看端口
10、浏览器访问测试并查看
#每个节点都可以通过:IP:9200端口查看的,如下图
#可以看到所有节点的json信息
复制然后通过json.cnz转义
网址:json.cn
lsof -i :9300 #每个节点都跟其他节点进行着连接
2.2.安装head插件
ElasticSearch-Head 是一个与Elastic集群(Cluster)相交互的Web前台
ES-Head主要作用
它展现ES集群的拓扑结构,并且可以通过它来进行索引(Index)和节点(Node)级别的操作
它提供一组针对集群的查询API,并将结果以json和表格形式返回
它提供一些快捷菜单,用以展现集群的各种状态
安装npm
由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包
官方网址:https://nodejs.org/en/download/
使用二进制文件节省时间
wget https://nodejs.org/dist/v14.4.0/node-v14.4.0-linux-x64.tar.xz
ln -sv /usr/local/src/node-v14.4.0-linux-x64/bin/node /usr/bin/node
ln -sv /usr/local/src/node-v14.4.0-linux-x64/bin/npm /usr/bin/npm
验证版本
[root@master-node src]# npm -v
6.14.5
[root@master-node src]# node -v
v14.4.0
安装Head插件
github网址:https://github.com/mobz/elasticsearch-head
cd /usr/local/elk/es/plugins
yum install git
git clone git://github.com/mobz/elasticsearch-head.git
修改npm镜像
国外镜像会很慢 ,所以要修改成国内的
npm congfig get registry #查看镜像
npm config set registry https://registry.npm.taobao.org #set命令更改阿里镜像
安装Head
npm install
npm run start
修改配置文件
mkdir /usr/local/elk/plugin
cp -rf mv elasticsearch-head /usr/local/elk/plugin/head
chown -R elk.elk /usr/local/elk/plugin/head
$ vim /home/elk/plugin/head/Gruntfile.js
connect: {
server: {
options: {
port: 9100,
hostname: '*', #增加此行
base: '.',
keepalive: true
$ vim /head/_site/app.js
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://192.168.7.102:9200";
$ cd /home/elk/plugin/head/ #一定要进入此目录下启动命令啊
放到后台运行
yum install -y screen
screen -S head #创建一个head窗口,执行上图启动命令
ctrl A+D #退出窗口
screen -list
screen -r head #进入head窗口
登陆验证