使用CentOS 8| RHEL 8上的ICinga Director自动化ICinga2配置

时间:2020-02-23 14:30:15  来源:igfitidea点击:

在上一篇文章中,我们讨论了如何在CentOS 8/Rhel 8上安装ICinga2.
在本文中,我们将介绍如何使用名为ICinga Director的工具自动化ICinga2配置。
ICinga Director是一个模块,旨在使ICinga2 Web配置更容易和更快。

ICinga Director有助于通过Web界面添加,监控和删除主机和服务,涉及简单的点,然后单击。

当一个人没有root访问主服务器时,ICinga Director也可以是一个完美的工具。
使用ICinga Director,我们有利于导入和同步主导的对象的优势。

可以在同步ID完成后编辑导入的对象。
ICinga Director支持的一些导入源包括CSV,XML,JSON,PuppetDB,AWS和Yaml。

在CentOS 8上安装ICinga Director

以下步骤将指导我们如何在CentOS 8/Rhel 8上安装ICinga Director 8.我们假设我们拥有ICinga Web2的运行实例。
如果我们没有,请按照以下链接:

在CentOS 8/Rhel 8上安装和配置ICinga 2和ICinga Web 2

如何在CentOS 8/Rhel 8上安装ICinga Web 2

必须安装和启用以下ICingA模块:ReactBundleiplinCubatorPhp ModulesInstall Git和PHP模块

sudo yum install git -y
sudo yum install rh-php71-php-curl rh-php71-php-pcntl rh-php71-php-posix rh-php71-php-sockets rh-php71-php-xml rh-php71-php-zip -y

2.为ICinga Director创建一个空数据库

mysql.

mysql -e "CREATE DATABASE director CHARACTER SET 'utf8';
   CREATE USER Hyman@theitroad IDENTIFIED BY 'director';
   GRANT ALL ON director.* TO Hyman@theitroad;"

PostgreSQL.

psql -q -c "CREATE DATABASE director WITH ENCODING 'UTF8';"
psql director -q -c "CREATE USER director WITH PASSWORD 'director';
GRANT ALL PRIVILEGES ON DATABASE director TO director;
CREATE EXTENSION pgcrypto;"

3.安装IPL.

MODULE_NAME=ipl
MODULE_VERSION=v0.4.0
REPO="https://github.com/Icinga/icingaweb2-module-${MODULE_NAME}"
MODULES_PATH="/usr/share/icingaweb2/modules"
git clone ${REPO} "${MODULES_PATH}/${MODULE_NAME}" --branch "${MODULE_VERSION}"
icingacli module enable "${MODULE_NAME}"

4.安装孵化器

MODULE_NAME=incubator
MODULE_VERSION=v0.5.0
REPO="https://github.com/Icinga/icingaweb2-module-${MODULE_NAME}"
MODULES_PATH="/usr/share/icingaweb2/modules"
git clone ${REPO} "${MODULES_PATH}/${MODULE_NAME}" --branch "${MODULE_VERSION}"
icingacli module enable "${MODULE_NAME}"

5.安装ReactBundle.

MODULE_NAME=reactbundle
MODULE_VERSION=v0.7.0
REPO="https://github.com/Icinga/icingaweb2-module-${MODULE_NAME}"
MODULES_PATH="/usr/share/icingaweb2/modules"
git clone ${REPO} "${MODULES_PATH}/${MODULE_NAME}" --branch "${MODULE_VERSION}"
icingacli module enable "${MODULE_NAME}"

6.安装导演模块

可以使用两种方法安装导演模块:从Git存储库安装到tar包 FileInstallation

从释放tar包安装

使用以下脚本从tar包安装ICinga Director模块:

ICINGAWEB_MODULEPATH="/usr/share/icingaweb2/modules"
REPO_URL="https://github.com/icinga/icingaweb2-module-director"
TARGET_DIR="${ICINGAWEB_MODULEPATH}/director"
MODULE_VERSION="1.7.2"
URL="${REPO_URL}/archive/v${MODULE_VERSION}.tar.gz"
install -d -m 0755 "${TARGET_DIR}"
wget -q -O - "$URL" | tar xfz - -C "${TARGET_DIR}" --strip-components 1

从Git存储库安装

ICINGAWEB_MODULEPATH="/usr/share/icingaweb2/modules"
REPO_URL="https://github.com/icinga/icingaweb2-module-director"
TARGET_DIR="${ICINGAWEB_MODULEPATH}/director"
MODULE_VERSION="1.7.2"
git clone "${REPO_URL}" "${TARGET_DIR}" --branch v${MODULE_VERSION}
cd "${TARGET_DIR}" && git checkout "v${MODULE_VERSION}"

一旦安装成功完成,下一步就是启用它。
这可以通过使用 icingacli在shell或者使用web界面。

在命令行上:

icingacli module enable director

在Web界面上,选择 Configuration/Modules,选择 director模块和选择状态: enable

icinga导演配置管理

创建一个全局对象 /etc/icinga2/zones.conf文件。

object Zone "director-global" {
  global = true
}

Icinga Director使用关系数据库(MySQL,MariaDB或者PostgreSQL)。
我们需要为Director实例创建一个数据库资源。

编辑文件 /etc/icingaweb2/resources.ini并添加以下信息:

请记住使用在创建数据库用户期间使用的密码以及我们使用的数据库类型。

也用来 "utf8"对于Charset.

[Director DB]
type = "db"
db = "mysql"
host = "localhost"
dbname = "director"
username = "director"
password = "director"
charset = "utf8"

配置Director以使用我们在上面创建的数据库资源。

添加以下信息 /etc/icingaweb2/modules/director/config.ini文件:

[db]
resource = "Director DB"

配置Apiuser文件 /etc/icinga2/conf.d/api-users.conf

