如何在 Ubuntu 22.04 上安装 Nagios 服务器教程

简介

在本教程中,我们将解释如何在 Ubuntu 22.04 上安装和配置 Nagios,使用 Apache 作为 Web 服务器,并通过 Let’s Encrypt Certbot 使用 SSL 证书进行保护。

Nagios 是一个强大的监控系统,它可以帮助组织在 IT 基础设施问题影响关键业务流程之前识别并解决它们。本教程将指导你完成在 Ubuntu 服务器上安装和配置 Nagios 的步骤。

安装和配置步骤

第一步:更新系统软件包

在安装任何软件之前,重要的是将系统软件包更新到最新版本。

sudo apt update
sudo apt upgrade -y

第二步:安装所需依赖

Nagios 需要安装几个软件包。使用以下命令安装这些依赖项:

sudo apt install -y autoconf gcc make libgd-dev libmcrypt-dev libssl-dev apache2 php libapache2-mod-php7.4 build-essential unzip

第三步:创建 Nagios 用户和组

为 Nagios 创建一个用户和组,以便在其中运行:

sudo useradd nagios
sudo groupadd nagcmd
sudo usermod -a -G nagcmd nagios
sudo usermod -a -G nagcmd www-data

第四步:下载并安装 Nagios Core

从 官方网站 下载 Nagios Core 的最新稳定版本。在撰写本文时,最新版本是 4.5.3

cd /tmp
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.5.3.tar.gz
tar -zxvf nagios-4.5.3.tar.gz
cd nagios-4.5.3

编译并安装 Nagios:

sudo ./configure --with-command-group=nagcmd
sudo make all
sudo make install
sudo make install-init
sudo make install-config
sudo make install-commandmode
sudo make install-webconf

安装 Nagios 插件

Nagios 使用插件来监控服务。下载并安装 最新的 Nagios 插件:

cd /tmp
wget https://nagios-plugins.org/download/nagios-plugins-2.4.10.tar.gz
tar -zxvf nagios-plugins-2.4.10.tar.gz
cd nagios-plugins-2.4.10

编译并安装插件:

sudo ./configure --with-nagios-user=nagios --with-nagios-group=nagios
sudo make
sudo make install

第五步:配置 Nagios Web 界面

通过为访问 Web UI 创建管理员用户来设置 Nagios Web 界面:

sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

启动 Nagios 服务并使其在启动时启动:

sudo systemctl start nagios
sudo systemctl enable nagios

第六步:配置防火墙

我们需要在防火墙中添加 HTTP 和 HTTPS 端口。

ufw allow 80/tcp
ufw allow 443/tcp
ufw reload

第七步:配置 Apache Web 服务器

为你的域名配置 Apache。

修改你域名的现有虚拟主机文件:

sudo nano /etc/apache2/sites-available/nagios.conf

注意:yourdomain.com 替换为你的域名,并将 admin@yourdomain.com 替换为你的电子邮件 ID。添加以下配置:

<VirtualHost *:80>
    ServerAdmin admin@yourdomain.com
    ServerName yourdomain.com
    DocumentRoot /usr/local/nagios/share

    ErrorLog ${APACHE_LOG_DIR}/nagios_error.log
    CustomLog ${APACHE_LOG_DIR}/nagios_access.log combined

     <-- 所有现有内容都放在这里 -->

</VirtualHost>

启用站点和所需的 Apache 模块:

a2enmod cgi
sudo a2ensite nagios.conf
sudo a2enmod cgi rewrite
sudo systemctl restart apache2

第八步:使用 Let’s Encrypt 安装和配置 SSL

安装 Certbot:

sudo apt install certbot python3-certbot-apache -y

获取并安装 SSL 证书:

sudo certbot --apache -d yourdomain.com

按照提示完成 SSL 安装。Certbot 将自动配置 Apache 以使用新的 SSL 证书。

第九步:访问 Nagios Web 界面

打开你的 Web 浏览器并导航到 Nagios Web 界面:

http://<domain-name>/

使用用户名 nagiosadmin 和你之前设置的密码登录。

第十步:验证 Nagios 配置

要确保 Nagios 正常工作,你可以检查其配置:

sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Output:

Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 2024-06-11
License: GPL

Website: https://www.nagios.org
Reading configuration data...
    Read main config file okay...
    Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
    Checked 8 services.
    Checked 1 hosts.
    Checked 1 host groups.
    Checked 0 service groups.
    Checked 1 contacts.
    Checked 1 contact groups.
    Checked 24 commands.
    Checked 5 time periods.
    Checked 0 host escalations.
    Checked 0 service escalations.
Checking for circular paths...
    Checked 1 hosts
    Checked 0 service dependencies
    Checked 0 host dependencies
    Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:  0

Things look okay - No serious problems were detected during the pre-flight check

添加监控服务

