ElasticSearch,kibana安全配置

ElasticSearch,kibana安全配置

小龙 822 2020-03-05

安全设置

我们创建索引的数据有些事很敏感,私密的。不能让任何人都能访问到这些数据,所以需要给ElasticSearch和kibana配置安全管理。
1、在ElasticSearch中配置安全设置,打开配置文件

vim /usr/local/elasticsearch/config/elasticsearch.yml
#添加配置
#开启自带的xpack的验证功能
xpack.security.enabled: true
# ssl的也要打开,不然无法启动
xpack.security.transport.ssl.enabled: true
#拒绝自定义密码
xpack.security.authc.accept_default_password: false
#添加单节点发现模式,如果是单节点服务,不需要配置,否则无法启动
#discovery.type: single-node

2、使用ElasticSearch命令配置内置账户密码,下面图中每一个用户都需要输入两边密码,一次新密码,一次重复密码

/usr/local/elasticsearch/bin/elasticsearch-setup-passwords interactive

anquan1.png
内置用户为elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user,一定要记住所有密码,目前用到了elastic,kibana,别的以后肯定用,只是目前没有涉及。 这里我默认都是123456了
3、配置kibana安全

#打开Kibana配置文件
vim /usr/local/kibana/config/kibana.yml
添加下列配置,配置密码,以及一个任意的长度在32以上的字符串
elasticsearch.username: "kibana"
elasticsearch.password: "123456"
xpack.security.encryptionKey: "something_at_least_32_characters"

4、启动kibana,浏览器输入kibana地址的端口,就会提示输入用户名和密码
anquan2.png
5、配置logstash:修改logstash-mysql.conf配置文件

 vim /usr/local/logstash/config/logstash-mysql.conf 
input {
    stdin {
    }
    jdbc {
      # 数据库  数据库名称为drp,导入数据的表名为goods
      jdbc_connection_string => "jdbc:mysql://192.168.137.1:3306/drp"
      # 用户名密码
      jdbc_user => "root"
      jdbc_password => "mysqladmin"
      # mysql驱动jar包的位置
      jdbc_driver_library => "/usr/local/logstash/lib/mysql-connector-java-5.1.46.jar"
      # mysql的Driver
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      #statement_filepath => "config-mysql/book.sql"
      statement => "select * from goods"
      schedule => "* * * * *"
          #索引的类型
      type => "book"
    }
}
filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}
output {
    elasticsearch {
        # elasticsearch地址端口
        hosts => "127.0.0.1:9200"
        # index名 索引的名称
        index => "drp"
        # 需要关联的数据库中有有一个id字段,对应索引的id号
        document_id => "%{gid}"
	# 用户名
        user => "elastic"
	# 密码
        password => "123456"
    }
    stdout {
        codec => json_lines
    }
}

在下图上可以对用户信息进行修改,如:修改密码,角色赋予
anquan3.png
在下图可以对角色进行控制
anquna4.png