Zabbix 安装指南

Zabbix 简介

zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix 由 zabbix server 与可选组件 zabbix agent 两部分组成。
zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。

Zabbix的主要特点

  • 安装与配置简单,学习成本低
  • 支持多语言(包括中文)
  • 免费开源
  • 自动发现服务器与网络设备
  • 分布式监视以及 WEB 集中管理功能
  • 可以无 agent 监视
  • 用户安全认证和柔软的授权方式
  • 通过 WEB 界面设置或查看监视结果
  • email 等通知功能

Zabbix主要功能

  • CPU 负荷
  • 内存使用
  • 磁盘使用
  • 网络状况
  • 端口监视
  • 日志监视

安装环境说明

Zabbix 需要 LAMP 或者 LNMP 环境,此处选择 LNMP

操作系统 CentOS 7.6
IP 地址 192.168.10.101
Web 环境 nginx+MySQL+php-fpm
Nginx版本 nginx 1.14
MySQL版本 mysql 8.0
PHP版本 php 7.3
Zabbix版本 zabbix 4.0 LTS

先部署 LNMP 环境,然后再安装 Zabbix

安装 LNMP

安装 MySQL

(1)创建 mysql 用户,mysql 数据目录,日志目录,socket 和 pid 文件存放目录

groupadd -r -g 306 mysql
useradd -r -u 306 -g 306 -s /sbin/nologin -d /data/mysql -c "MySQL Server" mysql
mkdir -pv /data/mysql /var/log/mysql /var/lib/mysql
chown mysql.mysql /data/mysql /var/log/mysql /var/lib/mysql

(2)去官网 https://dev.mysql.com/downloads/mysql/ 下载 MySQL 的二进制安装包,这里下载的是 mysql-8.0.14-linux-glibc2.12-x86_64.tar.xz

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.14-linux-glibc2.12-x86_64.tar.xz
tar xf mysql-8.0.14-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
cd /usr/local/ && ln -sv mysql-8.0.14-linux-glibc2.12-x86_64 mysql
chown -R root.root /usr/local/mysql/

(3)初始化 mysql 数据

yum install libaio-devel -y
/usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql

(4)设置 mysql 配置文件