你可以通过编辑 /usr/local/nagios/etc/objects/ 中的配置文件来添加要监控的主机和服务。以下是如何添加新主机的示例:

打开 hosts.cfg 文件:

sudo nano /usr/local/nagios/etc/objects/hosts.cfg

添加新的主机定义:

define host {
    use                  linux-server
    host_name            example-host
    alias                Example Host
    address              192.168.1.100
    max_check_attempts    5
    check_period          24x7
    notification_interval 30
    notification_period   24x7
}

保存并关闭文件。

定义新服务

服务是你想要监控的主机的各个方面(例如,HTTP、PING)。

打开 services.cfg 文件:

sudo nano /usr/local/nagios/etc/objects/services.cfg

添加服务定义:

define host {
    use                     linux-server
    host_name               example-host
    alias                   Example Host
    address                 192.168.1.100
    max_check_attempts      5
    check_period            24x7
    notification_interval   30
    notification_period     24x7

保存并关闭文件。

重启 Nagios 以应用更改:

sudo systemctl restart nagios

结尾

你已经成功地看到了如何在 Ubuntu 22.04 服务器上安装和配置 Nagios。你现在可以开始添加主机和服务来有效地监控你的网络和系统基础设施。有关更详细的配置和自定义,请参阅官方 Nagios 文档。

我的博客:https://blog.ivwv.site

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/951196.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【TI毫米波雷达】DCA1000不使用mmWave Studio的数据采集方法,以及自动化实时数据采集

【TI毫米波雷达】DCA1000不使用mmWave Studio的数据采集方法&#xff0c;以及自动化实时数据采集 mmWave Studio提供的功能完全够用了 不用去纠结用DCA1000低延迟、无GUI传数据 速度最快又保证算力无非就是就是Linux板自己写驱动做串口和UDP 做雷达产品应用也不会采用DCA1000的…

MYSql------视图

什么是视图 定义&#xff1a;视图是一种虚拟的表&#xff0c;它是基于 SQL 查询语句的结果集而建立的。视图并不存储实际的数据&#xff0c;而是根据查询语句从一个或多个实际的表中提取数据&#xff0c;类似于存储在数据库中的预定义查询。作用&#xff1a; 简化复杂查询&…

基于Matlab的变压器仿真模型建模方法(13):单相升压自耦变压器的等效电路和仿真模型

1.单相升压自耦变压器的基本方程和等效电路 单相升压自耦变压器的接线原理图如图1所示。在建立自耦变压器的基本方程时,仍然把它看成是从双绕组变压器演变而来。在图1中,设节点a到节点b部分的绕组的匝数为,对应于双绕组变压器的原边绕组;节点c到节点a部分的绕组的绕组匝数为…

电脑之故障检测(Computer Fault Detection)

电脑之故障检测 在日常使用电脑的过程中&#xff0c;我们难免会遇到各种各样的故障。从简单的软件冲突到复杂的硬件损坏&#xff0c;这些问题往往让人头疼不已。然而&#xff0c;掌握一些基本的电脑故障检测方法&#xff0c;可以帮助我们快速定位问题所在&#xff0c;并采取相…

Jmeter-压测时接口如何按照顺序执行

Jmeter-压测时接口如何按照顺序执行-临界部分控制器 在进行压力测试时&#xff0c;需要按照顺序进行压测&#xff0c;比如按照接口1、接口2、接口3、接口4 进行执行 查询结果是很混乱的&#xff0c;如果请求次数少&#xff0c;可能会按照顺序执行&#xff0c;但是随着次数增加…

unity学习15:预制体prefab

目录 1 创建多个gameobject 2 创建prefab 2.1 创建prefab &#xff08;类&#xff09; 2.2 prefab 是一个文件 2.3 prefab可以导出 3 创建prefab variant &#xff08;子类&#xff09; 3.1 除了创建多个独立的prefab&#xff0c; 还可以创建 prefab variant 3.2 他…

(七)Linux库的串口开发

文章目录 基于官方提供的串口测试代码部分解析代码部分1. usage 函数2. opt_parsing_err_handle 函数3. sig_handle 函数4. init_serial 函数5. serial_write 函数6. serial_read 函数7. run_read_mode 函数8. run_write_mode 函数9. run_loopback_test 函数 进行测试第一步编译…

【Uniapp-Vue3】创建自定义页面模板

大多数情况下我们都使用的是默认模板&#xff0c;但是默认模板是Vue2格式的&#xff0c;如果我们想要定义一个Vue3模板的页面就需要自定义。 一、我们先复制下面的模板代码&#xff08;可根据自身需要进行修改&#xff09;&#xff1a; <template><view class"…

【机器视觉】OpenCV 图像轮廓(查找/绘制轮廓、轮廓面积/周长、多边形逼近与凸包、外接矩形)

文章目录 7. 图像轮廓7.1 什么是图像轮廓7.2 查找轮廓7.3 绘制轮廓7.4 轮廓的面积和周长7.5 多边形逼近与凸包7.6 外接矩形 OpenCV官网 7. 图像轮廓 7.1 什么是图像轮廓 图像轮廓是具有相同颜色或灰度的连续点的曲线. 轮廓在形状分析和物体的检测和识别中很有用。 轮廓的作用…

20250109使用M6000显卡在Ubuntu20.04.6下跑whisper来识别中英文字幕

20250109使用M6000显卡在Ubuntu20.04.6下跑whisper来识别中英文字幕 2025/1/9 20:57 https://blog.csdn.net/wb4916/article/details/144541848 20241217使用M6000显卡在WIN10下跑whisper来识别中英文字幕 步骤&#xff1a; 1、在NVIDIA的官网下载并安装M6000显卡在WIN10下的最…

EtherCAT转CANopen数字油田的高效解决方案

在数字化时代&#xff0c;油田的管理和运作正经历着深刻的变革。传统的油田监测系统受限于通信技术&#xff0c;往往难以满足实时、高效的数据传输需求。面对这一挑战&#xff0c;开疆智能EtherCAT转CANopen网关应运而生&#xff0c;它以其卓越的性能和高度的兼容性&#xff0c…

C语言——文件IO 【文件IO和标准IO区别,操作文件IO】open,write,read,dup2,access,stat

1.思维导图 2.练习 1&#xff1a;使用C语言编写一个简易的界面&#xff0c;界面如下 1&#xff1a;标准输出流 2&#xff1a;标准错误流 3&#xff1a;文件流 要求&#xff1a;按1的时候&#xff0c;通过printf输出数据&#xff0c;按2的时候&#xff0c;通过p…

Android - NDK :JNI实现异步回调

在android代码中&#xff0c;通过JNI调用c层子线程执行耗时任务&#xff0c;在c层子线程中把结果回调到android层&#xff0c; C语言小白&#xff0c;请批评指正&#xff01; android层代码&#xff1a; import androidx.appcompat.app.AppCompatActivity;import android.os.…

Java Web开发进阶——RESTful API设计与开发

随着分布式系统和微服务架构的流行&#xff0c;RESTful API已成为现代Web应用中后端与前端、第三方系统交互的重要方式。本节将深入探讨RESTful API的设计原则、实现方式以及如何使用Spring Boot开发高效、可靠的RESTful服务。 1. 理解RESTful API的设计原则 1.1 什么是RESTfu…

PWR-STM32电源控制

一、原理 睡眠模式不响应其他操作&#xff0c;比如烧写程序&#xff0c;烧写时按住复位键松手即可下载&#xff0c;在禁用JTAG也可如此烧写程序。 对于低功耗模式可以通过RTC唤醒、外部中断唤醒、中断唤醒。 1、电源框图&#xff1a; VDDA主要负责模拟部分的供电、Vref和Vref-…

深兰科技董事长陈海波应邀为华东师大心理学专业师生做AI专题讲座

12月28日&#xff0c;应上海华东师范大学的邀请&#xff0c;上海市科协常委、上海交通大学博士生导师、深兰科技创始人兼董事长陈海波专程到校&#xff0c;为该校心理学专业的全体师生做了一场关于人工智能推动个人数字化未来的专题讲座。 他在演讲中&#xff0c;首先详细讲述了…

ssh2-sftp-client uploadDir Upload error: getLocalStatus: Bad path: ./public

报错解释 这个错误表明在使用 ssh2-sftp-client 这个Node.js库进行目录上传时遇到了问题。具体来说&#xff0c;是指定的本地路径&#xff08;./public&#xff09;不正确或者不存在。 解决方法&#xff1a; 确认当前工作目录&#xff1a;确保你在执行上传操作时的当前工作目…

Vue指令的综合案例

Vue指令的综合案例 参考文献&#xff1a; Vue的快速上手 Vue指令上 Vue指令下 文章目录 Vue指令的综合案例记事本 列表渲染删除功能添加功能底部统计和清空总代码 结语 博客主页: He guolin-CSDN博客 关注我一起学习&#xff0c;一起进步&#xff0c;一起探索编程的无限可能…

2025新春烟花代码(二)HTML5实现孔明灯和烟花效果

效果展示 源代码 <!DOCTYPE html> <html lang"en"> <script>var _hmt _hmt || [];(function () {var hm document.createElement("script");hm.src "https://hm.baidu.com/hm.js?45f95f1bfde85c7777c3d1157e8c2d34";var …

# 网络编程 - 轻松入门不含糊

网络编程 - 轻松入门 介绍 网络编程指的是&#xff0c;在网络通信协议下。实现 不同计算机之间 的数据传输&#xff0c;例如 通信、聊天、视频通话 等。 1. 网络编程概述 学习网络编程过程 中我们可以将网络编程理解为 计算机之间的数据交互 但 前提是通…