zabbix监控部署
常见的监控软件有哪些,各自有什么特点
常见的监控软件有以下几种:
- Nagios:Nagios是一款开源的网络监控软件,可以监控网络设备、服务器、服务和应用程序等。它提供了强大的告警和报警功能,并支持自定义插件,可以灵活扩展监控功能。
- Zabbix:Zabbix是一款功能强大的网络监控软件,支持多种监控方式,包括网络、服务器、应用程序等。它提供了灵活的配置和自定义能力,可以根据需要定制监控项和告警规则。
- Prometheus:Prometheus是一款开源的监控和警报工具,主要用于监控容器化应用和微服务架构。它具有高度可扩展性和灵活的数据模型,可以通过自定义的查询语言来分析和查询监控指标。
- Grafana:Grafana是一款开源的数据可视化工具,可以与各种监控系统集成,包括Nagios、Zabbix和Prometheus等。它提供了丰富的图表和仪表盘功能,可以将监控数据以直观的方式展示出来。
- Datadog:Datadog是一款云端监控和分析平台,支持多种监控方式,包括基础设施、应用程序、日志和安全等。它提供了实时监控和告警功能,并可以与其他工具集成,如PagerDuty和Slack等。
部署zabbix
因为zabbix是用php语言开发的,所以必须先部署lamp架构,使其能够支持运行php网页
mariadb旧版本更新
由于之前部署lamp时安装的mariadb版本过低,没有达到部署zabbix的要求需要更新一下版本
先查看当前mariadb版本号
[root@controller ~]# mysql -V
mysql Ver 15.1 Distrib 10.3.28-MariaDB, for Linux (x86_64) using readline 5.1
[root@controller ~]#
安装新版本依赖包
[root@controller ~]# yum -y install http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/mariadb-common-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm --allowerasing
[root@controller ~]#
[root@controller ~]# yum -y install http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/mariadb-connector-c-3.1.11-2.el8_3.x86_64.rpm
[root@controller ~]#
[root@controller ~]# yum -y install http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/mariadb-errmsg-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm
[root@controller ~]#
[root@controller ~]# wget http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/mariadb-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm
--2023-09-22 19:03:55-- http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/mariadb-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm
...
[root@controller ~]# ls
anaconda-ks.cfg lamp mariadb-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm
[root@controller ~]#
[root@controller ~]# rpm -ivh mariadb-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm
warning: mariadb-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:mariadb-3:10.5.9-1.module_el8.5.0################################# [100%]
[root@controller ~]#
[root@controller ~]# ls
anaconda-ks.cfg lamp mariadb-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm
[root@controller ~]#
[root@controller ~]# yum -y install http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/mariadb-server-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64.rpm
[root@controller ~]#
[root@controller ~]# yum -y install http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/OpenIPMI-devel-2.0.31-3.el8.x86_64.rpm
查看已安装的rpm包,重启mariadb服务
[root@controller ~]# rpm -qa | grep mariadb
mariadb-errmsg-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64
mariadb-server-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64
mariadb-connector-c-config-3.1.11-2.el8_3.noarch
mariadb-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64
mariadb-devel-10.3.28-1.module_el8.3.0+757+d382997d.x86_64
mariadb-common-10.5.9-1.module_el8.5.0+732+7afc82e7.x86_64
mariadb-connector-c-3.1.11-2.el8_3.x86_64
mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64
[root@controller ~]#
[root@controller ~]# systemctl restart mariadb
[root@controller ~]#
[root@controller ~]# mysql -V
mysql Ver 15.1 Distrib 10.5.9-MariaDB, for Linux (x86_64) using EditLine wrapper
[root@controller ~]#
重启完后再次查看mysql版本号,我这边的版本已经更新成功
zabbix服务端安装
安装zabbix所需的依赖包
[root@controller ~]# yum -y install net-snmp-devel libevent-devel mysql-devel --allowerasing
Last metadata expiration check: 1:43:23 ago on Fri 22 Sep 2023 06:13:25 PM CST.
Dependencies resolved.
...
python3-pyparsing-2.1.10-7.el8.noarch rpm-devel-4.14.3-19.el8.x86_64
systemtap-sdt-devel-4.5-3.el8.x86_64
Removed:
mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64 mariadb-devel-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64
Complete!
[root@controller ~]#
下载并解压zabbix
[root@controller ~]# cd /usr/src/
[root@controller src]# wget https://cdn.zabbix.com/zabbix/sources/stable/6.4/zabbix-6.4.6.tar.gz
--2023-09-22 19:51:20-- https://cdn.zabbix.com/zabbix/sources/stable/6.4/zabbix-6.4.6.tar.gz
Resolving cdn.zabbix.com (cdn.zabbix.com)... 104.26.6.148, 172.67.69.4, 104.26.7.148, ...
...
[root@controller src]# ls
apr-1.7.4 apr-util-1.6.3 debug httpd-2.4.57 kernels php-8.2.10 zabbix-6.4.6.tar.gz
[root@controller src]#
[root@controller src]# tar xf zabbix-6.4.6.tar.gz
[root@controller src]# ls
apr-1.7.4 apr-util-1.6.3 debug httpd-2.4.57 kernels php-8.2.10 zabbix-6.4.6 zabbix-6.4.6.tar.gz
[root@controller src]#
创建zabbix用户和组
[root@controller ~]# groupadd -r zabbix
[root@controller ~]# useradd -r -g zabbix -M -s /sbin/nologin zabbix
[root@controller ~]#
[root@controller ~]# id zabbix
uid=993(zabbix) gid=990(zabbix) groups=990(zabbix)
[root@controller ~]#
配置zabbix数据库
创建数据库和用户并设置密码
[root@controller ~]# mysql -uroot -pRedhat123!
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
...
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]>
MariaDB [(none)]> create user 'zabbix'@'localhost' identified by 'zabbix123!';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]>
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)]>
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| zabbix |
+--------------------+
4 rows in set (0.007 sec)
MariaDB [(none)]>
MariaDB [(none)]> quit;
Bye
[root@controller ~]#
将数据导入到数据库中
[root@controller ~]# cd /usr/src/zabbix-6.4.6/database/
[root@controller database]# ls
elasticsearch Makefile.am Makefile.in mysql oracle postgresql sqlite3
[root@controller database]#
[root@controller database]# cd mysql/
[root@controller mysql]# ls
data.sql double.sql history_pk_prepare.sql images.sql Makefile.am Makefile.in schema.sql
[root@controller mysql]#
[root@controller mysql]# mysql -uzabbix -pzabbix123! zabbix < schema.sql
[root@controller mysql]#
[root@controller mysql]# mysql -uzabbix -pzabbix123! zabbix < images.sql
[root@controller mysql]#
[root@controller mysql]# mysql -uzabbix -pzabbix123! --default-character-set=utf8mb4 zabbix < data.sql
[root@controller mysql]#
查看数据是否导入成功,成功导入后禁用log_bin_trust_function_creators
[root@controller mysql]# mysql -uroot -pRedhat123!
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
...
MariaDB [(none)]>
MariaDB [(none)]> show tables from zabbix;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+
| acknowledges |
| actions |
...
| widget |
| widget_field |
+----------------------------+
186 rows in set (0.001 sec)
MariaDB [(none)]>
MariaDB [(none)]> SET GLOBAL log_bin_trust_function_creators = 0;
Query OK, 0 rows affected (0.000 sec)
MariaDB [(none)]>
MariaDB [(none)]> quit;
Bye
[root@controller mysql]#
添加环境变量
[root@controller mysql]# export CFLAGS="-std=gnu99"
[root@controller mysql]# echo $CFLAGS
-std=gnu99
[root@controller mysql]#
编译安装zabbix
[root@controller zabbix-6.4.6]# ./configure --enable-server \
--enable-agent \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--with-openipmi
checking for a BSD-compatible install... /bin/install -c
...
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
[root@controller zabbix-6.4.6]#
[root@controller zabbix-6.4.6]# make install
zabbix服务端配置
修改服务端配置文件,设置zabbix数据库连接密码
[root@controller zabbix-6.4.6]# cd /usr/local/etc/
[root@controller etc]# ls
zabbix_agentd.conf zabbix_agentd.conf.d zabbix_server.conf zabbix_server.conf.d
[root@controller etc]#
[root@controller etc]# vim /usr/local/etc/zabbix_server.conf
...
# DBPassword=
DBPassword=zabbix123!
启动zabbix_server和zabbix_agentd,查看端口号
[root@controller etc]# zabbix_server
[root@controller etc]#
[root@controller etc]# zabbix_agentd
[root@controller etc]#
[root@controller etc]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 127.0.0.1:9000 0.0.0.0:*
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 80 *:3306 *:*
LISTEN 0 128 *:80 *:*
LISTEN 0 128 [::]:22 [::]:*
[root@controller etc]#
zabbix服务端web界面安装与配置
zabbix web界面安装前配置
进入zabbix-6.4.6中把ui目录中的所有文件复制到虚拟主机目录中,并设置htdocs目录的属主和属组
[root@controller htdocs]# cd /usr/src/zabbix-6.4.6/
[root@controller zabbix-6.4.6]#
[root@controller zabbix-6.4.6]#
[root@controller zabbix-6.4.6]# \cp -a ui/* /opt/apache/htdocs/www.tanggxin.com/
[root@controller zabbix-6.4.6]#
[root@controller zabbix-6.4.6]# ls /opt/apache/htdocs/www.tanggxin.com/
api_jsonrpc.php chart6.php graphs.php imgstore.php local sysmaps.php
api_scim.php chart7.php history.php include locale templates.php
app chart.php host_discovery.php index_http.php map.php toptriggers.php
assets composer.json hostinventoriesoverview.php index.php modules tr_events.php
audio composer.lock hostinventories.php index_sso.php report2.php trigger_prototypes.php
browserwarning.php conf host_prototypes.php items.php report4.php triggers.php
chart2.php data httpconf.php js robots.txt vendor
chart3.php disc_prototypes.php httpdetails.php jsLoader.php setup.php widgets
chart4.php favicon.ico image.php jsrpc.php sysmap.php zabbix.php
[root@controller zabbix-6.4.6]#
[root@controller zabbix-6.4.6]# chown -R apache.apache /opt/apache/htdocs/
[root@controller zabbix-6.4.6]#
[root@controller zabbix-6.4.6]# ll /opt/apache/
total 36
drwxr-xr-x. 2 root root 262 Sep 22 17:22 bin
drwxr-xr-x. 2 root root 167 Sep 22 17:22 build
drwxr-xr-x. 2 root root 78 Sep 22 17:22 cgi-bin
drwxr-xr-x. 4 root root 84 Sep 22 18:23 conf
drwxr-xr-x. 3 root root 4096 Sep 22 17:22 error
drwxr-xr-x. 3 apache apache 48 Sep 22 17:32 htdocs
drwxr-xr-x. 3 root root 8192 Sep 22 17:22 icons
drwxr-xr-x. 2 root root 4096 Sep 22 18:14 include
drwxr-xr-x. 2 root root 58 Sep 22 18:23 logs
drwxr-xr-x. 4 root root 30 Sep 22 17:22 man
drwxr-xr-x. 14 root root 8192 Sep 22 17:22 manual
drwxr-xr-x. 2 root root 4096 Sep 22 17:22 modules
[root@controller zabbix-6.4.6]#
[root@controller zabbix-6.4.6]# ll /opt/apache/htdocs/
total 8
-rw-r--r--. 1 apache apache 45 Jun 12 2007 index.html
drwxr-xr-x. 14 apache apache 4096 Sep 22 21:16 www.tanggxin.com
[root@controller zabbix-6.4.6]#
设置conf目录的权限,让zabbix有权限生成配置文件zabbix.conf.php
[root@controller zabbix-6.4.6]# cd /opt/apache/htdocs/www.tanggxin.com/
[root@controller www.tanggxin.com]#
[root@controller www.tanggxin.com]# ll -d conf
drwxr-xr-x 3 apache apache 94 Aug 22 16:10 conf
[root@controller www.tanggxin.com]#
[root@controller www.tanggxin.com]# chmod 777 conf
[root@controller www.tanggxin.com]#
[root@controller www.tanggxin.com]# ll -d conf
drwxrwxrwx 3 apache apache 94 Aug 22 16:10 conf
[root@controller www.tanggxin.com]#
[root@controller www.tanggxin.com]# systemctl restart httpd
安装zabbix web界面
修改/etc/hosts文件,添加域名与IP的映射
在浏览器上访问域名,本文设置的域名为www.tanggxin.com,你需要修改成你自己的域名
修改/etc/php.ini的配置并重启php-fpm
[root@controller ~]# sed -ri 's/(post_max_size =).*/\1 16M/g' /etc/php.ini
[root@controller ~]# sed -ri 's/(max_execution_time =).*/\1 300/g' /etc/php.ini
[root@controller ~]# sed -ri 's/(max_input_time =).*/\1 300/g' /etc/php.ini
[root@controller ~]# sed -i '/;date.timezone/a date.timezone = Asia/Shanghai' /etc/php.ini
[root@controller ~]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm done
[root@controller ~]#
刷新网页
注意database host里面要改成127.0.0.1
恢复conf目录的权限为755:
[root@controller ~]# cd /opt/apache/htdocs/www.tanggxin.com/
[root@controller www.tanggxin.com]#
[root@controller www.tanggxin.com]# chmod 755 conf
[root@controller www.tanggxin.com]#
[root@controller www.tanggxin.com]# ll -d conf
drwxr-xr-x. 3 apache apache 117 Sep 23 00:25 conf
[root@controller www.tanggxin.com]#
登录zabbix
输入默认用户名Admin和密码zabbix