Lnmp搭建zabbix运维监控系统


本文摘自PHP中文网,作者步履不停,侵删。

LINUX1.png

使用目的?

在公司项目中需要做一个日志监控,最开始选择的是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服务端

1

2

3

4

5

6

7

8

9

10

11

# 安装依赖

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>

1

2

groupadd zabbix

useradd -g zabbix zabbix

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

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

1

2

3

4

5

6

7

8

9

10

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则是相关的数据结构。

1

2

3

4

5

6

-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

.登录并导入数据库

1

2

3

4

5

6

7

8

# 登录数据

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集成开发环境自带的命令来创建

1

2

3

4

5

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文件的配置。

1

2

3

cgi.fix_pathinfo=0

改为

cgi.fix_pathinfo=1

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

安装代理端

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

1

2

3

4

5

6

7

8

9

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运维监控系统的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

Linux下怎么安装php扩展模块

Linux切换用户的命令是什么

Linux touch命令有什么用

一条项目中常用的Linux命令引发的经典算法题

Linux怎么查看历史命令

如何在Linux中查找文件创建时间(crtime)

Linux怎么查看目录

Linux操作系统安全加固的实例教程

Linux能用来干什么?

Linux系统如何防止tcp洪水攻击的方法介绍

更多相关阅读请进入《Linux》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...