Zabbix监控服务部署

Zabbix监控服务部署

1. zabbix简介

1.1 常见的监控软件

  • Nagios

Nagios是一个成熟的、广泛使用的开源监控软件。它支持多种监控方式(如SNMP、NRPE和自定义监控脚本等),提供实时监控、报警通知、数据图表展示等功能。Nagios可通过插件扩展其功能。

  • Zabbix

Zabbix是一个全面的、高度可配置的网络监控和管理系统。它提供了实时监控、警报通知、数据可视化、自动发现等功能,并支持多种监控方式(如被动代理、SNMP、IPMI等)。

  • Prometheus

Prometheus是一个开源的系统监控和警报工具。它通过主动收集和存储时间序列数据,并提供了强大的查询和报警功能。Prometheus具有可扩展性和灵活的数据模型,适用于动态环境下的监控需求。

  • Grafana

Grafana是一个开源的数据可视化工具,可与多种监控系统集成。它提供了高度定制化的仪表板和图表,可以根据需求展示监控指标和数据。Grafana支持多种数据源,如Prometheus、InfluxDB、Elasticsearch等。

  • Datadog

Datadog是一种云基础设施监控和分析平台,支持监控云端和本地的IT资源。它提供实时数据收集、自动化的基础设施发现、自定义仪表板、智能警报等功能。Datadog还支持与其他工具和服务的集成。

  • Splunk

Splunk是一种强大的日志分析和监控平台,能够处理和分析大量的实时和历史数据。它提供了实时搜索、可视化图表、报警通知和自定义应用程序等功能,适用于大规模的日志和事件监控。

监控指标:

  • 硬件:电源、温度
  • 软件:
    • 系统:内存使用率、CPU使用率、磁盘使用率
    • 网络:网卡流量
    • 业务:进程、日志

1.2 关于zabbix

Zabbix是一款开源的网络监控和管理系统,用于监控网络设备、服务器、虚拟机、应用程序、数据库等各种IT资源的运行状态和性能。它提供了广泛的监控功能,包括实时数据收集、报警通知、可视化图表、趋势分析、容量规划等。\n\n以下是Zabbix的一些特点和功能:

  1. 多种监控选项:Zabbix支持多种监控方式,包括主动和被动监控、SNMP、IPMI、JMX、自定义监控脚本等,可以监控多样化的设备和应用。
  2. 灵活的数据收集:Zabbix能够周期性地收集各种指标数据,并可以通过主动轮询或被动代理方式获得实时数据。
  3. 强大的告警功能:Zabbix可以基于监控数据设置灵活的告警规则,并通过多种通知方式(如邮件、SMS、蜂鸣、脚本等)发送告警通知。
  4. 数据可视化和报表:Zabbix提供直观且可定制化的监控数据图表和报表,以便进行性能分析、图表比较以及容量规划等。
  5. 自动化和配置管理:Zabbix支持自动发现设备、应用和服务,并允许远程配置管理、自动化批量配置等。
  6. 安全性和权限控制:Zabbix提供基于角色的权限管理来保护监控数据和系统安全。
  7. 高可用性和扩展性:Zabbix采用分布式架构和高可用性设计,可以部署多个Zabbix服务器和代理,以提供更高的可靠性和性能。

1.3 zabbix主要功能

实时监控

  • 通过主动轮询、被动代理以及其他监控方式,Zabbix能够实时监控网络设备、服务器、应用程序、数据库等各种IT资源的性能和状态。

数据收集和存储

  • zabbix能够收集各种指标数据,如CPU利用率、内存使用、网络流量、磁盘空间等,并将这些数据存储在数据库中供后续分析和展示。

警报通知

  • zabbix可以设置警报规则,一旦监控指标超过预设的阈值,即可触发警报通知,通过邮件、短信、蜂鸣等方式及时地通知管理员。

数据可视化

  • zabbix提供强大的数据可视化功能,能够生成各种图表、趋势分析和报表,帮助用户更好地理解和分析监控数据。

自动发现

  • zabbix能够自动发现网络设备、应用程序和服务,并实时监测新添加的设备或服务,无需手动配置。

配置管理

  • zabbix允许用户管理监控主机和监控项的配置,通过集中式管理、模板化和自动化等功能,方便管理大规模的监控环境。

安全性和权限控制

  • zabbix提供基于角色的访问控制,可以细粒度地控制用户的权限,以保护敏感的监控数据和系统安全。

综合报警视图

  • zabbix提供集中式的报警视图,可以查看和管理所有触发的警报,帮助管理员及时处理和解决问题。

高可用性和扩展性

  • zabbix支持高可用性部署,允许用户搭建分布式的监控系统,以提供更高的可靠性和扩展性。

功能强大且易于扩展的 Zabbix Agent

  • 部署于被监控对象上;
  • 支持 Linux 和 Windows 。

2. 部署zabbix

