掌握 Linux 中的系统监测和报警

微笑向暖阳 2021-12-30 ⋅ 20 阅读

引言

在 Linux 系统中,系统监测和报警是非常重要的一项任务。通过及时监测系统的运行状态和性能指标,并在发生异常或问题时发送报警通知,可以帮助管理员及时发现和解决问题,以保证系统的稳定性和可用性。本文将介绍一些常用的 Linux 系统监测和报警工具,以及如何使用它们来管理和监测你的系统。

1. 系统监测工具

1.1 top

top 是一个实时监测系统资源使用情况的工具,可以显示各个进程的 CPU 使用率、内存使用情况、系统负载等信息。可以通过以下命令安装 top:

sudo apt-get update
sudo apt-get install top

使用 top 命令启动后,你可以按下键盘上的数字来查看不同的排序方式,如按下 1 可以按 CPU 使用率排序进程。同时按 shift + M 可以按内存使用排序进程。

1.2 iostat

iostat 是一个用于监测系统磁盘 I/O 性能的工具。通过 iostat,你可以获取硬盘的读写速度、每秒的 I/O 请求次数等信息。可以通过以下命令安装 iostat:

sudo apt-get update
sudo apt-get install sysstat

然后,可以使用以下命令启动 iostat:

iostat -d -x

1.3 vmstat

vmstat 是一个用于监测系统虚拟内存使用情况的工具。通过 vmstat,你可以获取与内存相关的统计信息,如内存使用率、交换空间使用率、页操作等。可以通过以下命令安装 vmstat:

sudo apt-get update
sudo apt-get install sysstat

然后,可以使用以下命令启动 vmstat:

vmstat -s

2. 报警工具

2.1 Nagios

Nagios 是一个非常流行的开源系统监测和报警工具,可以实时监测各种网络服务和系统指标,并通过各种通知方式发送报警通知。可以通过以下步骤安装 Nagios:

  1. 安装依赖项:
sudo apt-get update
sudo apt-get install -y autoconf gcc libc6 make wget unzip apache2 php libapache2-mod-php7.0 libgd2-xpm-dev
  1. 下载和编译 Nagios:
wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.5.tar.gz
tar xvf nagios-4.4.5.tar.gz
cd nagios-4.4.5
./configure --with-command-group=nagcmd
make all
sudo make install
sudo make install-commandmode
sudo make install-init
sudo make install-config
sudo make install-webconf
  1. 创建 Nagios 管理员账号:
sudo useradd nagios
sudo passwd nagios
sudo usermod -aG nagios www-data
  1. 启动 Apache 服务:
sudo systemctl enable apache2
sudo systemctl start apache2
  1. 安装 Nagios 插件:
wget https://nagios-plugins.org/download/nagios-plugins-2.3.3.tar.gz
tar xvf nagios-plugins-2.3.3.tar.gz
cd nagios-plugins-2.3.3
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
sudo make install
  1. 配置 Nagios:
sudo nano /usr/local/nagios/etc/objects/contacts.cfg

在文件中添加:

define contact {
    contact_name                    nagios_admin
    alias                           Nagios Admin
    email                           your_email@example.com
    service_notification_period     24x7
    host_notification_period        24x7
    service_notification_options    w,u,c,r,f,s
    host_notification_options       d,u,r,f,s
    service_notification_commands   notify-service-by-email
    host_notification_commands      notify-host-by-email
}
  1. 验证和启动 Nagios:
sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
sudo systemctl enable nagios
sudo systemctl start nagios
  1. 访问 Nagios 控制台:

在浏览器中访问 http://your_server_ip/nagios,使用之前创建的管理员账号进行登录。

2.2 Zabbix

Zabbix 是另一个广泛使用的开源系统监测和报警工具,它提供了实时监测、报警通知、图表和报表等功能。可以通过以下步骤安装 Zabbix:

  1. 安装数据库和 web 服务器:
sudo apt-get update
sudo apt-get install mysql-server mysql-client apache2 php7.0 php7.0-mysql php7.0-gd php7.0-mbstring php7.0-bcmath php7.0-xml libapache2-mod-php7.0
  1. 创建和配置数据库:
sudo mysql -uroot -p
CREATE DATABASE zabbix CHARACTER SET UTF8 COLLATE UTF8_BIN;
GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit;
  1. 安装 Zabbix 服务:
wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+bionic_all.deb
sudo dpkg -i zabbix-release_4.4-1+bionic_all.deb
sudo apt-get update
sudo apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent
  1. 导入 Zabbix 数据库:
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
  1. 配置 Zabbix 服务器:
sudo nano /etc/zabbix/zabbix_server.conf

修改以下行:

DBName=zabbix
DBUser=zabbix
DBPassword=password
  1. 配置 Zabbix 前端:
sudo nano /etc/apache2/conf-enabled/zabbix.conf

修改以下行:

php_value date.timezone Europe/Riga
  1. 启动 Zabbix 服务:
sudo systemctl enable zabbix-server
sudo systemctl start zabbix-server
sudo systemctl enable apache2
sudo systemctl start apache2
sudo systemctl enable zabbix-agent
sudo systemctl start zabbix-agent
  1. 安装 Zabbix Web 界面:

在浏览器中访问 http://your_server_ip/zabbix,按照页面提示进行安装和配置。

结论

通过掌握 Linux 中的系统监测和报警工具,你可以及时监测系统的运行状态和性能指标,并在发生异常或问题时发送报警通知,帮助你及时发现和解决问题,以保证系统的稳定性和可用性。在文章中,我们介绍了一些常用的 Linux 系统监测工具,并详细介绍了 Nagios 和 Zabbix 这两个流行的系统监测和报警工具的安装和配置过程。希望这些内容对你的系统管理工作有所帮助!


全部评论: 0

    我有话说: