zabbix5.0 - 监控系统部署

目录


概述

示例环境:

安装准备

1:Zabbix简介

1.2:软件下载

1.3:防火墙配置

2:安装LNMP

2.1:安装Nginx:

2.2:安装Mysql

2.3:安装PHP:

2.4:安装ldap扩展模块(可选)

2.5:配置nginx支持php页面并启动

2.6:编写php页面并使用web页面访问http://192.168.0.108/index.php

3:安装ZABBIX

3.1:zabbix官方版本和系统版本参考文档:

3.2:导入SQL 脚本:

3.3:配置和编译安装

3.4:安装前端web页面:

初始化配置

1:Zabbix界面初始化:

1.2:修改语言

1.2:解决图形界面乱码问题

Zabbix监控系统部署完成


概述

zabbix的web页面是用php写的,所以我们需要安装LNMP架构,也可以用LAMP。在LNMP的基础上部署zabbix系统,zabbix版本为5.0。本实例安装方式:源码安装nginx、php,zabbix,mysql。

  1. 示例环境:

服务器用途

IP

操作系统

软件版本

LNMP + Zabbix_server + Zabbix_agent

192.168.0.108

CentOS7

nginx-1.20
mysql-5.7
php-7.4
zabbix-5.0

本文部分内容借鉴于「把倒立的世界腾空」的文章

安装准备

1:Zabbix简介

zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由2部分构成,zabbix server与可选组件zabbix agent。

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

1.2:软件下载

nginx官网:nginx: download
php官网:PHP: Hypertext Preprocessor

nginx-1.20.2.tar.gz

mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz

zabbix-5.0.22.tar.gz

php-7.4.28.tar.gz

libzip-1.3.2.tar.gz 

onig-6.8.2.tar.gz

1.3:防火墙配置

# firewall-cmd --zone=public --add-port=80/tcp –permanent

# firewall-cmd --zone=public --add-port=3306/tcp –permanent

# firewall-cmd --zone=public --add-port=9000/tcp –permanent

# firewall-cmd --zone=public --add-port=15000/tcp –permanent

# firewall-cmd --zone=public --add-port=15001/tcp –permanent

2:安装LNMP

2.1:安装Nginx:

# yum -y install pcre pcre-devel zlib openssl openssl-devel  # 安装依赖包

# cd /data/soft

# tar -zxvf nginx-1.20.2.tar.gz -C /data

# useradd -s /sbin/nologin -M nginx

# cd /data/nginx-1.20.2/

# ./configure --user=nginx --group=nginx --prefix=/data/nginx  --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre  # configure配置,加上所需相关模块

# make && make install  # 编译安装

# ln -s /data/nginx/sbin/* /usr/local/bin/

2.2:安装Mysql

创建用户、解压tar包

# groupadd mysql

# useradd mysql -g mysql -M -s /sbin/nologin

# cd /data/soft

# tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz -C /data

# cd /data

# mv mysql-5.7.35-linux-glibc2.12-x86_64 mysql

# mkdir -p /data/mysql/data

# chown -R mysql:mysql /data/mysql

编辑/etc/my.cnf配置文件

# vim /etc/my.cnf

[client]

port = 3306

socket = /data/mysql/mysql.sock

[mysqld]

port = 3306

socket = /data/mysql/mysql.sock

datadir = /data/mysql/data

sync_binlog = 0

skip-external-locking

performance_schema_max_table_instances=400

table_open_cache = 2048

key_buffer_size = 512M                     # 索引块的缓冲区大小。

sort_buffer_size = 8M               #用于表间关联缓存的大小

net_buffer_length = 4M                          #对导入导出数据进行分段

read_buffer_size = 4M                   #(数据文件存储顺序)是MySQL读入缓冲区的大小

read_rnd_buffer_size = 8M           #是MySQL的随机读缓冲区大小。

thread_cache_size = 300                         #线程池缓存大小

query_cache_size = 64M

tmp_table_size = 246M                   # 它规定了内部内存临时表的最大值

query_cache_type = 0

explicit_defaults_for_timestamp = true

max_connections = 2000

max_connect_errors = 100000

open_files_limit = 65535

sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

log-bin=mysql-bin

binlog_format=row

server-id = 1

expire_logs_days = 10 #控制binlog日志文件保留时间

max_binlog_size = 1G

slow_query_log=1

slow-query-log-file=/data/mysql/data/mysql-slow.log

long_query_time=0.5

early-plugin-load = ""

default_storage_engine = InnoDB

innodb_data_home_dir = /data/mysql/data

innodb_data_file_path = ibdata1:10M:autoextend  #单独指定数据文件的路径与大小

innodb_log_group_home_dir = /data/mysql/data

innodb_buffer_pool_size = 3G                    #内存75%

innodb_log_file_size = 64M

innodb_log_buffer_size = 16MB                                   #InnoDB 将日志写入日志磁盘文件前的缓冲大小

innodb_flush_log_at_trx_commit = 0

innodb_lock_wait_timeout = 120                 #事务锁超时时间

innodb_max_dirty_pages_pct = 90

innodb_read_io_threads = 4

innodb_write_io_threads = 4

[mysqldump]

quick

max_allowed_packet = 32M                                          #设置以字节发送给服务器的最大数据包大小. (默认: 16MB)

[mysql]

no-auto-rehash                                                            #auto-rehash是自动补全的意思

[myisamchk]

key_buffer_size = 32M

sort_buffer_size = 768K

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

#sql_mode,定义了mysql应该支持的sql语法,数据校验等!  NO_AUTO_CREATE_USER:禁止GRANT创建密码为空的用户。

#skip-networking

#skip-name-resolve

#log_queries_not_using_indexes=on

创建 sock、pid、log文件

# cd /data/mysql/

# touch mysql.sock

# chown mysql:mysql mysql.sock

# chmod 755 mysql.sock

# cd /tmp

# mkdir mysqld

# cd mysqld

# touch mysqld.pid

# cd ..

# chown -R mysql:mysql mysqld

# cd mysqld

# chmod 755 mysqld.pid

# touch /var/log/mysqld.log

# chown -R mysql:mysql /var/log

# cd /var/log

# chmod 755 mysqld.log

编译安装MySQL,并启动、授权、配置环境变量

# cd /data/mysql/bin/

# 初始化会报默认密码,记得保存

# ./mysqld --initialize --user=mysql --basedir=/data/mysql--datadir=/data/mysql/data

# vim /data/mysql/support-files/mysql.server

basedir=/data/mysql  # 指定mysql目录

datadir=/data/mysql/data  # 指定data目录

# 安全启动(会报出默认密码)

# ./mysqld_safe --user=mysql &

# cd /data/mysql/bin/

# 登录mysql,输入默认密码

# ./mysql -u root -p

mysql> set password=password("2X0Ob7yxN9tR");  # 修改密码

mysql>grant all privileges on *.* to 'root'@'%' identified by '2X0Ob7yxN9tR';  # 设置远程登录权限

mysql> flush privileges;  # 立即生效

mysql> quit;

# 配置环境变量

# vim /etc/profile

export MYSQL_HOME=/data/mysql

export PATH="$PATH:$MYSQL_HOME/bin"

# 更新/etc/profile声明环境变量

# source /etc/profile

# 重新启动mysql

# cp -a /data/mysql/support-files/mysql.server /etc/init.d/mysqld

# /etc/init.d/mysqld restart

# 设置开机自启动

# chkconfig --add /etc/init.d/mysqld

# chkconfig mysqld on

2.3:安装PHP:

首先安装php7.4所需依赖包

# yum -y install libxml2 libxml2-devel  curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel openldap openldap-devel sqlite-devel oniguruma-devel

这里还需要手工编译安装libzip依赖包否则configure的时候会报以下错误:意思是 libzip的版本必须大于0.11 且 不能等于1.3.1或者1.7.0

# configure: error: Package requirements (libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0) were not met:

No package 'libzip' found

No package 'libzip' found

No package 'libzip' found

编译安装libzip

# cd /data/soft

# tar -zxvf libzip-1.3.2.tar.gz -C /data/

# cd /data/libzip-1.3.2

# ./configure && make && make install

# 声明pkgconfig环境变量

# export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"

解压php的tar包,添加php用户和组

# cd /data/soft

# tar -zxvf php-7.4.28.tar.gz -C /data

# cd /data/php-7.4.28

# groupadd php

# useradd php -g php -M -s /sbin/nologin

