elk安装配置

简介:本文介绍了elk(elasticsearch、logstash、kibana)的安装,配置,启动,以及创建用户角色,分享指定内容如dashboard的安全使用elk的方法,也是最全的攻略,笔者的遇到的坑都帮你填平了,一篇文章搞定整个elk。

elk-安装配置使用指南

1、安装包下载、解压、创建独立用户

1.1、安装包下载

cd /opt/elk
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.14.0.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.14.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.14.0-linux-x86_64.tar.gz

1.2、解压安装包

tar -xzf elasticsearch-7.14.0-linux-x86_64.tar.gz
tar -xzf logstash-7.14.0.tar.gz
tar -xzf kibana-7.14.0-linux-x86_64.tar.gz
tar -xzf filebeat-7.14.0-linux-x86_64.tar.gz

1.3、新建用户

启动elasticsearch和kibana 要求以非root用户启动

groupadd elk
useradd elk -g elk
chown -R elk:elk elasticsearch-7.14.0 
chown -R elk:elk kibana-7.14.0-linux-x86_64

2、elk各模块配置安装启动

2.1、elasticsearch部分

创建数据和日志文件夹,并修改权限

mkdir -pv /data/elk/{data,logs}
chown -R elk:elk /data/elk/
2.1.1、修改配置文件config/elasticsearch.yml(单机版加安全验证)

$ vim elasticsearch-7.14.0/config/elasticsearch.yml

path.data: /data/elk/data
path.logs: /data/elk/logs

transport.port: 9301
node.master: true
node.name: node-1 # 设置节点名
network.host: 0.0.0.0 # 允许外部 ip 访问
#cluster.initial_master_nodes: ["node-1"] # 设置集群初始主节点
discovery.seed_hosts: ["127.0.0.1:9301"]
discovery.type: single-node

#http.cors.enabled: true
#http.cors.allow-origin: "*"
#http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length

#xpack.security.authc.accept_default_password: true
xpack.security.enabled: true
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
***使用附录一进行账号密码的配置***
保存后重启ES
进入bin目录,输入”./setup-passwords interactive”初始化密码

内置三个用户:
elastic:内置超级用户
kibana_system:仅可用于kibana用来连接elasticsearch并与之通信, 不能用于kibana登录
logstash_system:用于Logstash在Elasticsearch中存储监控信息时使用
2.1.2、启动
su elk
cd elasticsearch-7.14.0
nohup bin/elasticsearch &
查看启动日志,看是否有异常,如果有,根据提示修改
tail -f nohup.out

其他启动方式
./bin/elasticsearch
或者后台启动
./bin/elasticsearch -d
2.1.3、测试

测试,如下证明启动成功

http://192.168.2.125:9200/
elastic/123456

