栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

部署zabbix

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

部署zabbix

拓

目录

拓扑环境:

环境所需要的软件包

搭建LNMP 环境

安装mysql

安装php

1)安装依赖软件包:

2)安装 libmcrypt:

3)安装PHP

3)生成 php.ini 配置文件

4)创建php-fpm服务启动脚本

5)提供php-fpm配置文件并编辑

5)启动 php-fpm服务

安装nginx 

1)安装依赖关系包:

2)编译安装nginx

3)启动nginx服务

4)配置ngixn 支持 php 

5)测试LNMP

 Zabbix中文在线手册

创建导入zabbix 数据库

1)创建 zabbix 使用的数据库

2)解压zabbix-4.2.6.tar.gz

3)导入数据库,注意顺序,否则会报错

安装依赖

创建用户

预编译

 安装

配置 zabbix servcer

 监控 Zabbix server 本身

启动服务 

1)直接运行

2) 解决库文件找不到

3)查看端口

添加 zabbix启动脚本 

配置zabbix web 页面

1)拷贝 php 文件到 nginx 网站目录

2)开启默认打开 index.php

3)重启ngix 服务和 php-fpm 服务

打开浏览器安装 zabbix web

1)访问zabbix web 

3)下一步

登录zabbix

修改语言

1) 显示简体中文界面

 2)解决zabbix绘图出现中文乱码问题:

 监控本机

 1)点击配置-主机 启用本主机

2) 启动zabbix_agnent

 3)刷新页面,查看agent状态

zabbix启动服务总结


环境拓扑

主机主机名IP地址操作系统软件版本
zabbix监控端zabbix_server192.168.30.11Centos7.5

zabbix-4.2.6

Linux 被监控端

zabbix_server02192.169.30.12Centos7.5

zabbix监控端:192.168.30.11 #zabbix的服务端(若要监控本机,则需要配置本机的zabbix agent)

Zabbix agent被监控主机, #zabbix的客户端(被监控端,需要配置Zabbix agent)

关闭selinux 和 防火墙

环境所需要的软件包

php-5.6.36

libmcryptt-2.5.7

MySQL-5.7.26

nginx

zabbix-4.2.6

搭建LNMP 环境

安装mysql

MySQL安装略,具体安装过程可参考MySQL安装篇

安装php

1)安装依赖软件包:
[root@zabbix_server ~]#  yum -y install make apr* autoconf automake curl-devel gcc gcc-c++  openssl openssl-devel gd kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm* freetype libjpeg* libpng*  libtool* libxml2 libxml2-devel patch libcurl-devel bzip2-devel freetype-devel

2)安装 libmcrypt:

实现 PHP安全通信的软件包

上传软件包并解压:

[root@zabbix_server ~]# tar zxf libmcrypt-2.5.7.tar.gz
[root@zabbix_server ~]# cd libmcrypt-2.5.7
  [root@zabbix_server libmcrypt-2.5.7]#  ./configure --prefix=/usr/local/libmcrypt && make && make install

3)安装PHP
[root@zabbix_server ~]# tar zxf php-5.6.36.tar.gz   
 [root@zabbix_server ~]# cd php-5.6.36
[root@zabbix_server php-5.6.36]# ./configure --prefix=/usr/local/php5.6 --with-config-file-path=/etc  --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/usr/local/mysql/mysql.sock --with-gd --with-iconv --with-libxml-dir=/usr --with-mhash --with-mcrypt --with-config-file-scan-dir=/etc/php.d --with-bz2 --with-zlib --with-freetype-dir --with-png-dir --with-jpeg-dir --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt=/usr/local/libmcrypt --with-curl 
[root@zabbix_server php-5.6.36]# make && make install 

3)生成 php.ini 配置文件
 [root@zabbix_server php-5.6.36]# cp php.ini-production /etc/php.ini

编辑配置文件/etc/php.ini , 修改如下内容:

date.timezone = PRC #设置时区 去掉注释

expose_php = Off #禁止显示php版本的信息

short_open_tag = On //支持php短标签

post_max_size = 16M  //上传文件大小

max_execution_time = 300  //php脚本最大执行时间

max_input_time = 300  //以秒为单位对通过POST、GET以及PUT方式接收数据时间进行限制

always_populate_raw_post_data = -1    #提交数据的行格式

mbstring.func_overload = 0     #是否覆盖

在php.ini当中默认支持的是长格式标签

长格式和段格式标签的书写:

4)创建php-fpm服务启动脚本

