LNMP+Zabbix的安装与部署

一、Zabbix简介

1、zabbix是一个基于WEB界面的,并提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供柔软的通知机制以让运维人员能够快速定位。

2、zabbix通过C/S模型来收集数据,通过B/S模型模式在web端展示和进行配置。

被监控端:主机设备通过安装agent收集数据并发送给server端,网络设备通过SNMP收集数据并发送给server端。

server端:通过收集SNMP和agent发送来的数据,将数据写入到后台数据库中(例如:mysql,oracle),在通过web展示出来。

3、运行环境

zabbix server 需要运行在LAMP或者是LNMP的环境下;

agent可以部署在目前常见的OS中,例如linux,windows,HPUX,Solaris,Sun;

SNMP可以支持常见的网络设备。

官方给出了zabbix根据不同环境与平台所需要的硬件需求:

二、Zabbix 的部署准备

1、LNMP环境准备与配置

LNMP编译安装详细步骤博客链接:http://www.cnblogs.com/liuyansheng/p/6065296.html

安装好lnmp后,编辑PHP相关的 /etc/php.ini 文件。(这里必须做响应的修改,否则在之后的web初始化过程中会报错。)

vim /etc/php.ini

修改如下条目或者通过 sed 命令进行内容替换

date.timezone = Asia/Shanghai
max_execution_time =
post_max_size = 16M ###有时候这里会被设置成32M,但是这里根据后面初始化提示中的信息,被要求设置成16M
max_input_time=
memory_limit = 128M
mbstring.func_overload =

或通过 sed 方式进行内容替换:

#sed -i "s/;date.timezone =/date.timezone = Asia\/Shanghai/g" /etc/php.ini
#sed -i "s#max_execution_time = 30#max_execution_time = 300#g" /etc/php.ini
#sed -i "s#post_max_size = 8M#post_max_size = 32M#g" /etc/php.ini
#sed -i "s#max_input_time = 60#max_input_time = 300#g" /etc/php.ini
#sed -i "s#memory_limit = 128M#memory_limit = 128M#g" /etc/php.ini
#sed -i "/;mbstring.func_overload = 0/ambstring.func_overload = 2\n" /etc/php.ini

2、MySQL数据库的准备

添加mysql数据库的 zabbix用户,并设置密码:

先用root身份登入mysql中,并执行以下命令

mysql>use mysql
mysql>insert into mysql.user(Host,User,Password) values("localhost","zabbix",password("zabbix"));
mysql>flush privileges

3、为centos系统创建zabbix用户

#groupadd zabbix -g
#useradd -g zabbix -u -m zabbix

PS:这里将zabbix用户的UID与GID均设置为501。

三、Zabbix Server的安装

1、zabbix源文件的下载 https://fossies.org/linux/misc/zabbix-3.2.1.tar.gz/

关于zabbix的最新版本源文件可以访问其官方网站并下载,地址为:http://www.zabbix.com/download.php

2、zabbix的解压缩与编译安装

#tar xvf zabbix-.x.x.tar.gz
#./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/localmysql/bin/mysql_config --with-net-snmp --with-libcurl
#make
#make install

PS:第一行shell语句的“2.x.x”代表所下载的zabbix源文件的版本号。

3、检查zabbix是否被添加进入系统服务文件中

tail -n4 /etc/services

如果看到如下信息则代表已经添加成功,或者可以自行手动查询一下/etc/services 文件,真没有手动添加到 /etc/services 文件中:

zabbix-agent 10050/tcp     #Zabbix Agent
zabbix-agent 10050/udp    #Zabbix Agent
zabbix-trapper 10051/tcp   #Zabbix Trapper
zabbix-trapper 10051/udp  #Zabbix Trappe

4、建立zabbix所需的数据库

root身份等人到mysql数据库中,并执行以下命令建立zabbix数据库:

mysql>create database zabbix character set utf8;
mysql>grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql>flush privileges;

而后在下载的源文件中存在一个database/mysql 子目录,中间存放在建立zabbix数据库结构的SQL脚本文件。先进入到zabbix源文件所在的目录,并执行以下语句:

要按照下面顺序导入:

#mysql -u zabbix -p zabbix < ./database/mysql/schema.sql
#mysql -u zabbix -p zabbix < ./database/mysql/images.sql
#mysql -u zabbix -p zabbix < ./database/mysql/data.sql

PS:以上三条指令将目的执行sql脚本,构建zabbix数据库的结构,每次都要输入mysql中zabbix账户的密码

5、创建zabbix的的日志文件和连接

#mkdir /var/log/zabbix
#chown zabbix.zabbix /var/log/zabbix
#ln -s /usr/local/zabbix/etc /etc/zabbix
#ln -s /usr/local/zabbix/bin/* /usr/bin/
#ln -s /usr/local/zabbix/sbin/* /usr/sbin/

6、拷贝与配置zabbix启动文件

#cp misc/init.d/fedora/core/zabbix_* /etc/init.d/
#chmod /etc/init.d/zabbix_*
#sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_server
#sed -i "s#BASEDIR=/usr/local#BASEDIR=/usr/local/zabbix#g" /etc/init.d/zabbix_agentd

7、配置zabbix_server.conf服务端文件

编辑并修改 /etc/zabbix/etc/zabbix_server.conf 文件,并修改如下条目:

DBName=zabbix 数据库名称
DBUser=zabbix 数据库用户
DBPassword=zabbix 数据库密码(这里为了演示,先前设置了zabbix数据库密码为zabbix)

tmp/zabbix_server.log  改 var/log/zabbix/zabbix_server.log #更改日志路径

或者用 sed 方式替换文件内容:

#sed -i "s/DBUser\=root/DBUser\=zabbix/g" /etc/zabbix/etc/zabbix_server.conf
#sed -i "/# DBPassword=/aDBPassword=zabbix\n" /etc/zabbix/etc/zabbix_server.conf
#sed-i "s#tmp/zabbix_server.log#var/log/zabbix/zabbix_server.log#g" /etc/zabbix/etc/zabbix_server.conf

8、配置 zabbix_agentd.conf 文件 (这里是为了监控 server 本身, 如对其他服务器进行监控,配置文件相类似)

PS:这里要住的的是zabbix_agentd.conf是客户端配置文件,这里是为了演示,因此这里配置这个文件的目的就是为了能够实现对本地服务器的监控。该文件需要修改如下四个条目:

Server=127.0.0.1 此处添加服务端的 ip,如服务器不为本机,则需要填写远端 zabbix_server 的 ip 地址
ServerActive=127.0.0.1 此处修改为服务端的 ip,这里应该修改为该服务器对外的ip地址
/tmp/zabbix_agentd.log 修改日志路径
UnsafeUserParameters=0 默认是不启用自定义脚本功能的,要自定义 key ,需开启,设置为1
Include=/etc/zabbix/zabbix_agentd.conf.d/ 自定义的 agent d 配置文件可以写在这个目录下面

利用sed 方式内容替换的执行命令如下:

#sed -i "s/Server\=127.0.0.1/Server\=127.0.0.1,192.168.1.89/g" /etc/zabbix/etc/zabbix_agent.conf
#sed -i "s/ServerActive\=127.0.0.1/ServerActive\=192.168.1.89:10051/g" /etc/zabbix/etc/zabbix_agent.conf
#sed -i "s#tmp/zabbix_agentd.log#var/log/zabbix/zabbix_agentd.log#g" /etc/zabbix/etc/zabbix_agentd.conf
#sed -i "#UnsafeUserParameters=0#aUnsafeUserParameters=1\n" /etc/zabbix//etc/zabbix_agentd.conf

9、拷贝php网页文件到nginx中

#cp -r ./frontends/php/ /usr/local/nginx/html/zabbix

10、修改nginx.conf配置文件

server{

  service_name xxx.xxx.xxx

  index index.html index.htm index.php

  root  /usr/local/nginx/html/zabbix;

  fastcgi_param SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;

改为:fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;

要是搭建的不是nginx,是 Apache如下:

#cp -r ./frontends/php/ /var/www/html/zabbix

#chown -R apache.apache /var/www/html/zabbix

11、开启zabbix

#/etc/init.d/zabbix_server start
#/etc/init.d/zabbix_agent start

至此,zabbix的安装完成。

四、通过Web设置zabbix

浏览器中输入地址:http://ip/zabbix,则可看到如下初始化欢迎界面。

PS:其中ip代表本地服务器对外开放的ip地址

1、出现如下错误是说缺少.php文件

点击下载, Download the configuration file

下载到本地后上传到/usr/local/nginx/html/zabbix/conf目录下。

2、如果出现一下错误:

解决:修改CFrontendSetup.php文件

1、vi /usr/local/nginx/html/zabbix/include/classes/setup/CFrontendSetup.php

$current=-1;
/**$current=ini_get('always_populate_raw_post_data');**/

2、修改php.ini文件

vi /usr/local/php/etc/php.ini

;mbstring.func_overload = 2

之后reload php和nginx

再次访问浏览器:http://ip/zabbix.php

检测zabbix各类需求通过之后即可点击Next按钮,如下:

根据所要填写的需求填写,输入zabbix的密码,这里使用的密码是zabbix,然后点击Test connection测试连接,显示绿色的“OK”代表数据库连接测试成功,即可点击Next,如下:

预览配置信息,确认无误点击Next按钮,如下:

创建成功后显示绿色的“OK“,点击Finish按钮后进入zabbix的管理操作登陆界面:

PS:这里初始的账号名为:admin,初始密码为:zabbix。

填写完账号和密码后登陆zabbix的管理操作界面,如下:

至此,zabbix server 基本安装结束。

最新文章

  1. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 &#39;T_Shell&#39; 中的标识列插入显式值。
  2. 简单研究下Retrofit
  3. 【转】 java web开发之安全事项
  4. sql update多表联合更新
  5. 设置符合条件的DataGridView的行的颜色的两种方法
  6. C#设计模式之二十策略模式(Stragety Pattern)【行为型】
  7. VSTS/TFS Auto Build
  8. MFC 中线程传递CString 是不安全的 转
  9. 替换空格[by Python]
  10. 其它综合-运维老鸟分享linux运维发展路线规划
  11. 【XSY2535】整数 NTT
  12. RedHat Linux关闭seLinux命令
  13. spring学习笔记-AOP
  14. 01day
  15. 【转发】centos 7开启FTP以及添加用户配置权限,只允许访问自身目录,不能跳转根目录
  16. Maven打包生成源码包和Javadoc包
  17. php变量详细讲解
  18. MBIST:用于嵌入式存储器的可测试设计技术
  19. Oozie的详细启动步骤(CDH版本的3节点集群)
  20. 11 java 线程池 使用实例

热门文章

  1. Linux最常用的命名
  2. TFS2018 获取所有Build变量及变量值
  3. android CheckBox使用和状态获得
  4. Android 集成支付宝支付详解
  5. SqlServer 数据恢复
  6. HTML网页之进入站点口令脚本
  7. SAE云平台的使用
  8. Oracle启动和关闭服务
  9. pyspark 连 MongoDB复制集
  10. 20170223-问题001,增强中的E消息 显示为 S模式消息,