object ApiUser "director" {
        password = "director"
        permissions = [ "*" ]
}

配置kickstart.ini文件 /etc/icingaweb2/modules/director/kickstart.ini

此文件包含配置为atmiumer的端点(主机 - 主机名),用户名和密码 /etc/icinga2/conf.d/api-users.conf,可解决的主机和端口。

[config]
endpoint = icinga-master
; host = 127.0.0.1
; port = 5665
username = director
password = director

架构创建和数据库kickstart

运行以下内容以创建架构和kickstart一个空数据库:

icingacli director kickstart run
icingacli director migration run --verbose
icingacli director migration pending --verbose

我们已成功配置了ICinga Director,现在可以用于自动化任务和监控。

如何使用ICinga Director将主机添加到ICinga2

以下步骤将指导我们如何使用我们刚刚在上面配置的ICinga Director中添加主机到ICinga2 .Create服务模板

我们需要配置将用于监视系统和服务的服务模板。

在模板中,我们将定义将监视的服务和部分系统。

在此帖子中,我们将创建一个监视系统加载和磁盘使用情况的模板。

要配置此操作,请登录ICinga Web仪表板,导航到左侧面板的"icinga Director"。
选择服务然后选择"服务模板"选项。
要创建新的服务模板,请单击"添加"按钮。

添加模板,如下图所示:

名称:给它一个描述性的名称

check命令:将用于检查监控的命令e.g ssh,ping

允许在代理上运行

单击"添加"以添加服务模板。

对磁盘使用重复相同。

2.创建服务并添加服务模板

我们将从我们创建的模板创建服务:

单击ServeryEtt,然后在"服务"菜单上添加。

为服务设置唯一描述性名称和描述:

接下来,将服务模板添加到我们创建的服务中。
在我们的情况下,我们将添加到标准Linux-Server服务。

单击左窗格上的服务集名称,然后在右上角选择"服务"选项

单击"添加服务"选项卡以添加服务

添加服务,从"导入"下拉列表中选择"服务的名称",然后单击"添加"。

对我们创建的所有服务重复相同。

3.创建主机模板并添加服务

下一步是创建主机并附上上面创建的服务。
这是将用于将新主机用于主节点的新主机。

在ICinga Director中,单击"主机"然后单击"主机模板"

现在单击"添加"以创建新的主机模板。

确保填写以下字段:name:templatecheck命令的描述性名称:hostaliveicinga2代理:yesestablish连接:YesAccepts Config:是

下一步是将服务添加到模板。
单击我们创建的模板,然后单击顶部菜单上的"服务"。

单击"添加服务集"选项卡以添加服务。

选择我们创建的服务集。
在我们的案例中,标准Linux-Server。

此时,已创建主机模板,并添加了服务。
这意味着安装程序现在可以将主机添加到ICinga2中。

4.使用ICinga Director将主机添加到ICinga2

下一步是尝试使用我们配置的ICinga Director将主机添加到我们的ICinga2.

我们将添加一个客户端名称为client02.icinga.theitroad并具有IP 172.16.10.4的客户端。

在ICinga Director中,单击"主机",然后在显示的菜单中选择"主机"。

单击右侧的"添加",然后选择我们创建的主机模板。
在我们的案例中,标准Linux-Server。

给它一个主机名,显示名称和主机IP。

主机名应允许客户端服务器的主机名。

是时候部署了我们到目前为止所做的更改了。
在ICinga Director中,单击"部署",我们将看到尚未部署的许多更改。
单击选项卡"部署XX挂起更改"其中"xx"是挂起部署的数量。

这将使用主机模板添加client02.icinga.onitoad到ICinga。

5.初始化ICingA2客户端

我们需要在Client02上安装必要的ICinga2包以进行监控。

连接到客户端主机,然后下载包:

添加icinga2键:

curl https://packages.icinga.com/icinga.key | apt-key add 

将icinga2存储库添加到服务器:

cat <<EOF >> /etc/apt/sources.list.d/icinga2.list
deb http://packages.icinga.com/ubuntu icinga-bionic main
deb-src http://packages.icinga.com/ubuntu icinga-bionic main
EOF

安装ICinga2.

sudo apt update
sudo apt install icinga2 monitoring-plugins

在客户端上成功安装ICinga2后,下一步正在从ICinga Director仪表板下载部署脚本。

在ICinga导演菜单上,选择"主机",然后在"管理ICinga主机"菜单中选择"主机"选项。

在我们的案例中选择主机, client02.icinga.theitroad然后在右上方的面板上选择"代理"。

下载用于系统的代理部署脚本,在我们的情况下它是Linux。
使用Linux Comandline标题下方的下载按钮。

这是我们将使用的脚本在客户端服务器上运行,以便部署生效。

我们需要将主ICinga主机的主机名设置为客户端/etc/hosts文件:

echo "IP-OF-MASTER master-hostname" >> /etc/hosts
e.g:
echo "172.16.10.2 master-icinga" >> /etc/hosts

在上面的例子中,172.16.10.2是主机的IP和"Master-Icinga"是主的主机名。

在客户端上创建和可执行脚本并将下载文件的内容粘贴到它。

vi deployment-script.sh

使脚本可执行文件:

chmod a+x deployment-script.sh

运行脚本:

./deployment-script.sh

执行成功执行后,脚本将退出,并且必须在客户端中重新启动icinga2服务:

systemctl restart icinga2

测试ICinga2 Director

现在已初始化服务,并且在ICinga2 Web仪表板上可以看到主机。

在仪表板上,单击概述,然后托管我们应该能够在列出的主机中查看新添加的主机:

单击"主机名"时,我们将看到有关客户端的更详细信息。
我们还可以检查我们添加的服务的服务统计信息。