安全设置
我们创建索引的数据有些事很敏感,私密的。不能让任何人都能访问到这些数据,所以需要给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
内置用户为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地址的端口,就会提示输入用户名和密码
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
}
}
在下图上可以对用户信息进行修改,如:修改密码,角色赋予
在下图可以对角色进行控制