cat << EOF | tee /etc/my.cnf
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
user=mysql
port=3306
socket=/var/lib/mysql/mysql.sock
mysqlx-port=33060
mysqlx-socket=/var/lib/mysql/mysqlx.sock
basedir=/usr/local/mysql
datadir=/data/mysql
innodb-file-per-table=1
skip-name-resolve=1
character-set-server=utf8mb4
default_authentication_plugin=mysql_native_password
[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
pid-file=/var/lib/mysql/mysqld.pid
EOF

(5)修改 mysqld 启动脚本,使其和上面的配置文件定义相符

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -i 's@^basedir=.*@basedir=/usr/local/mysql@' /etc/init.d/mysqld
sed -i 's@^datadir=.*@datadir=/data/mysql@' /etc/init.d/mysqld 
sed -i 's@^mysqld_pid_file_path=.*@mysqld_pid_file_path=/var/lib/mysql/mysqld.pid@' /etc/init.d/mysqld

(6)启动 mysql

ln -sv /usr/local/mysql/bin/* /usr/bin/

chkconfig --add mysqld
chkconfig mysqld on
/etc/init.d/mysqld start

安装 php-fpm

(1)安装编译 php-fpm 依赖包

yum install gcc pcre-devel openssl-devel zlib-devel expat-devel libxml2-devel \
libjpeg-devel libpng-devel openldap-devel gd-devel mariadb-devel -y

(2)编译安装 php-fpm

去官网下载 http://www.php.net/downloads.php 下载 php 源码包,这里下载的是 php-7.3.1.tar.xz

wget http://am1.php.net/distributions/php-7.3.1.tar.xz
tar xf php-7.3.1.tar.xz -C /usr/local/src/
cd /usr/local/src/php-7.3.1/

./configure \
--prefix=/usr/local/php \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--with-gd \
--with-ldap \
--with-openssl \
--with-gettext \
--enable-sockets \
--enable-mbstring \
--enable-xml \
--enable-bcmath \
--enable-fpm \
--with-config-file-path=/usr/local/php/etc \
--with-config-file-scan-dir=/usr/local/php/etc/php.d 

make && make install

configure 时出现如下错误

configure: error: Cannot find ldap libraries in /usr/lib.

将 ldap 的相关模块链接到 /usr/lib/ 目录下

ln -sv /usr/lib64/libldap* /usr/lib/

然后重新执行 configure

make 时出现如下错误

//usr/lib64/liblber-2.4.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

可用如下方法解决,在 Makefile 的 EXTRA_LIBS 字段最后面添加 -llber 即可

sed -i '/^EXTRA_LIBS/s/$/ -llber/' /usr/local/src/php-7.3.1/Makefile 

然后执行 make clean ,再重新 make 即可

(3)准备启动脚本和配置文件

cd /usr/local/src/php-7.3.1/
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/

mkdir /usr/local/php/etc/php.d
cp php.ini-production /usr/local/php/etc/php.ini
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
cp php-fpm.d/www.conf.default php-fpm.d/www.conf

(4)启动 php-fpm

ln -sv /usr/local/php/bin/* /usr/bin/
ln -sv /usr/local/php/sbin/* /usr/sbin/

systemctl daemon-reload 
systemctl enable php-fpm.service
systemctl start php-fpm.service

安装 nginx

(1)安装编译 nginx 所依赖的安装包

yum install gcc pcre-devel openssl-devel zlib-devel -y

(2)创建 nginx 用户

groupadd -r -g 80 nginx
useradd -r -u 80 -g 80 -s /sbin/nologin -d /usr/local/nginx -c "Nginx Server" nginx

(3)编译安装 nginx

去官网 http://nginx.org/en/download.html 下载 nginx 源码包,这里下载的是 nginx-1.14.2.tar.gz

wget http://101.96.10.43/nginx.org/download/nginx-1.14.2.tar.gz
tar xf nginx-1.14.2.tar.gz -C /usr/local/src/
cd /usr/local/src/nginx-1.14.2/

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_dav_module \
--with-http_stub_status_module \
--with-threads \
--with-file-aio \
--with-stream \
--with-pcre 

make && make install

(4)编译好后修改 nginx 配置文件,使其支持 php

vim /usr/local/nginx/conf/nginx.conf

location / {
            root   html;
            index  index.php index.html index.htm;
}
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;
 }

(5)设置启动文件

cat << EOF | tee /usr/lib/systemd/system/nginx.service
[Unit]
Description=Nginx Server
After=network.target
  
[Service]
Type=forking
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit

[Install]
WantedBy=multi-user.target
EOF

(6)启动 nginx

ln -sv /usr/local/nginx/sbin/nginx /usr/sbin/

systemctl daemon-reload
systemctl enable nginx.service
systemctl start nginx.service

(7)检测 LNMP 环境

vim /usr/local/nginx/html/test.php

<?php
    $mysqli = new mysqli('localhost', 'root', '');
    if(!$mysqli)  {
        echo"Failure";
    }
    else{
        echo"OK";
    }
    $mysqli->close();
    phpinfo();
?>

在浏览器输入 http://192.168.10.101/test.php ,出现如下界面,则 LNMP 环境配置成功

配置好 LNMP 环境后,然后安装 Zabbix

Zabbix 的安装与配置

安装 Zabbix

这里即安装 zabbix server,也安装了 zabbix agent,同时开启了监控 java 程序的功能

(1)安装编译 zabbix依赖包

yum install gcc java-1.8.0-openjdk-devel mariadb-devel libxml2-devel net-snmp-devel curl-devel libevent-devel -y

(2)创建 zabbix 用户

groupadd -r -g 151 zabbix
useradd -r -u 151 -g 151 -s /sbin/nologin -d /usr/local/zabbix -c "Zabbix Monitoring" zabbix

(3)编译 zabbix

去 zabbix 官网 https://www.zabbix.com/download_sources 下载 zabbix 源码包 ,这里下载的是 zabbix-4.0.3.tar.gz

wget https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz
tar xf zabbix-4.0.3.tar.gz -C /usr/local/src/
cd /usr/local/src/zabbix-4.0.3/

./configure \
--prefix=/usr/local/zabbix \
--enable-server \
--enable-java \
--enable-agent \
--enable-ipv6 \
--with-mysql \
--with-net-snmp \
--with-libcurl \
--with-libxml2

make && make install

如果不需要监控 java 类的服务,则不需要启用 --enable-java 编译选项

如果是安装 zabbix-proxy,只需将编译选项的 --enable-server 替换成换成 --enable-proxy 即可

如果是仅仅安装 zabbix-agent,只需启用 --enable-agent 一个编译选项即可

配置 zabbix server

(1)创建 zabbix 数据库并导入数据

mysql> CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
mysql> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'akalin.tech';
mysql> GRANT ALL ON zabbix.* TO 'zabbix'@'localhost';
mysql> exit

mysql zabbix < /usr/local/src/zabbix-4.0.3/database/mysql/schema.sql
mysql zabbix < /usr/local/src/zabbix-4.0.3/database/mysql/images.sql
mysql zabbix < /usr/local/src/zabbix-4.0.3/database/mysql/data.sql

(2)修改 zabbix_server 配置文件

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

ListenPort=10051
LogType=file
LogFile=/var/log/zabbix/zabbix_server.log
PidFile=/usr/local/zabbix/pid/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=akalin.tech
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306
Timeout=15
LogSlowQueries=3000

(3)创建 zabbix 日志和 pid 存放目录

mkdir -pv /var/log/zabbix /usr/local/zabbix/run
chown -R zabbix.zabbix /var/log/zabbix /usr/local/zabbix/

(4)准备 zabbix_server 启动脚本

cp /usr/local/src/zabbix-4.0.3/misc/init.d/fedora/core/zabbix_server /etc/init.d/
sed -i 's@BASEDIR=.*@BASEDIR=/usr/local/zabbix@' /etc/init.d/zabbix_server
sed -i 's@PIDFILE=.*@PIDFILE=/usr/local/zabbix/pid/zabbix_server.pid@' /etc/init.d/zabbix_server

(5)启动 zabbix_server

chkconfig --add zabbix_server
chkconfig zabbix_server on
/etc/init.d/zabbix_server start

使用 ss -tnl 查看 10051 端口是否处于监听状态

配置 zabbix agent

(1)修改 zabbix_agentd 配置文件

vim /usr/local/zabbix/etc/zabbix_agentd.conf

PidFile=/usr/local/zabbix/run/zabbix_agentd.pid
LogType=file
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=127.0.0.1
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=127.0.0.1
Hostname=Zabbix server
Timeout=15
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1

(2)准备 zabbix_agentd 启动脚本

cp /usr/local/src/zabbix-4.0.3/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
sed -i 's@BASEDIR=.*@BASEDIR=/usr/local/zabbix@' /etc/init.d/zabbix_agentd
sed -i 's@PIDFILE=.*@PIDFILE=/usr/local/zabbix/run/zabbix_agentd.pid@' /etc/init.d/zabbix_agentd

(3)启动 zabbix_agentd

chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on
/etc/init.d/zabbix_agentd start

使用 ss -tnl 查看 10050 端口是否处于监听状态

(4)测试是否能获取数据

ln -sv /usr/local/zabbix/bin/* /usr/bin/
zabbix_get  -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"

有数据显示则表示获取成功

配置 zabbix web

复制 zabbix 的 php 文件到 /usr/local/nginx/html/zabbix/ 目录下

mkdir /usr/local/nginx/html/zabbix
cd /usr/local/src/zabbix-4.0.3/
cp -r frontends/php/* /usr/local/nginx/html/zabbix/

zabbix web安装向导

(1)在浏览器里输入 http://192.168.10.101/zabbix ,进入 zabbix 的安装向导

(2)点 Next Steup,出现检查安装要求

php 的某些参数不符合要求,按上面提示的修改即可

cat << EOF | tee /usr/local/php/etc/php.d/zabbix.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300 
date.timezone = Asia/Shanghai
EOF

systemctl reload php-fpm.service

之后刷新页面,检查失败的信息会消失,继续点 Next Steup

(3)填入数据库信息后,继续点 Next Steup

(4)配置 zabbix server 后,继续点 Next Steup

(5)信息确认,直接点 Next Steup

点 Download the configuration file 的链接下载此配置文件,然后保存为 /usr/local/nginx/html/zabbix/conf/zabbix.conf.php 文件,然后刷新页面

(6)点击 Finish 即可完成安装

默认账号 Admin/zabbix (注意大小写)

添加中文支持

登入后

修改后,字体是变成中文了,但是图形显示却有乱码

默认字体对中文支持不好,因此乱码,需要更改字体。

从 Window 上找到相应的字体(C:\Windows\Fonts 目录下),这里选择的楷体常规

复制到 zabbix server 服务器的 /usr/local/nginx/html/zabbix/fonts/ 目录下

ls /usr/local/nginx/html/zabbix/fonts/
DejaVuSans.ttf  simkai.ttf

修改 /usr/local/nginx/html/zabbix/include/defines.inc.php 关于字体的配置,把 DejaVuSans 换成 simkai(65 和 110 行两处均有)

sed -i 's@DejaVuSans@simkai@g' /usr/local/nginx/html/zabbix/include/defines.inc.php

修改好后刷新页面即可显示正常

注意:只支持 ttf 后缀的字体

至此,Zabbix 安装完成

猜你喜欢

转载自www.cnblogs.com/akalin/p/10344444.html
今日推荐