注意:在部署zabbix之前要提前部署好LAMP
并且,MySQL/Percona版本要8.0.30及更高版本,MariaDB要10.5.00及更高版本,PHP要7.4及更高版本

## 官方文档:
https://www.zabbix.com/documentation/6.4/en/manual/installation/install
主机名ip地址系统版本主机
kiwi222192.168.234.33CentOS8服务端
2.1 下载zabbix包并解压
[root@kiwi222 ~]# wget https://cdn.zabbix.com/zabbix/sources/stable/6.4/zabbix-6.4.6.tar.gz
[root@kiwi222 ~]# tar -xf zabbix-6.4.6.tar.gz 
[root@kiwi222 ~]# ls
anaconda-ks.cfg  zabbix-6.4.6  zabbix-6.4.6.tar.gz
[root@kiwi222 ~]# 
2.2 创建zabbix用户和组
[root@kiwi222 ~]# groupadd -r zabbix
[root@kiwi222 ~]# useradd -r -g zabbix -M -s /sbin/nologin zabbix
[root@kiwi222 ~]# 
2.3 创建zabbix数据库用户
## 进入解压后的zabbix目录
[root@kiwi222 zabbix-6.4.6]# mysql -uroot -p1
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.000 sec)

MariaDB [(none)]> create user 'zabbix'@'localhost' identified by '1';
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> SET GLOBAL log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> 
2.4 将数据导入数据库,并将字符集utf8mb4设置为默认值。

对于Zabbix代理数据库,只有模式。应该导入SQL(没有映像)。SQL而不是data.sql)。

[root@kiwi222 zabbix-6.4.6]# cd database/mysql
[root@kiwi222 mysql]# mysql -uzabbix -p1 zabbix < schema.sql
[root@kiwi222 mysql]# mysql -uzabbix -p1 zabbix < images.sql
[root@kiwi222 mysql]# mysql -uzabbix -p1 --default-character-set=utf8mb4 zabbix < data.sql
[root@kiwi222 mysql]# 
2.5 禁用log_bin_trust_function_creators
[root@kiwi222 mysql]# mysql -uroot -p1
MariaDB [(none)]> SET GLOBAL log_bin_trust_function_creators = 0;
Query OK, 0 rows affected (0.000 sec)

做好上面这些之后发现数据库里面多了zabbix数据库以及表

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix             |
+--------------------+
4 rows in set (0.000 sec)

MariaDB [(none)]> show tables from zabbix;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
| auditlog                   |
| autoreg_host               |
| changelog                  |
| conditions                 |
| config                     |
| config_autoreg_tls         |


·········································略


186 rows in set (0.001 sec)

MariaDB [(none)]> 
2.6 构建Zabbix服务器、Zabbix代理或Zabbix代理需要带有GNU扩展的C99
[root@kiwi222 zabbix-6.4.6]# export CFLAGS="-std=gnu99"
[root@kiwi222 zabbix-6.4.6]# echo $CFLAGS
-std=gnu99
2.7 安装编译zabbix所需环境依赖包
[root@kiwi222 zabbix-6.4.6]# yum install -y mysql-devel net-snmp-devel libevent-devel 
[root@kiwi222 zabbix-6.4.6]# yum install -y http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/OpenIPMI-devel-2.0.31-3.el8.x86_64.rpm
2.8 开始编译zabbix
[root@kiwi222 zabbix-6.4.6]# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi

······························过程略

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <http://www.zabbix.com>                    *
***********************************************************

[root@kiwi222 zabbix-6.4.6]# 
### 注:如果不需要ipv6则--enable-ipv6 这个选项可不加
2.9 开始安装zabbix
[root@kiwi222 zabbix-6.4.6]# make install

···································过程略

make[2]: Leaving directory '/root/zabbix-6.4.6'
make[1]: Leaving directory '/root/zabbix-6.4.6'
[root@kiwi222 zabbix-6.4.6]# 

## 安装成功

[root@kiwi222 zabbix-6.4.6]# ls /usr/local/etc/
zabbix_agentd.conf  zabbix_agentd.conf.d  zabbix_server.conf  zabbix_server.conf.d
[root@kiwi222 zabbix-6.4.6]# 
2.10 修改服务端配置文件

设置数据库信息

[root@kiwi222 ~]# vim /usr/local/etc/zabbix_server.conf
······
# Mandatory: no
# Default:
# DBPassword=
DBPassword=1    ### 追加数据库连接密码

### Option: DBSocket
#       Path to MySQL socket.
2.11 启动zabbix
## 启动服务端
[root@kiwi222 ~]# zabbix_server
[root@kiwi222 ~]# ss -antl
State     Recv-Q    Send-Q       Local Address:Port        Peer Address:Port    Process    
LISTEN    0         128                0.0.0.0:22               0.0.0.0:*                  
LISTEN    0         128                0.0.0.0:10051            0.0.0.0:*                  
LISTEN    0         128              127.0.0.1:9000             0.0.0.0:*                  
LISTEN    0         128                      *:80                     *:*                  
LISTEN    0         128                   [::]:22                  [::]:*                  
LISTEN    0         80                       *:3306                   *:*      


