• 技术文章 >运维 >linux运维

    Lnmp搭建zabbix运维监控系统

    步履不停步履不停2019-06-18 13:55:58原创1447
    LINUX1.png

    php入门到就业线上直播课:进入学习

    使用目的?

    在公司项目中需要做一个日志监控,最开始选择的是efk,但是efk的资料相对较少并且之前对这几个产品都没接触过,使用起来难度。于是选择了zabbix作为项目的运维监控系统。

    zabbix能做什么?

    zabbix主要是用来网络监控、系统监控、应用监控等场景。zabbix分为server端和agent端,文章前半部分都是在讲server端的安装操作,后面结尾讲解agent的安装操作。

    搭建环境

    centos7.0,lnmp集成环境(mysql5.7,php7.2),zabbix4.0版本。手册给到如下几种安装方式:

    1. 源码安装(本文采用的也就是源码安装)
    2. 二进制安装
    3. 容器安装,例如docker安装

    安装步骤

    1.安装lnmp环境 由于lnmp集成包,安装非常方便,因此直接安装官网手册一键安装即可2.安装zabbix服务端

    # 安装依赖
    yum install net-snmp-devel libxml2-devel libcurl-devel libevent-devel  mysql-devel
    # 下载安装包(该安装包可以直接放在web的程序目录里面)
    wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.2.3/zabbix-4.2.3.tar.gz/download
    # 解压
    tar zxvf zabbix-4.2.3.tar.gz
    # 编译(这里我使用的是mysql,所以在编译的时候是用的mysql的依赖,如果是其他的数据库按照官网手册编译的时候编译其他的数据库依赖)
    cd zabbix-4.2.3
    ./configure --prefix=/web/data/zabbix-3.4.4/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
    # 开始安装
    make && make install

    3.创建zabbix用户 <font color='blue'>为什么要给zabbix创建一个单独的用户,很简单,是因为安全问题。为了安全考虑zabbix只使用普通用户运行,假如你当前用户叫ttlsa,那么你运行他,他便使用ttlsa身份运行。但是如果你在root环境下运行zabbix,那么zabbix将会主动使用zabbix用户来运行。但是如果你的系统没有名叫zabbix的用户,你需要创建一个用户。</font>

    groupadd zabbix
    useradd -g zabbix zabbix

    4.数据库相关配置 考虑到安全问题,因此这里我们同样的给zabbix创建一个单独的数据库用户,数据库名称也是zabbix。在本文中创建的MySQL用户为zabbix,密码可以根据自己定义。

    5.导入zabbix事先准备好的数据。 .查看数据库文件

    cd /home/wwwroot/zabbix-4.2.3/database && ls 
    drwxr-xr-x 2 mysql mysql  4096 6月   6 02:23 elasticsearch
    drwxr-xr-x 2 mysql mysql  4096 6月  13 10:10 ibm_db2
    -rw-r--r-- 1 root  root  21474 6月  13 10:10 Makefile
    -rw-r--r-- 1 mysql mysql   155 6月   6 02:23 Makefile.am
    -rw-r--r-- 1 mysql mysql 21722 6月   6 02:24 Makefile.in
    drwxr-xr-x 2 mysql mysql  4096 6月  13 10:10 mysql
    drwxr-xr-x 2 mysql mysql  4096 6月  13 10:10 oracle
    drwxr-xr-x 2 mysql mysql  4096 6月  13 10:10 postgresql
    drwxr-xr-x 2 mysql mysql  4096 6月  13 10:10 sqlite3

    .上面的几种目录就是针对不同的数据,zabbix自带的不同的数据库文件,我们是使用的MySQL,因此我们只需要关心mysql目录下面的文件,下面即是我们需要的文件。schema.sql文件数数据表结构,images.sql是相关的图片数据结构,data.sql则是相关的数据结构。

    -rw-r--r-- 1 mysql mysql 4018823 6月   6 02:24 data.sql
    -rw-r--r-- 1 mysql mysql 1978341 6月   6 02:23 images.sql
    -rw-r--r-- 1 root  root    15420 6月  13 10:10 Makefile
    -rw-r--r-- 1 mysql mysql     392 6月   6 02:23 Makefile.am
    -rw-r--r-- 1 mysql mysql   15711 6月   6 02:24 Makefile.in
    -rw-r--r-- 1 mysql mysql  142074 6月   6 02:24 schema.sql

    .登录并导入数据库

    # 登录数据
    mysql -u root -p
    # 选择实现创建好的zabbix数据库
    use zabbix
    # 依次导入数据库文件
    source /home/wwwroot/zabbix-4.2.3/database schema.sql
    source /home/wwwroot/zabbix-4.2.3/database data.sql
    source /home/wwwroot/zabbix-4.2.3/database images.sql

    配置虚拟域名

    本文搭建的zabbix是在centos7.0的虚拟环境中搭建,为了方便访问,搭建了一个虚拟域名.只需要配置一个nginx文件即可.环境中使用的是lnmp集成开发环境,则使用lnmp集成开发环境自带的命令来创建

    lnmp vhost add 
    # 指定root的目录,应该为
    /home/wwwroot/zabbix-4.2.3/frontends/php
    # 应该开启pathinfo模式,
    #rwriter 选择WordPress(不强制要求)

    在本地点的hosts文件中添加上述自己配置的虚拟域名(以.dev.zabbix.com为例)

    使用zabbix

    我们在登录时候,会提示我们一些安装信息,我们按照提示填写即可。在安装之后会自动跳转到登录页面,可以选择宾客模式也可以使用管理员模式。

    屏幕快照 2019-06-14 00.20.13.png

    宾客模式就只是简单的浏览操作。系统默认的管理账号是Admin,密码是zabbix。 在使用管理员账号的时候会可能会提示如下信息。如要是因为我们的web服务导致的,如果是使用的Apache则不会出现如下问题。

    login-as-guest.png

    问题根源是在zabbix php定位问题发现,zabbix是依据php文件名来设置权限,例如index.php、dashboard.php这些,如果cgi.fix_pathinfo设置为0,那么php无法获取到url请求的文件名称,例如访问index.php,获取不到index.php也定位到权限,于是出现这个错误。解决办法是:修改php.ini文件的配置。

    cgi.fix_pathinfo=0
    改为
    cgi.fix_pathinfo=1

    此时我们登录进去就可以看到如下界面了。

    安装代理端

    配置文件目录:/etc/zabbix/zabbix_agentd.conf

    1.在被监控主机上设置防火墙,允许zabbix-agent的10050端口通过
    2.执行yum list |grep zabbix,找到zabbix的agent安装包并安装,如包名zabbix-agent.x86_64
    3.在 /etc/zabbix/zabbix_agentd.conf 中更改:
        Server=<zbx-server的ip>
        ServerActive=<zbx-server的ip>
        Hostname=<本机的主机名>
    4.设置zabbix-agent服务自启动并启动服务
        systemctl enable zabbix-agent.service      开机自启动
        systemctl start zabbix-agent.service          启动服务

    更多Linux相关技术文章,请访问Linux教程栏目进行学习!

    以上就是Lnmp搭建zabbix运维监控系统的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    快捷开发Web应用及小程序:点击使用

    支持亿级表,高并发,自动生成可视化后台。

    专题推荐:linux 监控系统
    上一篇:linux如何启动nginx? 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• 常用的linux命令汇总• linux编辑文件命令的方法有哪些• linux如何重启nginx?
    1/1

    PHP中文网