$ curl -u elastic:123456 192.168.2.125:9200
{
  "name" : "node-1",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "MNe414kdQ3ujgZTQh-LNEw",
  "version" : {
    "number" : "7.14.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "dd5a0a2acaa2045ff9624f3729fc8a6f40835aa1",
    "build_date" : "2021-07-29T20:49:32.864135063Z",
    "build_snapshot" : false,
    "lucene_version" : "8.9.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

2.2、logstash

root下 启动测试案例(测试启动 可以直接看下面正式操作)

cd logstash-7.14.0/
cp config/logstash-sample.conf ./
nohup bin/logstash -f logstash-sample.conf &

root下 配置启动

启动成功之后,启动springboot服务,通过postman接口,发送测试数据,可以看到在kibana界面中存在日志记录

可以logstash传输到redis,再启动一个logstash从redis读取到elasticsearch
2.2.1、配置
1、config/logstash.yml配置
在logstash.yml中配置用户名和密码

xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: "logstash_system"
xpack.monitoring.elasticsearch.password: "123456"
xpack.monitoring.elasticsearch.hosts: ["http://ip:9200"]
2、启动文件配置bin/logstash.conf
input {
    file {
        path => "/opt/elk/test.log"
        start_position => beginning
    }
}

filter {
    json{
        source => "message"
        target => "statinfo"
    }
    date {
        match => [ "[statinfo][t]", "yyyy-MM-dd HH:mm:ss"]
        target => "@timestamp"
    }
}

output {
    elasticsearch {
        hosts => "192.168.2.125:9200"
        index => "statinfo-%{+YYYY.MM.dd}"
        user => "elastic"   #注意这里的和config/logstash.yml配置的用户名不同,需要有写入权限
        password => "123456"
    }
    stdout {
        codec => rubydebug                      # 输出到命令窗口
    }
}

在kibana中http://192.168.2.125:5601/app/management/kibana/indexPatterns创建索引模式[statinfo-*]

2.2.2、启动
root下 启动logstash
nohup ./bin/logstash -f ./bin/logstash.conf &

2.3、kibana

1、配置config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
i18n.locale: "zh-CN"

elasticsearch.username: "kibana_system"
elasticsearch.password: "123456"
2、启动
启动kibana
cd kibana-7.14.0-linux-x86_64
su elk
./bin/kibana
或者后台启动
nohup ./bin/kibana &
3、登录验证
http://192.168.2.125:5601/app/kibana
用超管登录elastic/123456
kibana.yml配置里的kibana/123456无法登录
4、创建用户和角色用于分享dashboard等指定信息
进入kibana之后 
创建角色statinfo,指定索引statinfo-*,权限只读
创建用户statinfo,分配角色statinfo和kibana_dashboard_only_user

2.4、filebeat(没用到可以暂时不用考虑)

root下

cd filebeat-7.14.0-linux-x86_64
2.4.1、启动
nohup  ./filebeat -e -c filebeat.yml &

3、其他相关内容

系统软硬件配置需求:

内存最低4G

/etc/security/limits.conf
# End of file
* soft     nproc          262144
* hard     nproc          262144
* soft     nofile         262144
* hard     nofile         262144
root soft     nproc       262144
root hard     nproc       262144
root soft     nofile      262144
root hard     nofile      262144

附录一、安全登录生成证书

参考https://blog.csdn.net/hhf799954772/article/details/115870012

一、生成证书:
./bin/elasticsearch-certutil ca
#第一个直接回车   第二个直接回车
二、生成秘钥:
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
#第一个直接回车   第二个直接回车  第三个直接回车
三、将凭证迁移到指定目录
# 先创建目录
mkdir ./config/certificates
# 移动凭证至指定目录下
mv ./elastic-certificates.p12 ./config/certificates/
# 赋值权限,不然会出问题
chmod 777 ./config/certificates/elastic-certificates.p12
四、凭证移动至每一台集群下面
#elastic-certificates.p12这个文件移动到每一个es安装目录的相同路径下
五、修改配置文件(每一台es都需要添加)
vim ./config/elasticsearch.yml
# 输入如下的配置

# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length

xpack.security.enabled: true
xpack.security.authc.accept_default_password: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /opt/elk/elasticsearch-7.14.0/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /opt/elk/elasticsearch-7.14.0/config/elastic-certificates.p12
六、在各个节点上添加密码(每一台es都需要操作)
./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
七、逐个启动节点
./bin/elasticsearch -d
八、设置密码
./bin/elasticsearch-setup-passwords  interactive
# 下面会要输入很多密码,都要自己能记住,以后要用
# 需要设置 elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user 这些用户的密码

附录二、springboot项目logstash日志配置(选用:logstash指定文件可不需要此配置)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <!--指定logstash ip:监听端口-->
        <destination>192.168.2.125:9601</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>

    <!--引用springboot默认配置-->
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    
    <root level="INFO">
        <!--使用上述订阅logstash数据tcp传输 -->
        <appender-ref ref="LOGSTASH" />
        <!--使用springboot默认配置 调试窗口输出-->
        <appender-ref ref="CONSOLE" />
    </root>

</configuration>

附录三、kibana dashboard嵌入到web中的简单做法

1、嵌入web页面中,定时刷新kibana dashboard嵌入到web中的简单做法
<!DOCTYPE html>
<html>
  <style type="text/css">
    html, body { margin: 0; padding 0; width: 100%; height: 100%;}
    iframe { border: 0; width: 100%; height: 99%; }
  </style>
  <script language='javascript' type='text/javascript'>
    Hello World!
  </script>
  <body>
   <iframe src="http://xxxxxxx:5602/app/kibana#/dashboard/c964bfe0-d7f3-11eb-aba4-756408fc1114?embed=true&_g=(refreshInterval%3A(pause%3A!t%2Cvalue%3A0)%2Ctime%3A(from%3Anow-12h%2Cmode%3Aquick%2Cto%3Anow))" height="900" width="1800"></iframe>
  </body>
</html>
2、kibana内嵌到web中的定制化问题

参考kibana的dashboard内嵌到web中的定制化问题

kibana内嵌到web中的定制化问题

2个通用的需求:
1.去掉AddFilter按钮
2.自定义传参过滤或者搜索
3、nginx配置(通过nginx配置指定授权的用户)
创建一个用户专门只能查看dashboard的统计图,因为这个是配置到nginx用来免登录的。
root@v:/opt/elk# echo -n 'statinfo:123456' | base64               
c3RhdGluZm86MTIzNDU2

nginx添加配置

server {
    server_name 192.168.2.125;
    listen 5602;

    #listen 443 ssl;
    #ssl on;
    #ssl_certificate ssl.cer;
    #ssl_certificate_key ssl.pem;

    location / {
            proxy_set_header Host $proxy_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Authorization "Basic ZWxhc3RpYzoxMjM0NTY="; # base64-encoded username:password to pass in header
            proxy_pass http://192.168.2.125:5601/;
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容