配置所需模块,编译安装

# ./configure --prefix=/data/php7 --with-config-file-path=/data/php7/etc --with-mhash --with-openssl --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib --enable-bcmath  --enable-gd --with-jpeg --with-freetype  --enable-mbstring --enable-ftp --enable-sockets   --with-gettext --enable-session --with-curl   --enable-fpm --with-fpm-user=php --with-fpm-group=php   --enable-pdo -enable-tokenizer --with-zip

这里报错缺少依赖包oniguruma,这个包yum库不支持,需要手动安装

# cd /data/soft

# tar -zxvf onig-6.8.2.tar.gz -C /data/

# cd /data/onig-6.8.2/

# ./configure && make && make install

# cd /data/php-7.4.28

# 再次执行php的configure配置

# make && make install

2.4:安装ldap扩展模块(可选)

# find / -name phpize

# 查找到之后进入到php源码包解压目录(注意不是安装目录)

# cd /data/php-7.4.28/ext/ldap/

# 在这个目录执行查找到的文件(在安装目录的bin下面)

# /data/php7/bin/phpize # 在ldap目录下执行该文件

Configuring for:

PHP Api Version: 20190902

Zend Module Api No: 20190902

Zend Extension Api No: 320190902

# cp -frp /usr/lib64/libldap* /usr/lib/ # 拷贝库文件或者软连接

# 配置,编译安装

# ./configure --with-php-config=/data/php7/bin/php-config

# make && make install

Build complete.

Don't forget to run 'make test'.

Installing shared extensions:     /data/php7/lib/php/extensions/no-debug-non-zts-20190902/

# 保存这个路径后面需要用(/data/php7/lib/php/extensions/no-debug-non-zts-20190902/)

# 解压目录下的php.ini-production就是配置文件,但是需要移动和改名才能识别,放到/data/php7/etc/php.ini

# cd -

/data/php-7.4.28

# cp php.ini-production /data/php7/etc/php.ini

# vim /data/php7/etc/php.ini

max_execution_time = 300

post_max_size = 16M

max_input_time = 300

date.timezone = Asia/Shanghai  

extension_dir = "/data/php7/lib/php/extensions/no-debug-non-zts-20190902/" # 路径是刚刚编译安装保存的路径

extension=ldap.so  # 新增一行,添加ldap模块

# cd /data/php7/etc/

# cp php-fpm.conf.default php-fpm.conf

# cp php-fpm.d/www.conf.default php-fpm.d/www.conf

# cd /data/php-7.4.28

# ln -s /data/php7/bin/* /usr/local/bin

# ln -s /data/php7/sbin/* /usr/local/sbin

# php安装完成,查看版本并启动php,查看端口与是否启动ldap模块。

# php -v

PHP 7.4.28 (cli) (built: Apr  7 2022 15:19:29) ( NTS )

Copyright (c) The PHP Group

Zend Engine v3.4.0, Copyright (c) Zend Technologies

# php-fpm

# netstat -antp | grep php-fpm

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN

# php -m | grep ldap

ldap

2.5:配置nginx支持php页面并启动

# vim /data/nginx/conf/nginx.conf

新增