nginx支持php访问 需要fpm模块

[root@zabbix_server php-5.6.36]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

给与 x 执行权限

[root@zabbix_server php-5.6.36]# chmod +x /etc/init.d/php-fpm 

添加成系统服务:

[root@zabbix_server php-5.6.36]#  chkconfig --add php-fpm
[root@zabbix_server php-5.6.36]# chkconfig php-fpm on

5)提供php-fpm配置文件并编辑
cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf

创建程序用户

[root@zabbix_server ~]# useradd -M -s /sbin/nologin www

修改配置文件:

vim /usr/local/php5.6/etc/php-fpm.conf

修改内同如下:

 pid = run/php-fpm.pid   #pid文件取消注释

user = www                #程序用户改为www
group = www               

listen = 127.0.0.1:9000 

pm.max_children = 300  #最大进程数限制

pm.start_servers = 10    # frpm 启动后开启多少个进程

pm.min_spare_servers = 10   #最小空闲线程数,一般和开启线程一致就可以

pm.max_spare_servers = 50  #最大空闲线程

5)启动 php-fpm服务
[root@zabbix_server ~]# /etc/init.d/php-fpm start

安装nginx 

1)安装依赖关系包:
[root@zabbix_server ~]# yum install -y gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel  pcre pcre-devel

2)编译安装nginx

上传软件包并解压:

[root@zabbix_server ~]# tar zxf nginx-1.10.3.tar.gz 

[root@zabbix_server ~]# cd nginx-1.10.3

[root@zabbix_server nginx-1.10.3]#  ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module  --with-http_flv_module --with-http_mp4_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module --user=www --group=www

[root@zabbix_server nginx-1.10.3]# make && make instal

3)启动nginx服务

便于执行nginx 给ngixn 创建链接

[root@zabbix_server ~]#  ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
[root@zabbix_server ~]# nginx 
[root@zabbix_server ~]# netstat -anptl | grep nginx

4)配置ngixn 支持 php 

修改  nginx.conf配置文件:

vim /usr/local/nginx/conf/nginx.conf
user  www www;
worker_processes  4;
error_log  logs/error.log;
pid        logs/nginx.pid;

events {
    use epoll;
    worker_connections  10024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  logs/access.log  main;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
         server_name  localhost;

        charset utf-8;

        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;
            include fastcgi.conf;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

重载nginx:

nginx -t  检测配置文件语法是否有误

nginx -s reload   重载nginx

5)测试LNMP

进入nginx默认网页根目录,创建.php测试页

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

创建php和mysql直接连接的测试页

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

mysql和 php是在一台主机上,主机使用localhost没问题

使用MySQL  root账号登入

访问结果:

访问php 连接mysql 测试页

LNMP部署完毕

 Zabbix中文在线手册

Zabbix 产品手册https://www.zabbix.com/documentation/4.0/zh/manual

创建导入zabbix 数据库

Zabbix 需要数据库的支持(mysql,oracle,PostgreSQL,SQLite, DB2)都支持,而且Zabbix 源码包中已经自带了数据库结构

1)创建 zabbix 使用的数据库
[root@zabbix_server ~]# mysql -uroot -p123

mysql> create database zabbix character set utf8;  #创建数据库和使用的字符集

mysql> grant all on zabbix.* to zabbix@localhost identified by '123'; #zabbix 用户授权

mysql> flush privileges;  

mysql> quit

2)解压zabbix-4.2.6.tar.gz
[root@zabbix_server ~]# tar zxf zabbix-4.2.6.tar.gz 

[root@zabbix_server ~]# cd zabbix-4.2.6

3)导入数据库,注意顺序,否则会报错

把解压的zabbix目录下的database下mysql文件导入数据库

[root@zabbix_server zabbix-4.2.6]# mysql -uzabbix -p123  zabbix < database/mysql/schema.sql 

[root@zabbix_server zabbix-4.2.6]# mysql -uzabbix -p123  zabbix < database/mysql/images.sql

[root@zabbix_server zabbix-4.2.6]# mysql -uzabbix -p123  zabbix < database/mysql/data.sql 

  如果在做分布式的环境中,Proxy服务器只需要导入schema.sql,agent不需要导入。Server必须三个都要导入。

安装依赖
yum -y install net-snmp net-snmp-devel curl-devel java-1.8.0-openjdk java-1.8.0-openjdk-devel  OpenIPMI-devel  libssh2-devel libevent libevent-devel

创建用户
[root@zabbix_server ~]# groupadd zabbix 

