Lnmp搭建zabbix运维监控系统

发布时间 - 2019-06-18 00:00:00    点击率:

使用目的?

在公司项目中需要做一个日志监控,最开始选择的是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用户 为什么要给zabbix创建一个单独的用户,很简单,是因为安全问题。为了安全考虑zabbix只使用普通用户运行,假如你当前用户叫ttlsa,那么你运行他,他便使用ttlsa身份运行。但是如果你在root环境下运行zabbix,那么zabbix将会主动使用zabbix用户来运行。但是如果你的系统没有名叫zabbix的用户,你需要创建一个用户。

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

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

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

问题根源是在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=
    ServerActive=
    Hostname=<本机的主机名>
4.设置zabbix-agent服务自启动并启动服务
    systemctl enable zabbix-agent.service      开机自启动
    systemctl start zabbix-agent.service          启动服务

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


# linux  # php  # sql  # mysql  # nginx  # 数据结构  # CGI  # docker  # 数据库  # apache  # zabbix  # 的是  # 是在  # 创建一个  # 是因为  # 其他的  # 安装包  # 数据库文件  # 几种  # 只需要 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Laravel如何使用withoutEvents方法临时禁用模型事件  Android仿QQ列表左滑删除操作  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  Python文件异常处理策略_健壮性说明【指导】  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  如何在阿里云虚拟主机上快速搭建个人网站?  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  如何在IIS服务器上快速部署高效网站?  如何实现javascript表单验证_正则表达式有哪些实用技巧  Laravel Session怎么存储_Laravel Session驱动配置详解  如何用免费手机建站系统零基础打造专业网站?  Laravel如何实现用户注册和登录?(Auth脚手架指南)  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  Laravel Octane如何提升性能_使用Laravel Octane加速你的应用  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  js实现点击每个li节点,都弹出其文本值及修改  HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】  百度浏览器网页无法复制文字怎么办 百度浏览器复制修复  如何在不使用负向后查找的情况下匹配特定条件前的换行符  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  C++时间戳转换成日期时间的步骤和示例代码  nodejs redis 发布订阅机制封装实现方法及实例代码  高防服务器租用首荐平台,企业级优惠套餐快速部署  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  如何快速生成可下载的建站源码工具?  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  javascript中对象的定义、使用以及对象和原型链操作小结  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  七夕网站制作视频,七夕大促活动怎么报名?  微信h5制作网站有哪些,免费微信H5页面制作工具?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  如何快速生成凡客建站的专业级图册?  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?