## 启动客户端
[root@kiwi222 ~]# zabbix_agentd
[root@kiwi222 ~]# ss -antl
State     Recv-Q    Send-Q       Local Address:Port        Peer Address:Port    Process    
LISTEN    0         128                0.0.0.0:22               0.0.0.0:*                  
LISTEN    0         128                0.0.0.0:10050            0.0.0.0:*                  
LISTEN    0         128                0.0.0.0:10051            0.0.0.0:*                  
LISTEN    0         128              127.0.0.1:9000             0.0.0.0:*                  
LISTEN    0         128                      *:80                     *:*                  
LISTEN    0         128                   [::]:22                  [::]:*                  
LISTEN    0         80                       *:3306                   *:*                  
[root@kiwi222 ~]# 
2.12 zabbix服务端web界面安装与配置

zabbix界面安装前配置

[root@kiwi222 ~]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@kiwi222 ~]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@kiwi222 ~]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@kiwi222 ~]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@kiwi222 ~]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done

[root@kiwi222 zabbix-6.4.6]# mkdir /usr/local/apache/htdocs/zabbix
[root@kiwi222 zabbix-6.4.6]# \cp -a ui/* /usr/local/apache/htdocs/zabbix/
[root@kiwi222 zabbix-6.4.6]# 

## 设置zabbix/conf目录的权限,让zabbix有权限生成配置文件zabbix.conf.php
[root@kiwi222 zabbix-6.4.6]# chmod 777 /usr/local/apache/htdocs/zabbix/conf
[root@kiwi222 zabbix-6.4.6]# ll -d /usr/local/apache/htdocs/zabbix/conf
drwxrwxrwx. 3 1000 1000 94 Aug 22 04:10 /usr/local/apache/htdocs/zabbix/conf
[root@kiwi222 zabbix-6.4.6]# 

### 更改虚拟主机
[root@kiwi222 ~]# vim /etc/httpd/httpd.conf 

·················································略

<VirtualHost *:80>
DocumentRoot "/usr/local/apache/htdocs/zabbix"
ServerName zabbix
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/zabbix/$1
<Directory "/usr/local/apache/htdocs/zabbix">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
[root@kiwi222 ~]#

## 重启apache
[root@kiwi222 zabbix-6.4.6]# systemctl restart httpd
[root@kiwi222 zabbix-6.4.6]# 

安装zabbix web界面

在这里插入图片描述

点击下一步
在这里插入图片描述
ok那一栏全部变成ok即可开始下一步(y有个warning可以忽略)

在这里插入图片描述

填完以上信息即可下一步

在这里插入图片描述

servername可以不填,下一步

在这里插入图片描述

下一步

在这里插入图片描述

结束

2.13 登陆zabbix

zabbix默认登录用户名和密码:

用户名密码
Adminzabbix

在这里插入图片描述

登陆成功

在这里插入图片描述

恢复zabbix/conf目录的权限为755

[root@kiwi222 htdocs]# chmod 755 /usr/local/apache/htdocs/zabbix/conf
[root@kiwi222 htdocs]# ll -d /usr/local/apache/htdocs/zabbix/conf
drwxr-xr-x. 3 1000 1000 117 Sep 22 05:06 /usr/local/apache/htdocs/zabbix/conf
[root@kiwi222 htdocs]# 

3. zabbix配置文件

zabbix配置文件有两种:

  • 服务器端配置文件(/usr/local/etc/zabbix_server.conf)
  • 客户端配置文件(/usr/local/etc/zabbix_agentd.conf)
  • zabbix代理配置文件(/usr/local/etc/zabbix_proxy.conf)

服务器端配置文件zabbix_server.conf常用配置参数:

参数作用
LogFile设置服务端日志文件存放路径
ListenIP设置服务端监听IP
ListenPort设置服务端监听的端口号
PidFile设置服务端进程号文件存放路径
DBHost指定zabbix的数据库服务器IP
DBName指定zabbix使用的数据库库名
DBUser指定zabbix数据库登录用户
DBPassword指定zabbix数据库登录密码
DBPort指定zabbix数据库端口号
User设置zabbix以什么用户的身份运行
AlertScriptsPath设置告警脚本存放路径
ExternalScripts外部脚本存放路径

客户端配置文件zabbix_agentd.conf常用配置参数:

参数作用
Server指定zabbix服务器的IP或域名
ServerActive指定zabbix服务器的IP或域名
Hostname指定本机的主机名,此项必须与web界面配置项一致
UnsafeUserParameters是否启用自定义监控项,可选值为{1 | 0}
UserParameter指定自定义监控脚本参数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值