文章目录
许可证
修改宿主机系统参数
1.设置最大虚拟内存
sudo sysctl -w vm.max_map_count=262144
不同主机共享磁盘
创建网络
docker network create --driver=bridge --subnet=192.168.0.0/24 kd-net
安装 elk
拉取镜像:
sudo docker pull sebp/elk:7.13.2
参考配置
新建文件目录
1.新建目录:
mkdir -p /data/sepb-elk/logstash/conf.d
mkdir -p /data/sepb-elk/data/fd-logs/json /data/sepb-elk/data/fd-logs/java /data/sepb-elk/data/repo /data/sepb-elk/data/data /data/sepb-elk/data/logs /data/sepb-elk/data/sindb_path/
touch /data/sincedb_path/javalog.db /data/sincedb_path/jsonlog.db
chmod a+w /data/sincedb_path/javalog.db /data/sincedb_path/jsonlog.db
chmod a+w /data/sepb-elk/data/ -R
2.新建文件 :
/data/sepb-elk/logstash/logstash.yml
# 配置文件读取路径
path.config: /etc/logstash/conf.d/*.conf
# 日志输出路径
path.logs: /var/log/logstash
运行容器:
docker run -d --network=kd-net --ip=192.168.0.3 --env TZ=Asia/Shanghai -v /data/sepb-elk/data:/data -v /data/sepb-elk/logstash/conf.d:/etc/logstash/conf.d -v /data/sepb-elk/logstash/logstash.yml:/etc/logstash/logstash.yml -p 127.0.0.1:5601:5601 -p 9200:9200 -p 5044:5044 --restart=always -it --name elk sebp/elk:7.13.2
开启密钥访问
1.进入容器:
docker exec -it elk bash
2.生成证书:
/opt/elasticsearch/bin/elasticsearch-certutil cert -out /etc/elasticsearch/elastic-certificates.p12 -pass ""
3.修改证书拥有者(生成的文件拥有者默认root,容器的执行者默认是elasticsearch):
chown elasticsearch:elasticsearch /etc/elasticsearch/elastic-certificates.p12
4.修改 elastic 配置,增加下面的行:
vim /etc/elasticsearch/elasticsearch.yml
# 单节点,注释节点配置!!!
# cluster.initial_master_nodes: ["elk"]
discovery.type: single-node
# 这三个路径一定要设置,不能容器删了,连数据也没了,到时哭爹妈也没用!!!
path.data: /data/data
path.logs: /data/logs
# 记得要注释掉前面相同的配置
path.repo: /data/repo
# 如果是免费xpack版本,及type为basic,需要开启ssl
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
5.重启
/etc/init.d/elasticsearch restart
6.为 elasticsearch
用户设置密码:
# 指定生成密码
/opt/elasticsearch/bin/elasticsearch-setup-passwords interactive
// 或
# 自动生成密码
/opt/elasticsearch/bin/elasticsearch-setup-passwords auto
7.修改 kibana
的配置
vim /opt/kibana/config/kibana.yml
elasticsearch.username: "kibana"
elasticsearch.password: "*******"
其他的安装方式不清楚,但是 sebp/elk 改这两个就可以。如果登不进去,看下系统的内存,可能是内存爆了,kibana根本启动不起来,所以连日志也没有。
8.重新运行容器:
docker restart elk
9.浏览器 kibana
访问 :http://localhost:5601
(本地部署)
命令
查看版本
curl -u elastic:123456 -XGET es_ip:es_port
或者进入 elasticsearch
的安装子目录的 lib
:
查看证书
curl -u elastic:123456 -XGET 'http://localhost:9200/_license'
快照
分两步:
- 注册快照位置:
curl -u elastic:123456 -XPUT 172.17.0.3:9200/_snapshot/my_backup -H "Content-Type: application/json" -d '{"type":"fs","settings":{"location":"/data/repo/hello"}}'
my_backup 是自己起的仓库名字
- 生成快照
curl -u elastic:123456 -XPUT 172.17.0.3:9200/_snapshot/my_backup/snapshot001?wait_for_completion=true -H "Content-Type: application/json" -d '{"indices":"sjy_index,economic_index","ignore_unavailable":true,"include_global_state":true}'
snapshot001 是快照的编号
部署注意
1.JVM
参数能不动就不动。
2.指定 cluster.name
的名字。
3.修改路径 path.data
、path.logs
、path.plugins
、path.repo
。这些默认的是安装路径,如果软件删除了,会这些数据也删了。
4.设置 es
使用的堆内存: export ES_HEAP_SIZE=10g
。参考
5.确保系统允许进程可打开的文件描述符数量足够大,比如:ulimit -n 64000
。
数据查询
创建索引
1.Management - Stack Management - Index Patterns 点击创建索引
查询
问题
kibana时间戳@timestamp超前问题
在下面设置时区:
[1] Elasticsearch中文文档
[2] x-pack兼容elasticsearch版本
[3] ELK实战搭建+x-pack安全认证
[4] Filebeat与Logstash两个工具之间怎样配置SSL加密通信
[5] logstash中metadata
[6] logstash手册 - 推荐
[7] Elasticsearch开启安全验证
[8] Kibana
[9] logstash-pattern
[10] logstash - plugin
[11] ELK搭建–Docker方式