文章目录
- 一、使用Docker安装ES和Kibana
- 1.创建网络
- 2.安装ES
- 3.安装Kibana
- 4.汉化Kibana
- 二、使用Docker安装openLDAP和phpldapadmin
- 1.安装openLDAP
- 2.安装phpldapadmin
- 3.验证是否安装成功
- 三、关于ES XPack
- 四、ES与LDAP的认证
- 1.编辑elasticsearch.yml
- 2.给用户授权
- 五、Kibana使用LDAP账号
一、使用Docker安装ES和Kibana
my-company根据自己情况修改
1.创建网络
docker network create my-company
2.安装ES
docker run -d --name es --net my-company -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.0
3.安装Kibana
docker run -d --name kibana --net my-company -p 5601:5601 kibana:7.6.0
4.汉化Kibana
docker exec -it kibana bash
修改/usr/share/kibana/config/kibana.yml
elasticsearch.hosts: [ “http://localhost:9200” ]
i18n.locale: “zh-CN”
二、使用Docker安装openLDAP和phpldapadmin
1.安装openLDAP
password改成自己想要的密码
docker run -p 389:389 -p 636:636 \
--volume /data/slapd/database:/var/lib/ldap \
--volume /data/slapd/config:/etc/ldap/slapd.d \
--env LDAP_DOMAIN=my-company.com \
--env LDAP_ADMIN_PASSWORD=password \
--name my-openldap --detach osixia/openldap:1.4.0
2.安装phpldapadmin
docker run -p 443:443 --env PHPLDAPADMIN_LDAP_HOSTS=ip --name phpldapadmin -d osixia/phpldapadmin:0.9.0
访问http://ip:443就可以登陆,账号是 cn=admin,dc=my-company,dc=com 密码是前面openLDAP里面的password,通过可视化界面,我们可以创建组(ou)和人
3.验证是否安装成功
docker exec my-openldap ldapsearch -x -H ldap://ip -b dc=my-company,dc=com -D "cn=admin,dc=my-company,dc=com" -w my-company
三、关于ES XPack
LDAP认证是收费功能,我用的是docker方式安装,所以这步稍微麻烦点,需要使用docker cp等命令,因为写了不能通过,所以请参考下面链接
参考文档
简单的说就是:
1.将容器中的jar包复制到本地
2.反编译工具打开将其中两个文件修改完
3.传回容器中,用容器中的jdk编译
4.复制一份原来的jar解压并替换两个class文件,然后压缩成jar包后替换原来的jar包
四、ES与LDAP的认证
这里主要参考官网
1.编辑elasticsearch.yml
docker exec -it es bash
cd config
cp elasticsearch.yml elasticsearch.ymlbak
vi elasticsearch.yml
添加如下:自行修改ip
xpack:
security:
authc:
realms:
ldap:
ldap1:
order: 0
url: "ldap://ip:389"
bind_dn: "cn=admin, dc=my-company, dc=com"
user_search:
base_dn: "dc=my-company,dc=com"
filter: "(cn={0})"
group_search:
base_dn: "dc=my-company,dc=com"
files:
role_mapping: "/usr/share/elasticsearch/config/role_mapping.yml"
unmapped_groups_as_roles: false
2.给用户授权
不给用户授权就无法登入ES,关于LDAP的设置可以
docker exec -it es bash
#在容器中使用,添加elastic账号的密码
bin/elasticsearch-keystore add \
xpack.security.authc.realms.ldap.ldap1.secure_bind_password
curl -X PUT -u elastic:密码 "localhost:9200/_security/role_mapping/admins?pretty" -H 'Content-Type: application/json' -d'
{
"roles" : [ "monitoring" , "user" ],
"rules" : { "field" : {
"dn" : "cn=test,ou=testgroup,dc=my-company,dc=com"
} },
"enabled": true
}
'
其他API命令可以查看官网
五、Kibana使用LDAP账号
docker exec -it kibana bash
cd config
vi kibana.yml
#添加
elasticsearch.username: "elastic"
elasticsearch.password: "密码"