[root@zabbix_server ~]# useradd -s /sbin/nologin -g zabbix zabbix   #创建系统用户

预编译
root@zabbix_server ~]# cd zabbix-4.2.6

[root@zabbix_server zabbix-4.2.6]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi

参数说明:

  --prefix=    #指定路径
 --enable-server         #zabbix Server 支持
 --enable-agent             #支持 Zabbix agent
 --with-mysql          #指定 MySql 库,可以选择自定路径mysql_config,mysql_config 是命令,用于编译 mysql 客户端程序
 --with-net-snmp         #支持 snmp 协议,需要安装 net-snmp-devel 包
 --with-libcurl             #支持 CURL 功能,libcurl 主要功能就是用不同的协议连接不同的服务器,libcurl当前支持的协议有 http,https,ftp,gopher,telent,dict,file,和 ldap 协议
 --enable-java      #支持java应用监控,编译时最好带上--enable-java这个参数,方便后续监控tomcat程序所用。
 --with-openipmi用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应等

看到如下信息,预编译就没有什么问题

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*                                  *
*********************************************************** 

 其他参数:

--enable-proxy     指的是支持 zabbix 代理服务器,zabbix proxy 是一个监控代理服务器,它收集到监控数据,选存放在缓冲区,保存的时间可以通过配置文件设定,然后再传送的 zabbix server。监控代理服务需要一个独立的数据库。

用 zabbix proxy 的好处:进程监控,当监控文遏制通讯不方便的时候,当通讯上千台设备的时候,使用 zabbix_proxy 可以简化维护分布式监控,降低 zabbix server 的负载

 安装
[root@zabbix_server zabbix-4.2.6]# make install

直接 make install 安装即可无需 make

为了方便在系统上操作zabbix相关命令,添加系统软连接

[root@zabbix_server ~]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/
[root@zabbix_server ~]# ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/

配置 zabbix servcer
 LogFile=/usr/local/zabbix/logs/zabbix_server.log   #日志存放位置
 PidFile=/usr/local/zabbix/logs/zabbix_server.pid   #pid文件存放位置
 DBHost=localhost   #指定zabbix服务端连接MySQL数据库主机名
 DBName=zabbix      #数据库名
 DBUser=zabbix      #连接MySQL数据库的用户
 DBPassword=123     #连接数据库的密码
 DBPort=3306

创建日志文件,设置属主属组

[root@zabbix_server ~]# mkdir -p /usr/local/zabbix/logs

[root@zabbix_server ~]# chown -R zabbix:zabbix /usr/local/zabbix/

 监控 Zabbix server 本身

监控本身,意思是本身作为服务器之外,自己也做自己的被监控端,也要使用agent这个代理程序

[root@zabbix_server ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf

 PidFile=/usr/local/zabbix/logs/zabbix_agentd.pid
 LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
 Server=127.0.0.1
 ListenPort=10050
 ServerActive=127.0.0.1
 Hostname=Zabbix server
 Timeout=15
 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
 UnsafeUserParameters=1

注:

其中 Server 和 ServerActive 都指定 Zabbix server 的 IP 地址,不同的是,前者是被动后者是主动。也就是说前者允许 127.0.0.1 这个 ip 来我这取数据。而 serverActive 的 127.0.0.1 的意思是,客户端主动提交数据给它。

Hostname=XXX,这个定义的名字必须和web页面里面host的名字一样, 名称标识

UnsafeUserParameters=1  #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本

启动服务 

如果 zabbix 用户不存在, 将以 root 运行,新建之后,如果 zabbix 存在,那么直接可以用 zabbix 运行

1)直接运行

[root@zabbix_server ~]#  /usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

如出现启动报错:

/usr/local/zabbix/sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory

1.可能是ibmysqlclient.so.20软件包没安装

2.如已经按照,就是包的位置不对,找不到库文件 或没有在库文件的路径下查看

查看包是否安装:

find / -name libmysqlclient.so.20 

2) 解决库文件找不到

在ld.so.conf中加入/usr/local/mysql/lib

把库文件所在的路径加到默认所搜库文件当中

vim /etc/ld.so.conf  #解决库文件找不到

