Zabbix搭建

目录

  • zabbix搭建
    • [1. 前置环境准备](#1. 前置环境准备)
      • [1.1 搭建LNMP](#1.1 搭建LNMP)
    • [2. zabbix准备工作](#2. zabbix准备工作)
      • [2.1 安装php模块以及编译所需工具](#2.1 安装php模块以及编译所需工具)
      • [2.2 修改php配置](#2.2 修改php配置)
      • [2.3 编译安装zabbix](#2.3 编译安装zabbix)
        • [2.3.1 下载tar包](#2.3.1 下载tar包)
        • [2.3.2 解压](#2.3.2 解压)
        • [2.3.3 创建用户/组](#2.3.3 创建用户/组)
        • [2.3.4 开始安装](#2.3.4 开始安装)
        • [2.3.5 配置数据库](#2.3.5 配置数据库)
    • [3. 配置zabbix](#3. 配置zabbix)
      • [3.1 修改配置文件](#3.1 修改配置文件)
      • [3.2 Web界面部署](#3.2 Web界面部署)
    • [4. 安装agent](#4. 安装agent)
    • [5. 添加主机](#5. 添加主机)

zabbix搭建

简介

Zabbix 是一个开源的监控解决方案,用于监控各种网络服务、服务器和其他网络硬件。它能够采集各类监控数据,并提供强大的报警和报告功能。

1. 前置环境准备

我们采用编译安装的方式,需要提前准备好一个LNMP或者LAMP的环境

1.1 搭建LNMP

bash 复制代码
[root@oe01 ~]# yum install nginx php php-fpm -y

默认安装完之后php-fpm是采用socker通信的。我们将他修改为监听9000端口

bash 复制代码
[root@oe01 ~]# vim /etc/php-fpm.d/www.conf
38 listen = /run/php-fpm/www.sock
39 listen = 127.0.0.1:9000
[root@oe01 ~]# systemctl restart php-fpm

多添加一行即可,安装完php之后他会默认帮我们产生2个nginx的配置文件,我们不用他的。将他改名

bash 复制代码
[root@oe01 ~]# mv /etc/nginx/conf.d/php-fpm.conf /etc/nginx/conf.d/php-fpm.conf.bak
[root@oe01 ~]# mv /etc/nginx/default.d/php.conf /etc/nginx/default.d/php.conf.bak

然后我们重新编写一个nginx的配置文件

bash 复制代码
[root@oe01 ~]# cp /etc/nginx/nginx.conf.default /etc/nginx/nginx.conf
cp: overwrite '/etc/nginx/nginx.conf'? y
[root@oe01 ~]# vim /etc/nginx/nginx.conf
 43         location / {
 44             root   /data/zabbix;
 45             index  index.php index.html index.htm;
 46         }

 65         location ~ \.php$ {
 66             root           /data/zabbix;
 67             fastcgi_pass   127.0.0.1:9000;
 68             fastcgi_index  index.php;
 69             fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
 70             include        fastcgi_params;
 71         }

你的行号跟我的可能不太一样,大概是这些内容。然后重启nginx

bash 复制代码
[root@oe01 ~]# mkdir -p /data/zabbix
[root@oe01 ~]# systemctl restart nginx

接下来自行去测试php是否可以正常解析。如果可以那我们的LNMP环境就搭建完成了。接下来开始搭建监控。如果解析不了注意看网站根目录是在**/data/zabbix**,不要放错地方了

2. zabbix准备工作

现在我们开始安装php模块

2.1 安装php模块以及编译所需工具

bash 复制代码
root@oe01 ~]# yum install php-gd php-mbstring php-bcmath php-xml php-ldap php-mysqlnd mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel gcc make -y

2.2 修改php配置

默认的php配置是无法让zabbix正常运行的,所以我们需要修改一下

bash 复制代码
[root@oe01 ~]# sed -i "s/post_max_size = 8M/post_max_size = 16M/g" /etc/php.ini
[root@oe01 ~]# sed -i "s/max_execution_time = 30/max_execution_time = 300/g" /etc/php.ini
[root@oe01 ~]# sed -i "s/max_input_time = 60/max_input_time = 300/g" /etc/php.ini
[root@oe01 ~]# systemctl restart php-rpm

这几个配置必须改,因为不改的话等会安装的时候会过不了环境检测的

2.3 编译安装zabbix

2.3.1 下载tar包

bash 复制代码
[root@oe01 opt]# wget https://cdn.zabbix.com/zabbix/sources/oldstable/6.2/zabbix-6.2.8.tar.gz
[root@oe01 opt]# ls zabbix-6.2.8.tar.gz 
zabbix-6.2.8.tar.gz

2.3.2 解压

bash 复制代码
[root@oe01 opt]# tar -zxvf zabbix-6.2.8.tar.gz

2.3.3 创建用户/组

bash 复制代码
[root@oe01 opt]# groupadd --system zabbix
[root@oe01 opt]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix User" zabbix

2.3.4 开始安装

bash 复制代码
[root@oe01 zabbix-6.2.8]# ./configure --sysconfdir=/etc/zabbix --enable-server --enable-agent --with-mysql --with-ssh2 --with-zlib --with-libpthread --with-libevent --with-libpcre --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-openssl --with-ldap

等待执行完成,如果有报错检查一下之前安装的东西是不是缺什么

正常执行完之后应该是这样的

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

然后我们执行make install

bash 复制代码
[root@oe01 zabbix-6.2.8]# make install
Making install in misc
make[1]: Entering directory '/opt/zabbix-6.2.8/misc'
make[2]: Entering directory '/opt/zabbix-6.2.8/misc'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/opt/zabbix-6.2.8/misc'
make[1]: Leaving directory '/opt/zabbix-6.2.8/misc'
make[1]: Entering directory '/opt/zabbix-6.2.8'
make[2]: Entering directory '/opt/zabbix-6.2.8'
make[2]: Nothing to be done for 'install-exec-am'.
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/opt/zabbix-6.2.8'
make[1]: Leaving directory '/opt/zabbix-6.2.8'

执行完成是这样的

2.3.5 配置数据库

前面我们没有提到数据库的安装,因为LNMP里面的M就是MySQL/Mariadb,所以你自行安装就可以了,我还是安装一下吧

bash 复制代码
[root@oe01 zabbix-6.2.8]# yum remove mariadb-server  # 这一步不用执行,我是为了还原数据库
[root@oe01 zabbix-6.2.8]# yum install mariadb-server 
[root@oe01 zabbix-6.2.8]# systemctl restart mariadb
[root@oe01 zabbix-6.2.8]# mysql_secure_installation

完成初始化之后登录数据库

bash 复制代码
[root@oe01 zabbix-6.2.8]# mysql -uroot -p
MariaDB [(none)]> create database zabbix charset utf8 collate utf8_bin;
Query OK, 1 row affected (0.000 sec)
MariaDB [(none)]> create user 'zabbix'@'%' identified by '123';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'%';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.000 sec)

接下来导入数据到数据库

bash 复制代码
[root@oe01 zabbix-6.2.8]# cd database/mysql/
[root@oe01 mysql]# mysql -uroot -p123 zabbix < schema.sql 
[root@oe01 mysql]# mysql -uroot -p123 zabbix < images.sql 
[root@oe01 mysql]# mysql -uroot -p123 zabbix < data.sql 
[root@oe01 mysql]# mysql -uroot -p123 zabbix < double.sql 
[root@oe01 mysql]# mysql -uroot -p123 zabbix < history_pk_prepare.sql

注意顺序不要错。错了会导入失败报错的

到这里,zabbix的准备工作全部完成

3. 配置zabbix

3.1 修改配置文件

bash 复制代码
[root@oe01 ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=192.168.200.179     # 改为数据库地址
DBPassword=123             # 改为数据库的密码
DBPort=3306                # 数据库的端口
ListenPort=10051           # 将这一行取消注释即可

然后我们启动zabbix

bash 复制代码
[root@oe01 ~]# zabbix_server -c /etc/zabbix/zabbix_server.conf

3.2 Web界面部署

bash 复制代码
[root@oe01 ~]# cd /data/zabbix/
[root@oe01 zabbix]# cp -r /opt/zabbix-6.2.8/ui/* .
[root@oe01 zabbix]# chown nginx:nginx -R /data/zabbix/

进入浏览器进行后续操作

语言选择简体中文

时间选择北京时间

这里有这个报错我们可以点击下载配置文件,然后传到服务器上去

传好之后点击完成,就会提示你zabbix已经配置好了

默认的登录用户名是Admin密码是zabbix

服务端就已经搞定了

4. 安装agent

agent安装在被监控的节点上

bash 复制代码
[root@oe01 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-3.el8.noarch.rpm
[root@oe01 ~]# yum install zabbix-agent2 -y

然后我们修改相关的配置文件

bash 复制代码
[root@oe01 ~]# vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.200.179
[root@oe01 ~]# systemctl restart zabbix-agent2.service 

将server这里改为zabbix-server的地址

5. 添加主机

点进主机这里的时候会发现这里没有显示中文,我们需要将windows上的字体上传到服务器上

windows字体路径C:\Windows\Fonts\msyh.ttc

bash 复制代码
[root@oe01 fonts]# pwd
/data/zabbix/assets/fonts

将字体上传到这个目录

bash 复制代码
[root@oe01 fonts]# ls
DejaVuSans.ttf  MSYH.TTC
[root@oe01 fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
[root@oe01 fonts]# mv MSYH.TTC DejaVuSans.ttf

将原有的字体文件备份,再将我们上传的字体改为之前的那个文件名即可,回到网页刷新

字体就已经出来了