配置 icinga2 监控.note

noteId: WEB19a88a15860a18a928efc5feda02c586 · 原始路径:/ALL/Linux - A模块/服务配置/监控/icinga/配置 icinga2 监控.note · 图片:59 · 附件待处理:0

 
 
一、配置 icinga2:
配置之前需要为 服务器和客户端配置 FQDN
 
1、配置 icinga2 服务器:
 
(1)安装 icinga2:
# 安装:
apt install -y icinga2 icingaweb2 mariadb-server 
apt install -y icinga2-ido-mysql
如果在debian 12中这里不小心点了 no,也可以使用命令开启:
·在 debian 13中必须使用命令开启,不会自动开启了
icinga2 feature enable ido-mysql
 
提示是否需要自动创建数据库(无所谓,根据题目要求即可):
会自动创建名为 icinga2 的数据库和用户
 
(2)自定义mysql数据库和用户:
# 创建mysql数据库和用户:
mysql
 create database monitor;
 grant all privileges on monitor.* to 'admin'@'%' identified by 'Skills39';
 flush privileges;
 exit
 
# 导入 icinga 数据库表项:
mysql monitor < /usr/share/icinga2-ido-mysql/schema/mysql.sql
自定义数据库之后需要手动编辑 /etc/icinga2/features-enabled/ido-mysql.conf 中的内容
 
# 创建 icingaweb2 数据库(这个也可以不手动创建,下面会Web上会自动创建):
mysql
 create database web;
 grant all privileges on web.* to 'admin'@'%' identified by 'Skills39';
 flush privileges;
 exit
mysql web < /usr/share/icingaweb2/schema/mysql.schema.sql
 
(3)启动 icinga2功能:
与apache2的a2enmod 类似
cd /etc/icinga2
icinga2 feature enable api
icinga2 feature enable command
icinga2 feature enable ido-mysql
或:
icinga2 feature enable api command ido-mysql
此时重启 icinga2会报错,因为 api需要证书
 
(4)创建api证书:
journalctl -xeu icinga2 也能看
# 假设当前FQDN是Server1,证书名就是 Server1.crt,证书字段就需要是 Server1
# 假设当前FQDN是Server1.shanghai.org,证书名就是 Server1.shanghai.org.crt,证书字段就是 Server1.shanghai.org
mkdir /var/lib/icinga2/certs
cd /var/lib/icinga2/certs
cp ~/newcert.pem ./Server1.shanghai.org.crt
cp ~/newkey.pem ./Server1.shanghai.org.key
# chmod 744 Server1.shanghai.org* 不建议这样,改属主就可以了:
cd /var/lib/icinga2/certs    //来到这里ls -la 就能看到目录属主,所以这个属主不用记
chown nagios:nagios Server1.shanghai.org*
·在 debian 13中还必须加上 ca.crt证书:cp cacert.pem /var/lib/icinga2/certs/ca.crt
证书不需要DNS扩展字段
CN 字段必须为FQDN
可以使用 icinga2 daemon -C 查看:
 
重启 icinga2服务:
此时api就会运行在本机tcp 5665端口上了:
 
(5)访问 icinga2 Web界面进行配置:
加上路径 /icingaweb2 进行访问
 
·可以配置直接在根目录进行访问:
# 复制icingaweb2的配置:
路径:/etc/apache2/sites-enabled/icingaweb2.conf
## debian 13:/etc/apache2/conf-enabled/icingaweb2.conf
 
# debian 13 路径:
/etc/apache2/conf-available/icingaweb2.conf
 
# 配置apache2站点:
a2enmod php8.2 proxy_fcgi
a2enconf php8.2-fpm    //debian13中是 php8.4了
vim /etc/apache2/sites-enabled/000-default.conf
systemctl restart apache2
 
访问:
 
 
点击 web-based setup-wizard 跳转到配置页面,或者将URL上的 authentication/login 替换为 setup
 
按照提示进行,输入其中的命令即可:
 
在 icingaweb2服务器上输入命令,生成 token:
将这个token记录在记事本中,不要遗忘
 
在网页中输入刚刚生成的token:
 
勾选所需的模块即可(Monitoring默认开启):
点击 Next
 
查看软件需求,没有报错就点击下一步:
 
选择认证方式,这里使用数据库用户:
 
输入mysql数据库地址、用户(数据库和用户无需存在,向导完成后会自动创建数据库):
配置成功后可以先点击“Validate Configuration”验证配置:
验证没问题后点击 Next
这里截图没截上,上面的数据库用的是 monitor(这个数据库是存储icingaweb的数据库的,不能使用 icinga2,使用与 icingas相同的数据库可能会出错)
 