include ld.so.conf.d/*.conf
/usr/local/mysql/lib  #添加的路径

 使库文件生效:

[root@zabbix_server ~]# ldconfig 

启动zabbix_server:

/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf

3)查看端口

 netstat -anptl | grep zabbix_server

服务端端口是10051 

添加 zabbix启动脚本 

Zabbix默认有部分启动脚本,脚本在源码目录的 misc/init.d/下,做下修改即可。

[root@zabbix_server ~]# cd /root/zabbix-4.2.6/misc/init.d/

[root@zabbix_server init.d]# cp fedora/core/* /etc/init.d/

vim /etc/init.d/zabbix_server 

 BASEDIR=/usr/local/zabbix  #找到此行,并修改。zabbix安装目录

PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid  # pid文件路径

vim /etc/init.d/zabbix_agentd     #修改客户端启动脚本文件

BASEDIR=/usr/local/zabbix   #找到此行,并修改。zabbix安装目录


PIDFILE=/usr/local/zabbix/logs/$BINARY_NAME.pid  # pid文件路径

设置开启自启:

[root@zabbix_server init.d]# chkconfig --add  zabbix_server
[root@zabbix_server init.d]# chkconfig --add zabbix_agentd
[root@zabbix_server init.d]# chkconfig zabbix_server on
[root@zabbix_server init.d]# chkconfig zabbix_agentd on

配置zabbix web 页面

1)拷贝 php 文件到 nginx 网站目录
cd /root/zabbix-4.2.6
[root@zabbix_server zabbix-4.2.6]# cp -r /root/zabbix-4.2.6/frontends/php/* /usr/local/nginx/html/

[root@zabbix_server zabbix-4.2.6]# chown -R www:www /usr/local/nginx/html/

注:/usr/local/nginx/html为Nginx默认站点目录 ,www为Nginx运行账户

注:PHP需要至少开启扩展:

gd,bcmath,ctype,libXML,xmlreader,xmlwriter,session,sockets,mbstring,gettext,mysql

查看是否包括了上面所提到的扩展模块 

/usr/local/php5.6/bin/php -m

2)开启默认打开 index.php

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

 location / {
            root   html;
            index  index.php index.html index.htm;   #添加index.php默认首页
        }

3)重启ngix 服务和 php-fpm 服务
nginx -s reload

/etc/init.d/php-fpm restart

打开浏览器安装 zabbix web

1)访问zabbix web 

下一步Next

 2)开始检查环境,确保环境符合条件要求

  如果不符合,就需要编辑 php.ini 文件,修改php环境,修改后重启php-fpm

3)下一步

 

显示的端口信息,默认下一步就可以

合适zabbix的概要信息,不对可以点击back回去修改

 单击finish完成zabbix web安装。

登录zabbix

默认用户名和密码分别为 admin,zabbix

 

登录后的界面:

 

基础zabbix安装完成

修改语言

1) 显示简体中文界面

在安装数据库时已经将zabbix库设置了utf-8字符

首先确定安装zabbix开启了中文支持功能:

登录到zabbix服务器的数据目录下(前面部署的zabbix数据目录是/usr/local/nginx/html/),打开 locales.inc.php文件

[root@zabbix_server ~]# grep "zh_CN" /usr/local/nginx/html/include/locales.inc.php 

                'zh_CN' => ['name' => _('Chinese (zh_CN)'),     'display' => true],

登录zabbix 右上角点击用户图标,选择语言

 2)解决zabbix绘图出现中文乱码问题:

在windows的控制面板,选择字体,选择一种中文字库例如“楷体”

把它拷贝到web端的fonts目录下:/usr/local/nginx/html/assets/fonts/,并确保后缀缪名为ttf

把之前的字体文件(DejaVuSans.ttf )移到别处,或重命名。

cd /usr/local/nginx/html/assets/fonts/
mv DejaVuSans.ttf ../

修改/usr/local/nginx/html/include/defines.inc.php文件中的字体配置,将里面关于字体设置从DejaVuSans替换成simkai

vi替换技巧:%s/DejaVuSans/simkai     其中:simkai为字库名,不含ttf后缀

 vim /usr/local/nginx/html/include/defines.inc.php 

 在vi编辑器的末行模式下输入%s/DejaVuSans/simkai

 监控本机

 1)点击配置-主机 启用本主机

(默认没有启动,点击后面红色的停用,则启用)

2) 启动zabbix_agnent
/usr/local/zabbix/sbin/zabbix_agentd 

 3)刷新页面,查看agent状态

 

 4)查看图像

zabbix启动服务总结

Nginx 服务启动

php-fpm 服务启动

Mysql 服务启动

测试LNMP环境正常

导入数据库、授权、源码安装 zabbix

zabbix_server 服务启动

zabbix_server 服务启动

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/973033.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号