OpenStack + OpenLDAP + Grafanan + Prometheus

这是一个完整的安装手册,从空白的虚拟机开始,包含源代码和下载软件包。
第一节: 使用本地安装源,安装OpenStack
清理原有的安装源
rm -rf /etc/yum.repos.d/*
新建本地yum安装源
vi /etc/yum.repos.d/centos.repo
centos.repo内容如下
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[iaas]
name=iaas
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1
其中需要将centos和iaas的iso文件挂载到临时目录下并进行拷贝(过程后续补上)
清理yum缓存
yum clean all
接下来需要按照步骤安装 OpenStack
挂载iso文件,需要注意的是,先使用lsblk查看硬件设备的ID,sr0或者sr1是不同的设备ID
mount -o loop /dev/sr0 /media/
创建文件夹 /opt/centos
mkdir /opt/centos
拷贝文件
cp -rvf /media/* /opt/centos/
取消挂载
umount /media
按照上述方式继续准备iaas的安装光盘
搭建ftp服务器,开启并设置自启
yum install vsftpd -y
配置vsftpd的文件,添加一行
vi /etc/vsftpd/vsftpd.conf
anon_root=/opt
剩下的按照日常的openstack 安装步骤进行即可,当完整安装openstack 可以通过浏览器访问
http://192.168.100.10/dashboard 域:demo 用户名:admin 密码:安装完成系统有提示
第二节 替换和更新系统,yum
使用阿里云的镜像资源站 yum.repo
需要注意的是,第二块网卡必须是进行桥接到主机的外部网卡上。查询你的IP地址
ip a
如果看不到IP地址,第二块网卡,那就是你的第二块网卡没有设置DHCP,编辑你的第二块网卡,把网里的配置 BOOTPROTO=none 修改为 dhcp,然后重启网卡 systemctl restart network
vi /etc/sysconfig/netwrok-scripts/ifcfg-ens*
清理yum的缓存
yum clean all
创建本地新的缓存文件
yum makecache
一切准备妥当,接下来更新一下系统
yum update -y
第三节 安装 OpenLDAP
目前系统已经使用阿里云的yum和桥接了外网,执行安装openldap的所有组件
yum install -y openldap-servers openldap-clients openldap-devel compat-openldap migrationtools
复制默认的数据库配置文件并设置正确的权限:
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap/
启动OpenLDAP服务并设置开机自启:
systemctl start slapd
systemctl enable slapd
生成加密的管理员密码,建议使用第三方的工具,这样可以保存你的密码,防止在VM虚拟机中无法直接复制SSHA哈希值,使用slappasswd生成加密密码
slappasswd -s 12345678
命令会输出类似这样的加密字符串:{SSHA}O6R/ZFJ26qabGWhNvejbFlispFuLoMul
请务必复制保存这个加密后的字符串,后续配置会用到。
配置OpenLDAP 2.4+版本的配置不再直接修改slapd.conf文件,而是通过修改/etc/openldap/slapd.d/目录下的LDIF文件来完成。
设置OpenLDAP管理员密码,创建一个名为changepwd.ldif的文件:
vim ~/changepwd.ldif
内容如下(将olcRootPW
的值替换为你刚才生成的加密密码):
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}O6R/ZFJ26qabGWhNvejbFlispFuLoMul
应用配置:
ldapadd -Y EXTERNAL -H ldapi:/// -f ~/changepwd.ldif
导入基本的Schema,这些schema定义了对象类和属性:
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
配置域名和管理员账号,创建另一个LDIF文件(例如changedomain.ldif),注意将dc=yaobili,dc=com替换为你自己的域名,并将olcRootPW的值替换为之前生成的加密密码
vim ~/changedomain.ldif
changedomain.ldif内容如下,注意里面的olcRootPW之前生成的哈希值{SSHA}O6R/ZFJ26qabGWhNvejbFlispFuLoMul
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=admin,dc=example,dc=com" read by * none
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=example,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}O6R/ZFJ26qabGWhNvejbFlispFuLoMul
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=example,dc=com" write by * read
应用域名配置:
ldapmodify -Y EXTERNAL -H ldapi:/// -f ~/changedomain.ldif
创建基础目录结构,创建base.ldif文件,同样,请将dc=example,dc=com替换为你自己的域名
vim ~/base.ldif
dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: example Company
dc: example
dn: cn=admin,dc=example,dc=com
objectClass: organizationalRole
cn: admin
description: Directory Manager
dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=example,dc=com
objectClass: organizationalUnit
ou: Group
导入基础结构,使用管理员凭证(注意:这里使用明文密码,而不是加密后的密码)进行导入:系统会提示你输入密码,如果返回的是59错误,说明你的SSHA密码记错了,我使用的是12345678,确定后,系统提示,adding new entry “dc=example,dc=com” 这样的结构信息
ldapadd -x -D cn=admin,dc=example,dc=com -W -f ~/base.ldif
配置防火墙并测试,允许LDAP服务通过防火墙:注意(如果之前关闭防火墙则不需要设置)
firewall-cmd --add-service=ldap --permanent
firewall-cmd --reload
测试认证(关键步骤),使用以下命令测试管理员绑定是否成功,这可以帮助你避免49错误:
ldapsearch -x -D "cn=admin,dc=example,dc=com" -W -b "dc=example,dc=com"
第四节 安装OpenLDAP的网页端
在CentOS 7.9上成功安装OpenLDAP服务器后,通过网页管理界面(通常是phpLDAPadmin)来访问和操作是一个很常见的选择。下面安装、配置并通过网页访问phpLDAPadmin。
安装EPEL仓库,这个必须要先做好
yum install -y epel-release
安装phpLDAPadmin和PHP:
yum install -y phpldapadmin httpd php
配置HTTPD和phpLDAPadmin,安装完成后,需要进行一些配置才能正常访问。
配置HTTPD访问权限,默认情况下,phpLDAPadmin的配置可能只允许本地访问。你需要修改其配置文件,允许你的网络访问。
编辑配置文件:
vi /etc/httpd/conf.d/phpldapadmin.conf
修改目录权限设置:找到 部分。根据你的Apache版本进行配置:对于Apache 2.4(更常见):确保有 Require all granted 或允许你的IP地
# Apache 2.4 # Require local
# 注释掉这行 Require all granted
# 添加这行允许所有访问(生产环境建议限制IP)
# 或例如 Require ip 192.168.100.0/24 允许特定网段
以上不是必须要处理的,如果配置文件包含 Alias /ldapadmin /usr/share/phpldapadmin/htdocs 就不需要进行更改。
配置phpLDAPadmin连接OpenLDAP,编辑主配置文件:
vi /etc/phpldapadmin/config.php
修改关键配置项(在文件中找到并修改)45:设置服务器名称和Base DN:
找到 $servers->setValue(‘server’,’name’ 和 $servers->setValue(‘server’,’base’,将其值修改为你的OpenLDAP设置
$servers->setValue('server','name','Local LDAP Server'); // 设置一个易识别的服务器名称,大约在291行
$servers->setValue('server','base', array('dc=example,dc=com')); // 替换为你的,大约在305行
设置LDAP服务器主机地址:如果phpLDAPadmin和OpenLDAP在同一服务器,可保留 127.0.0.1,否则需填写OpenLDAP服务器的IP
$servers->setValue('server','host','127.0.0.1'); // 若OpenLDAP在本机则用127.0.0.1,大约在298行
设置登录身份识别属性(重要):确保使用 dn 方式登录,即使用完整的Distinguished Name
$servers->setValue('login','attr','dn'); // 取消注释或确保此设置,大约在397行
// $servers->setValue('login','attr','uid'); // 确保此行被注释,大约在398行
启动服务并通过网页访问,完成配置后,启动服务并通过浏览器访问。
启动Apache HTTP服务器并设置开机自启:
systemctl start httpd
systemctl enable httpd
通过浏览器访问phpLDAPadmin:打开你的浏览器,输入以下地址:注意IP地址
http://192.168.100.10/phpldapadmin
登录的账号:cn=admin,dc=example,dc=com 密码:自己设定的
第五节 OpenStack Keystone 与 OpenLDAP集成
配置Keystone启用域特定驱动,修改Keystone配置文件 /etc/keystone/keystone.conf:
vi /etc/keystone/keystone.conf
在末尾加入
[identity]
# 启用多域后端驱动
domain_specific_drivers_enabled = True
# 指定域配置文件的存放目录
domain_config_dir = /etc/keystone/domains
[assignment]
# 赋值操作通常仍使用SQL驱动
driver = sql
创建域配置目录并设置权限:
mkdir /etc/keystone/domains
chown keystone:keystone /etc/keystone/domains
创建Keystone域,使用OpenStack命令创建一个新域来关联LDAP,不要使用 default, service 等已有域
在执行下面的操作前,需要重点从新查看一下系统配置
vi /etc/keystone/admin-openrc.sh
完整的配置如下,请核对是否一样,其中密码需要修改为你自己的
export OS_PROJECT_DOMAIN_NAME=demo
export OS_USER_DOMAIN_NAME=demo
export OS_PROJECT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=12345678 #这里是你的密码,登录openstack的
export OS_AUTH_URL=http://controller:5000/v3
export OS_IDENTITY_API_VERSION=3
export OS_IMAGE_API_VERSION=2
export OS_AUTH_TYPE=password #这一行一般是没有的,需要补齐一下。
这里检查没有问题了,就是创建一个域名,绑定一下
openstack domain create ldap_domain
openstack domain list
创建域配置文件,在上一步设置的 domain_config_dir 目录(即 /etc/keystone/domains)下,为刚创建的域创建配置文件,文件名格式为 keystone..conf(例如 keystone.ldap_domain.conf)。
以下是配置文件示例,你需要根据你的OpenLDAP实际情况修改
vi /etc/keystone/domains/keystone.ldap_domain.conf
配置内容如下:
[identity]
driver = ldap
[ldap]
url = ldap://192.168.100.10:389 # 如果是SSL则用 ldaps://
user = cn=admin,dc=example,dc=com # 有权限查询用户/组的LDAP绑定用户DN
password = 12345678 # 绑定用户的密码,输入明文密码就可以里,我的是12345678
suffix = dc=example,dc=com # LDAP后缀
user_tree_dn = ou=Users,dc=example,dc=com # 用户的搜索基准
user_objectclass = inetOrgPerson # 用户对象的类
user_id_attribute = uid # 映射为Keystone用户ID的LDAP属性
user_name_attribute = cn # 映射为Keystone用户名的LDAP属性
user_mail_attribute = mail # 映射为Keystone邮箱的LDAP属性
user_pass_attribute = userPassword # 用户密码属性(Keystone本身不验证此密码,认证由LDAP处理)
user_enabled_attribute = shadowExpire # 可选,表示用户启用状态的属性
user_enabled_default = True # 可选,默认用户状态
user_enabled_invert = false # 可选,是否反转启用状态的含义
user_filter = "(objectClass=inetOrgPerson)" # 可选,过滤用户的条件
group_tree_dn = ou=Groups,dc=example,dc=com # 可选,组的搜索基准
group_objectclass = groupOfNames # 可选,组对象的类
group_id_attribute = cn # 可选,映射为Keystone组ID的LDAP属性
group_name_attribute = ou # 可选,映射为Keystone组名的LDAP属性
group_member_attribute = member # 可选,组内成员属性
group_desc_attribute = description # 可选,组描述属性
group_filter = "(objectClass=groupOfNames)" # 可选,过滤组的条件
use_pool = true # 可选,启用连接池
use_tls = false # 可选,是否启用TLS
#tls_cacertdir = /etc/openldap/cacerts # 可选,TLS CA证书目录
# 更多配置选项请参考Keystone官方文档
[assignment]
driver = sql
第六节 prometheus 安装对接
Prometheus Server 安装和配置 Prometheus 服务。
创建系统用户和必要的目录(为了安全和管理方便):
groupadd --system prometheus
useradd -s /sbin/nologin --system -g prometheus prometheus
mkdir /etc/prometheus /var/lib/prometheus
chown prometheus:prometheus /var/lib/prometheus
chmod 755 /etc/prometheus
下载并安装 Prometheus:Prometheus 官方下载页面 获取最新版本的链接。以下以 2.47.2 版本为例
如果提示找不到命令,那就需要安装wget命令, yum install -y wget
wget https://www.thisteam.cn/prometheus-2.47.2.linux-amd64.tar.gz
文件是保存在thisteam服务器上,大约92MB
文件下载后解压缩
tar xvfz prometheus-*.tar.gz
cd prometheus-2.47.2.linux-amd64
将 Prometheus 二进制文件移动到系统目录:
mv prometheus promtool /usr/local/bin/
chown prometheus:prometheus /usr/local/bin/prometheus
chown prometheus:prometheus /usr/local/bin/promtool
将控制台和库文件移动到配置目录:
mv consoles/ console_libraries/ /etc/prometheus/
chown -R prometheus:prometheus /etc/prometheus/consoles
chown -R prometheus:prometheus /etc/prometheus/console_libraries
创建配置文件 prometheus.yml:
vi /etc/prometheus/prometheus.yml
配置文件如下
global:
scrape_interval: 15s # 抓取间隔
evaluation_interval: 15s # 规则评估间隔
scrape_configs:
- job_name: 'prometheus' # 监控 Prometheus 自身
static_configs:
- targets: ['localhost:9090']
# 后续在此添加 OpenStack Exporter 等其他抓取任务
设置配置文件权限:
chown prometheus:prometheus /etc/prometheus/prometheus.yml
创建 Systemd 服务文件 /etc/systemd/system/prometheus.service
vi /etc/systemd/system/prometheus.service
配置如下
[Unit]
Description=Prometheus Monitoring System
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
启动 Prometheus 服务并设置开机自启:
systemctl daemon-reload
systemctl start prometheus
systemctl enable prometheus
检查服务状态:
systemctl status prometheus
通过浏览器访问 http://192.168.100.10:9090 来查看 Prometheus 的 Web 界面。
http://192.168.100.10:9090
部署 OpenStack Exporter
接下来,我们需要部署专门用于从 OpenStack 收集指标的 Exporter。安装基础开发工具和依赖:
yum groupinstall "Development Tools" -y
yum install epel-release -y
yum install python3-pip python3-devel git -y
安装 OpenStack 客户端库:
Prometheus OpenStack Exporter 需要这些库来与你的 OpenStack 环境通信
使用 pip3 安装所需的 Python 库
pip3 install python-cinderclient python-keystoneclient python-neutronclient python-novaclient python-swiftclient python-netaddr prometheus-client
下载与安装 OpenStack Exporter
接下来,获取 Prometheus OpenStack Exporter 的代码并进行安装。
为OpenStack Exporter创建用户和用户组
groupadd --system openstack-exporter
useradd -s /sbin/nologin --system -g openstack-exporter openstack-exporter
安装项目所需的 Python 依赖:
项目根目录通常有 requirements.txt 文件
pip3 install -r requirements.txt
创建目录和配置文档
mkdir -p /etc/openstack-exporter /var/lib/openstack-exporter
chown openstack-exporter:openstack-exporter /var/lib/openstack-exporter
下载文件到本地服务器上
wget https://www.thisteam.cn/openstack-exporter_1.7.0_linux_amd64.tar.gz
tar xvfz openstack-exporter_1.7.0_linux_amd64.tar.gz
安装二进制文件到系统路径:
解压后,你通常会得到一个名为 openstack-exporter 的二进制文件。将其移动到 /usr/local/bin/ 并设置正确的权限。
mv openstack-exporter /usr/local/bin/
chown openstack-exporter:openstack-exporter /usr/local/bin/openstack-exporter
配置 OpenStack 认证信息
Exporter 需要凭据来访问你的 OpenStack API。
准备认证配置文件:
推荐使用 clouds.yaml 文件
mkdir -p /etc/openstack
这个配置可以先打开OpenStack 查看是否存在
vi /etc/openstack/clouds.yaml
这个配置可以登录 http://192.168.100.10/dashboard/project/api_access/ 访问安装好的OpenStack来获取

clouds:
openstack:
auth:
auth_url: "http://controller:5000/v3/"
username: "admin"
password: "12345678"
project_name: "admin"
user_domain_name: "demo" # 根据你的域修改
project_domain_name: "demo" # 根据你的域修改
region_name: "RegionOne"
interface: "public"
identity_api_version: 3
置严格的文件权限:
由于该文件包含敏感信息,务必限制其权限。
chmod 640 /etc/openstack/clouds.yaml
chown root:root /etc/openstack/clouds.yaml
运行 OpenStack Exporter,现在可以启动 Exporter 服务。
验证 Exporter 是否正常工作,检查 Exporter 是否成功采集到 OpenStack 指标。
检查进程是否在运行:
ps aux | grep openstack_exporter.py
直接访问指标端点:使用 curl 或在浏览器中访问 http://192.168.100.10:9090/metrics
curl http://localhost:9090/metrics
如果一切正常,你应该能看到大量以 openstack_ 开头的 Prometheus 指标输出。
配置 Systemd 服务(推荐)
为了管理更方便、实现开机自启,建议将 Exporter 配置为 Systemd 服务。
创建 Systemd 服务文件:
vi /etc/systemd/system/openstack-exporter.service
[Unit]
Description=Prometheus OpenStack Exporter
Documentation=https://github.com/openstack-exporter/openstack-exporter
After=network.target
[Service]
Type=simple
User=openstack-exporter
Group=openstack-exporter
Environment="OS_CLIENT_CONFIG_FILE=/etc/openstack/clouds.yaml"
ExecStart=/usr/local/bin/openstack-exporter \
--web.listen-address=":9090" \
--path.config="/etc/openstack-exporter" \
--path.data="/var/lib/openstack-exporter"
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
重新加载 Systemd 并启动服务:
systemctl daemon-reload
systemctl start openstack-exporter
systemctl enable openstack-exporte
配置 Prometheus 抓取数据
最后,告诉 Prometheus 从哪里获取 OpenStack 的指标数据。
编辑 Prometheus 配置文件(通常是 /etc/prometheus/prometheus.yml):
在 scrape_configs 部分添加一个新的 job。
vi /etc/prometheus/prometheus.yml
- job_name: 'openstack'
static_configs:
- targets: ['localhost:9180'] # 如果 Exporter 和 Prometheus 在同一台服务器
labels:
group: 'openstack'
# 可以添加其他自定义标签,例如 region: 'region1'
重启 Prometheus 服务 以加载新配置
systemctl restart prometheus
在 Prometheus Web 界面验证:
访问 Prometheus 的 Web 界面(默认端口 9090),进入 Status -> Targets。找到名为 openstack 的 job,其状态应为 UP。
第七节 Grafana监控系统安装配置
首先需要创建一个Grafana的yum仓库
vi /etc/yum.repos.d/grafana.repo
仓库内容如下
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
清理yum源的缓存
yum clean all
从新缓存yum 源
yum makecache
开始安装Grafana
yum install -y grafana
启动和配置开机启动
systemctl start grafana-server
systemctl enable grafana-server
配置数据源,通过浏览器访问 http://192.168.100.10:3000 登录Grafana(默认用户名/密码:admin/admin)
添加Prometheus数据源:
名称:OpenStack-Metrics
类型:Prometheus
URL:http://localhost:9090
点击”Save & Test”保存
导入一个监控仪表面板,先安装JSON工具
yum install -y jq
下载OpenStack监控仪表板
curl -L https://grafana.com/api/dashboards/11074/revisions/1/download -o openstack-dashboard.json
通过API导入仪表板(可选方法)
curl -X POST -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_API_KEY" \
http://192.168.100.10:3000/api/dashboards/db -d @openstack-dashboard.json
或者通过Grafana界面导入:
- 点击左侧菜单”+” → “Import”
- 上传JSON文件或输入Grafana.com仪表板ID(如11074)
- 选择Prometheus数据源
- 点击”Import”完成导入
第八节 在文件服务器上设置Samba共享并与LDAP集成
安装Samba
yum install -y samba samba-client samba-common
对samba进行配置
vi /etc/samba/smb.conf
[global]
workgroup = EXAMPLE
realm = EXAMPLE.COM
security = user
passdb backend = ldapsam:ldap://192.168.100.10
ldap admin dn = cn=admin,dc=example,dc=com
ldap suffix = dc=example,dc=com
ldap user suffix = ou=people
ldap group suffix = ou=groups
ldap ssl = off
[student]
path = /srv/samba/student_share
browsable = yes
writable = yes
valid users = @students
force group = students
create mask = 0660
directory mask = 0770
创建共享目录和配置文件夹权限
mkdir -p /srv/samba/student_share
chmod 0770 /srv/samba/student_share
添加一个新的用户组 students
groupadd students
chown root:students /srv/samba/student_share
把已经安装好的Samba连接到LDAP
smbpasswd -w 12345678
启动服务和添加开机启动
systemctl start smb nmb
systemctl enable smb nmb
系统测试与验证,测试LDAP用户认证:使用ldapsearch测试认证
ldapsearch -x -D "uid=student1,ou=people,dc=example,dc=com" -W -b "dc=example,dc=com" "(objectclass=*)"
测试OpenStack与LDAP集成:
openstack user list --domain example_com
第九节 配置用户访问
配置Windows客户端使用LDAP认证
在Windows 10上启用”RSAT: Active Directory Domain Services 工具”
使用以下PowerShell命令配置LDAP支持:在powershell里安装工具
Install-WindowsFeature -Name RSAT-AD-Tools
配置LDAP认证(需要根据域名调整)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "dnsdomain" -Value "example.com"
共享访问测试
在Windows 10客户端上:
打开”文件资源管理器”
在地址栏中输入 \服务器IP\学生共享
使用LDAP用户名和密码进行身份验证
验证是否可以创建、读取和删除文件
监控系统验证
访问Grafana仪表板 (http://服务器IP:3000)
确认能够看到OpenStack资源使用情况数据
验证所有监控面板是否正常工作
测试警报通知功能(如配置)
日常维护任务,定期备份:
备份LDAP数据库
slapcat -v -l ldap-backup-$(date +%Y%m%d).ldif
备份OpenStack数据库
mysqldump -u root -p --all-databases > openstack-backup-$(date +%Y%m%d).sql
第十节 如何Grafana 链接 LDAP数据
Grafana 与 LDAP(轻量目录访问协议)集成后,可以使用 LDAP 服务器中的账户进行登录和权限管理,实现统一认证。
以下是配置 Grafana 与 LDAP 对接的基本步骤:
修改 Grafana 主配置文件:
找到 Grafana 的配置文件 grafana.ini(通常位于 /etc/grafana/ 目录下),启用 LDAP 认证并进行基本设置:
vi /etc/grafana/grafana.ini
配置内容如下
[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml
allow_sign_up = true
重启 Grafana 服务使配置生效。
systemctl restart grafana-server
配置 LDAP 连接细节:
在 /etc/grafana/ldap.toml 文件中详细配置 LDAP 服务器的连接参数、用户查询规则和权限映射。以下是一个配置示例:
vi /etc/grafana/ldap.toml
verbose_logging = true # 启用详细日志,便于调试
[[servers]]
host = "192.168.100.10" # LDAP 服务器地址
port = 389 # 默认端口 389,SSL 通常为 636
use_ssl = false # 是否使用 SSL
start_tls = false # 是否使用 StartTLS
ssl_skip_verify = false # 是否跳过 SSL 证书验证(生产环境建议为 false)
bind_dn = "cn=admin,dc=example,dc=com" # 具有查询权限的 LDAP 管理员账户
bind_password = '12345678' # 管理员密码
search_filter = "(cn=%s)" # 用户搜索过滤器,%s 会被登录名替换
search_base_dns = ["ou=users,dc=example,dc=com"] # 用户搜索的基准 DN
# 属性映射:将 LDAP 属性映射到 Grafana 用户模型
[servers.attributes]
name = "givenName"
surname = "sn"
username = "cn"
member_of = "memberOf"
email = "email"
# 配置 LDAP 用户组到 Grafana 角色的映射
[[servers.group_mappings]]
group_dn = "cn=grafana-admins,ou=groups,dc=example,dc=com"
org_role = "Admin" # 映射为 Grafana 管理员角色
[[servers.group_mappings]]
group_dn = "cn=grafana-editors,ou=groups,dc=example,dc=com"
org_role = "Editor" # 映射为 Grafana 编辑者角色
[[servers.group_mappings]]
group_dn = "*" # 通配符,匹配所有其他用户
org_role = "Viewer" # 映射为 Grafana 查看者角色