grafana:通过ldap认证登录

一、安装grafana
直接去网址下载适合自己版本的安装包
网址:https://grafana.com/grafana/download?platform=linux
然后使用命令:

dpkg -i  grafana_6.0.2_amd64.deb

这样grafana就安装成功了。
相关配置文件:

二进制运行程序   /usr/sbin/grafana-server
启动脚本  /etc/init.d/grafana-server
grafana环境变量的默认文件  /etc/default/grafana-server
配置文件  /etc/grafana/grafana.ini
配置文件  /usr/share/grafana/default.ini
日志文件  /var/log/grafana/grafana.log
默认的轻量级数据库  /var/lib/grafana/grafana.db
grafana具体的页面显示代码  /usr/share/grafana

二、ldap安装
1.安装

# sudo apt-get install slapd ldap-utils

2.配置

#dpkg-reconfigure slapd

下面就是具体配置设置:

Omit OpenLDAP server configuration? ... No
DNS domain name: ... sscc.com        //根据自己需要输入,但必须和后面的相关地方保持一致
Name of your organization: ... Whatever & Co
Admin Password: XXXXX
Confirm Password: XXXXX
OK
BDB
Do you want your database to be removed when slapd is purged? ... No
Move old database? ... Yes
Allow LDAPv2 Protocol? ... No

3.查询配置情况

ldapsearch -x -LLL -H ldap:/// -b dc=sscc,dc=com dn

输出结果:
    dn: dc=sscc,dc=com

    dn: cn=admin,dc=sscc,dc=com

这样ldap就安装成功了。

三、安装phpldapadmin
为了能更好的对ldap进行增加用户、删除用户、添加组等等,所以我们安装phpldapadmin。
1.安装

# apt-get install phpldapadmin

2.配置
其中,servers->Setvalue选项要注意dc选项:

$servers = new Datastore();

$servers->setValue('server','name','Local LDAP Server');

$servers->setValue('server','host','xx.xxx.xxx.xxx');

$servers->setValue('server','base',array('dc=sscc,dc=com'));   //这个要改

$servers->setValue('login','auth_type','session');

$servers->setValue('login','bind_id','cn=admin,dc=sscc,dc=com');//这个要改

$servers->setValue('appearance','password_hash','');

$servers->setValue('login','attr','dn');

然后就可以在浏览器上输入ip地址+/phpldapadmin登录ldap的管理页面,然后可以进行相应操作。
问题一:
phpldapadmin管理页面会显示这个错误:

Error trying to get a non-existant value (appearance,password_hash)

解决方案:
修改/usr/share/phpldapadmin/lib/TemplateRender.php中的一行,

$default = $this->getServer()->getValue('appearance','password_hash'); 

修改为下面一行,即可

$default = $this->getServer()->getValue('appearance','password_hash_custom');

四、grafana使用ldap认证登录
1.修改grafana配置文件中关于ldap认证登录相关部分
修改/usr/share/grafana/conf/defaults.ini中的内容

#################################### Auth LDAP ###########################
[auth.ldap]
enabled = true ##这里修改为true
config_file = /etc/grafana/ldap.toml
allow_sign_up = true

# LDAP backround sync (Enterprise only)
sync_cron = @hourly
active_sync_enabled = false

修改/etc/grafana/ldap.toml中的内容

[[servers]]
host = "xxx.xxx.xxx.xxx" 修改为ip
port = 389
use_ssl = false
start_tls = false
ssl_skip_verify = false

bind_dn = "cn=admin,dc=sscc,dc=com"  #修改为安装ldap设置时的domain name
bind_password = '123456'   #修改ldap设置的密码

search_filter = "(cn=%s)"

search_base_dns = ["dc=sscc,dc=com"]
#下面三个是根据ldap有没有memberof属性来开启的,如果有就设置为如下,反之则注释掉。
group_search_filter = "(&(objectClass=posixGroup)(memberUid=%s))"
group_search_base_dns = ["cn=users,dc=sscc,dc=com"]
group_search_filter_user_attribute = "cn"

[servers.attributes]
name = "givenName"
surname = "sn"
username = "cn"
member_of = "dn"  #如果ldap有memberOf属性,则设置为memberOf,反之设置为dn
email =  "email"

#设置具体的ldap组与grafana角色的映射

[[servers.group_mappings]]
group_dn = "cn=users,dc=sscc,dc=com"
org_role = "Editor"
org_id = 2

[[servers.group_mappings]]
group_dn = "*"
org_role = "Viewer"
org_id = 3

注:
这里有一个重点 posixGroup添加memberUid属性,并将用户添加到该用户组下:
grafana:通过ldap认证登录_第1张图片
这里关于phpldapadmin如何创建用户组以及用户,就不多赘述了,详情可以参考这篇文章:https://www.cnblogs.com/xiaomifeng0510/p/9564688.html

最后重启grafana,然后在登录页面就 可以使用ldap用户登陆了。

service grafana-server restart

viewer权限的登录:
grafana:通过ldap认证登录_第2张图片

看了全文如果对你有帮助,帮忙点个赞,如果有什么问题,欢迎留言讨论。

你可能感兴趣的:(zabbix)