location ~ \.php$ {

            root           html;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

# nginx

# netstat -antp | grep 80

2.6:编写php页面并使用web页面访问http://192.168.0.108/index.php

# vim /data/nginx/html/index.php

<?php

 phpinfo();

?>

# 验证通过后测试php与mysql连接状态

# vim /data/nginx/html/index.php

<?php

    $mysqli = new mysqli("localhost", "root", "2X0Ob7yxN9tR");

    if(!$mysqli)  {

        echo"database error";

    }else{

        echo"php env successful";

    }

    $mysqli->close();

?>

# 刷新页面显示连接成功

3:安装ZABBIX

3.1:zabbix官方版本和系统版本参考文档:

        官网地址>>Download and install Zabbix

解压tar包,创建用户并修改家目录权限

# cd /data/soft

# tar -zxvf zabbix-5.0.22.tar.gz -C /data

# cd /data/zabbix-5.0.22

# groupadd --system zabbix

# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

# mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix

# chown zabbix:zabbix /usr/lib/zabbix

配置数据库支持zabbix

# mysql -uroot -p

# 创建zabbix库,字符集utf8

mysql> create database zabbix character set utf8 collate utf8_bin;

Query OK, 1 row affected (0.00 sec)

# 创建zabbix用户

mysql> create user 'zabbix'@'localhost' identified by 'zabbix123';

Query OK, 0 rows affected (0.00 sec)

# 授权zabbix访问

mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';

Query OK, 0 rows affected (0.00 sec)

mysql> quit;

Bye

3.2:导入SQL 脚本

用于创建数据库 schema 和插入 dataset。Zabbix proxy 数据库只需要数据库 schema,而 Zabbix server 数据库在建立数据库 schema 后,还需要 dataset。

如果要从源代码安装Zabbix,请继续将数据导入数据库。对于Zabbix代理数据库,应仅导入schema.sql( 不是images.sql或data.sql)

因为这里不是代理服务器所以三个sql都导入数据库

# /data/zabbix-5.0.22/database/mysql

# mysql -uzabbix -pzabbix123 zabbix < schema.sql

mysql: [Warning] Using a password on the command line interface can be insecure.

# mysql -uzabbix -pzabbix123 zabbix < images.sql

mysql: [Warning] Using a password on the command line interface can be insecure.

# mysql -uzabbix -pzabbix123 zabbix < data.sql

mysql: [Warning] Using a password on the command line interface can be insecure.

3.3:配置和编译安装

文件目录:

# 默认是在/usr/local下面,如果需要,配置时可以使用--prefix指定路径

配置:

# cd /data/zabbix-5.0.22

# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

按照官网的configure会报错,缺少net-snmp-devel和libevent-devel依赖包,yum装一下就好

configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config

# yum -y install  net-snmp-devel

configure: error: Unable to use libevent (libevent check failed)

# yum install -y libevent-devel

# 再次执行zabbix配置,直接make install

# make install

修改服务端配置文件:

# vim /usr/local/etc/zabbix_server.conf

DBPassword=zabbix123    #添加mysql数据库zabbix用户的登陆密码

DBSocket=/data/mysql/mysql.sock   # 指定mysql的socket文件路径

启动zabbix服务端:

zabbix_agentd是zabbix客户端需要运行的程序,这服务器上启动是用于监控自己

# zabbix_server

zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

# 加载共享库报错需要将libmysqlclient.so.20拷贝或者软连接到/usr/lib64下面

# ln -s /data/mysql/lib/libmysqlclient.so.20 /usr/lib64/

# zabbix_agentd

3.4:安装前端web页面:

Zabbix 前端是 PHP 编写的,所以必须运行在支持 PHP 的 Web 服务器上。只需要从ui路径下复制 PHP 文件到 Web 服务器的 HTML 文档目录,即可完成安装,我把整个ui目录都拷贝过去命名为zabbix

# cd /data/zabbix-5.0.22

# cp -r ui /data/nginx/html/zabbix/

检查端口:

15000(客户端)、15001(服务端)是否是监听状态

# netstat -antp | grep zabbix

初始化配置

1:Zabbix界面初始化:

访问http://192.168.0.108/zabbix/setup.php就出现zabbix主页了,但是还没有完全装好,需要做一些设置,直接下一步

下一步

指定数据库信息 

下载配置文件,将文件存放在server端指定路径下

 提示部署成功,登录zabbix默认用户Admin,默认密码zabbix。  

1.2:修改语言

默认web界面为英文版,接下来将web揭秘那更改为中文版本

 语言更改完成。

1.2:解决图形界面乱码问题

可以看到图形界面的注释是乱码 

 先下载一个字体文件,我是从windows上拷贝了语音文件。路径:C:\Windows\Fonts 进入Server更换字体

# cd /data/nginx/html/zabbix/assets/fonts/

# mv /data/soft/stxihei.ttf ./

# 更改配置文件或者将旧的字体文件备份把新的字体文件改名成DejaVuSans.ttf即可

# vim /data/nginx/html/zabbix/include/defines.inc.php

//define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name
define('ZBX_GRAPH_FONT_NAME', 'stxihei'); // font file name
//define('ZBX_FONT_NAME', 'DejaVuSans');
define('ZBX_FONT_NAME', 'stxihei');

刷新页面,乱码恢复

Zabbix监控系统部署完成

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值