点击Next:
 
创建一个用于登录 Web的用户:
 
如果没有特殊要求可以直接点击 Next:
 
选择 ido 数据库:
这个数据库与上面的数据库不同,这个要选择 上面手动创建的,或者安装时自动创建的数据库(icigna2)
配置成功后点击验证配置,没问题后点击下一步:
 
这里可以选择使用api还是本地文件来存储信息:
方式一:指定 api服务器(需要完成上面第三点、第四点才行)
先创建一个 Apiuser:
# 模板:/usr/share/doc/icinga2/markdown/09-object-types.md.gz
 
# 创建 api用户:
vim /etc/icinga2/conf.d/users.conf
在末尾添加:
 
systemctl restart icinga2
# 可以使用命令测试,也可以忽略,直接配置Web
curl -k -u icinga2:Skills39 https://localhost:5665/v1/status
 
网页上输入刚创建的用户,点击验证配置,没问题后点击 Next:
 
方式二:选择本地文件:
在方式这里更改,选择 local Command File
 
 
最后点击finished:
 
点击 登录:
 
登录网站:
 
登录成功:
 
 
2、将 icinga2 提升为主服务器:
icinga2 node wizard
提示本机是否是 客户端/代理设备,如果不是,就输入 n,并开始安装主服务器
 
会自动读取当前主机 FQDN,点击回车
 
名称默认为master;
询问是否需要配置其他区域,按照题目要求来,这里选择 n:
 
指定 api绑定的地址,这里写 0.0.0.0 即可(直接回车也是 0.0.0.0)
指定 api绑定的端口,直接回车就是默认的 5665
询问是否要禁止 include conf.d目录下的配置,输入 n(一定不要输入 y!):
最后重启 icinga2 完成安装:
systemctl restart icinga2
 
 
3、配置 客户端:
 
(1)安装 icinga2:
apt install -y icinga2
 
(2)将 本机设置为 icinga客户端:
agent = 客户端
satellite = 代理
icinga2 node wizard
询问是否是 客户端/代理,输入 y:
会自动读取当前主机 FQDN,点击回车
 
询问 Master节点或satellite的 CN名称,直接输入 Master节点的 FQDN:
 
询问是否要与Master节点建立连接,输入 y:
 
询问Master节点的IP地址,输入Master的IP地址:
 
询问 Master节点的API端口,直接输入回车使用默认的5665:
 
询问是否要添加更多的 Master节点,输入 n:
 
然后它会获取到 Master的证书,并询问你这些信息是否正确,确认无误后,输入 y即可:
 
使用提示的命令,再 Master上生成一个 ticket,然后输入到这里:
Master节点:
debian 13需要加上 --salt 参数:
salt的值:
vim /etc/icinga2/constants.conf
icinga2 pki ticket --cn 'Server2.shanghai.org' --salt 8ca4f664e4...
可以写在文件中执行,这样可以直接复制
 
 
询问api绑定的地址和端口,直接点击回车,使用默认的;
询问是否接受父节点的配置,输入 y:
询问是否接受父节点的命令,输入 y:
 
剩余的选项直接输入回车使用默认值即可
询问是否要添加其他全局区域,输入 n:
询问是否要禁止 include conf.d目录下的配置,输入 n:
重启 icinga2 即可:
systemctl restart icinga2
 
 
(3)在 Master上添加客户端主机记录:
# object Host 的模板在 /etc/icinga2/conf.d/hosts.conf 中
 
/usr/share/doc/icinga2/markdown/09-object-types.md.gz 中也有模板:
 
 
vim /etc/icinga2/zones.conf
# 如果要自定义在网页中显示的名称,可以加上参数 display_name = ""
记得 object Host 后面的名称要加上双引号
systemctl restart icinga2
 
·Web上查看:
等待 1~2分钟:
 
 
自定义显示名称(设置 display_name = "Server2"):
 
 
二、icinga2 监控 SNMP(Cisco):
 
1、配置 服务端:
先按照上面配置好icinga2
# 安装插件,确保SNMP插件存在:
apt install -y monitor-plugins
ls /usr/lib/nagios/plugins/check_snmp
 
# 定义主机:
vim /etc/icinga2/conf.d/hosts.conf
systemctl restart icinga2
 
 
 
2、配置 Cisco:
snmp-server community public ro
 
 
·查看网页: