Centos7安装elasticsearch及kibana并进行安全设置
每天多学一点点~
话不多说,这就开始吧…
1.前言
最近真是太忙了~天天加班无休,9 12 7 。。。
但是,再忙,也要抽空学习~
感觉自己快要变成运维了~
2.环境要求
centos7虚拟机(192.168.73.132),jdk1.8(oracle版本,若是openjdk请先卸载)
本文采用6.6.0版本
3.安装elasticsearch
- 解压 elasticsearch 压缩包
- 修改系统配置
- 2.1 设置内核参数
vim /etc/sysctl.conf
添加如下内容:
fs.file-max=65536
vm.max_map_count=262144
sysctl -p 刷新下配置,sysctl -a查看是否生效
如果不成功的(启动es还是失败,不是所有人都碰得到,好像是在7.6碰到了):
rm -f /sbin/modprobe ln -s /bin/true /sbin/modprobe
rm -f /sbin/sysctl ln -s /bin/true /sbin/sysctl
- 2.2 设置内核参数
vim /etc/security/limits.conf
添加以下内容:
- 2.2 设置内核参数
* soft nproc 4096
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
- 2.3 修改进程数
vim /etc/security/limits.d/20-nproc.conf
* soft nproc 4096
配置完成后 要关掉链接窗口,重新打开一个
不能用root用户启动 所以需要在健一个账户
- 2.4 修改es配置文件
vim /usr/local/elasticsearch/elasticsearch-6.6.0/config
# 配置es的集群名称, es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同的集群。
cluster.name: bi-cluster
# 节点名称
node.name: node-master
# 存储数据的目录
path.data: /home/elasticsearch/data
# 存储日志的目录
path.logs: /home/elasticsearch/logs
# 设置绑定的ip地址还有其它节点和该节点交互的ip地址
network.host: 0.0.0.0
# 指定http端口,你使用head、kopf等相关插件使用的端口
http.port: 9200
# 设置节点间交互的tcp端口,默认是9300
transport.tcp.port: 9300
#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。
discovery.zen.ping.unicast.hosts: ["10.108.4.203:9300", "10.108.4.204:9300", "10.108.4.205:9300"]
#如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 - 分裂的大脑 - 这将导致数据丢失
discovery.zen.minimum_master_nodes: 3
http.cors.enabled: true #es5.x版本以上需要,head访问
http.cors.allow-origin: "*"
bootstrap.memory_lock: false #某些系统需要 是因为centos6.x操作系统不支持SecComp,而elasticsearch 5.5.2默认 bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。
bootstrap.system_call_filter: false
- 2.5 修改jvm内存
vim config/jvm.options 默认是1g 原谅我的笔记本不行~
- 2.6 启动es
./bin/elasticsearch 后台启动加 –d参数
查看日志 taif -f -n 50 logs/my-es.log my-es就是在配置文件配置的集群的名字
访问地址:http://192.168.73.132:19200
4.安装kibana可视化平台
- 解压 kibana压缩包
- 修改配置
在root用户下 修改kibana.yml
(1)修改启动的es链接地址
(2)修改地址绑定不然只有本地才能访问
三个参数分别是kibana地址,让外网访问,es地址
- 启动
启动 ./bin/kibana 后台启动 nohuo ./bin/kibana &
netstat -tunlp|grep 15601 查kibana进程 kibana是用node.js写的
访问地址 http://192.168.73.132:15601
注意 如出现异常Kibana server is not ready yet
并且日志 warning][migrations] Another Kibana instance appears to be migrating the index. Waiting for that migration to complete. If no other Kibana instance is attempting migrations, you can get past this message by deleting index .kibana_1 and restarting Kibana.
参考博客 https://www.cnblogs.com/changchangchang/p/12060302.html
停止kibana
service kibana stop
删除kibana索引
curl -XDELETE http://localhost:19200/.kibana* # localhost:19200安装 elasticsearch的地址
启动kibana
service kibana start
这样就可以访问了~
5.nginx安全设置
因为kibana自带的账号密码认证是收费的。所以这里用nginx配置
user root;
worker_processes 1;
pid /usr/local/nginx/logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
# 负载均衡配置 配置在http模块
upstream my.kibana.com{
server 192.168.73.132:15601 weight=10 max_fails=2 fail_timeout=30s;
}
server{
listen 7000;
server_name my.kibana.com;
access_log /usr/local/nginx/logs/my.kibana.com/my.kibana.com_access.log main;
error_log /usr/local/nginx/logs/my.kibana.com/my.kibana.com_error.log warn;
location / {
auth_basic "login";
auth_basic_user_file /usr/local/nginx/conf/htpasswd; #密码生成地址:http://www.matools.com/htpasswd
autoindex on;
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://my.kibana.com;
}
}
}
htpasswd文件里内容
配置好之后启动nginx
./sbin/nginx -c /usr/local/nginx/conf/nginx-kibana.conf #以配置文件启动
这样,我们登陆nginx代理地址
http://192.168.73.132:7000 输入账号密码即可访问
6.结语
世上无难事,只怕有心人,每天积累一点点,fighting!!!