CENTOS安装部署zabbix

果学网 -专注IT在线www.prismcollege.com

參考原文:http://www.showerlee.com/archives/13

RHCE过的EMAIL已经下来。所以近期闲了就准备把先前的文档更新下。

我更新的内容主要是把自己当时的理解加到配置里,告诉大家我当时的一些思路想法。而不会像网上的非常多文档仅仅会把一大堆命令贴出来。搞得非常多本身对该知识点不了解的朋友更加晕头转向。

搞了LINUX大半年,真心是兴趣所致,变成LINUX大牛是我未来事业的目标。对此我乐此不彼,但也深信不疑。。

近期研究了下群里谈论比較火的一个国外开源网络监控系统ZABBIX。玩过一遍后就深深被他的界面简洁,后台配置逻辑分类清晰。易于配置上手的长处给吸引,马上将单位的系统统一换成这个平台监測,測试了一段时间。效果良好。

之前玩过cacti和nagios。算是一个大家耳熟能详的业内经常使用的的网管互补组合。但个人感觉前者因为调用snmp协议。导致有时候在网络不太稳定时会有数据丢失情况。后者nagios尽管不依赖于SNMP,但client的复杂的安装。初始配置以及须要读懂插件语法导致会让非常多刚開始学习的人望而却步。

zabbix不仅吸取了两者的制图和动态监測的长处,并且非常多插件以及经常使用脚本模板都是系统自带。最重要的配置相对于前两者简洁了非常多,所以省去了非常多学习成本,加之该监控系统是利用PHP语言写的,系统个人定制就无需使用者改动底层代码,而能够直接在WEB界面去依照自己的偏好设置,支持字体改动以及中文简体。强烈推荐大家在线上使用这套网管平台。

zabbix简单介绍(摘自百度百科)

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方式。

zabbix能监视各种网络參数。保证服务器系统的安全运营;并提供柔软的通知机制以让系统管理员高速定位/解决存在的各种问题。zabbix由2部分构成。zabbix server与可选组件zabbix agent。zabbix server能够通过SNMP。zabbix agent,ping,port监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它能够执行在Linux, Solaris,
HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。zabbix agent须要安装在被监视的目标server上,它主要完毕对硬件信息或与操作系统有关的内存。CPU等信息的收集。

zabbix agent能够执行在Linux ,Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows 2000/2003/XP/Vista)等系统之上。

zabbix server能够单独监视远程server的服务状态;同一时候也能够与zabbix
agent配合。能够轮询zabbix agent主动接收监视数据(trapping方式),同一时候还可被动接收zabbix agent发送的数据(trapping方式)。

另外zabbix server还支持SNMP (v1,v2)。能够与SNMP软件(比如:net-snmp)等配合使用。

zabbix的主要特点:

- 安装与配置简单。学习成本低

- 支持多语言(包含中文)

- 免费开源

- 自己主动发现server与网络设备

- 分布式监视以及WEB集中管理功能

- 能够无agent监视

- 用户安全认证和柔软的授权方式

- 通过WEB界面设置或查看监视结果

- email等通知功能等等

Zabbix主要功能:

- CPU负荷

- 内存使用

- 磁盘使用

- 网络状况

- port监视

- 日志监视

配置前先关闭iptables和SELINUX,避免安装过程中报错。

# service iptables stop

# setenforce 0

# vi /etc/sysconfig/selinux

---------------

SELINUX=disabled

---------------

一.安装LAMP环境

本博传送门:http://www.showerlee.com/archives/6

二、zabbix(server,agent)配置:

server: 192.168.7.201

agent:  192.168.7.249

简单提下,事实上是服务端安装zabbix_server,zabbix_agentd两个服务。client仅仅需安装zabbix_agentd一个服务。监控原理事实上就是zabbix_agentd服务将从系统中获取的相关数据传送给zabbix_server服务,然后zabbix_server服务将数据以PHP页面显示出来,非常好理解。

(server)表示仅服务端配置

(agent)表示仅client配置

(server,agent)表示client与服务端都需配置

1.下载zabbix(server,agent)

注:本人下载的是官方2.06的服务端与client的稳定整合编译包。所以后面编译的时候注意。以 --enable-server --enable-agent 參数编译的为服务器端。以 --enable-agent參数编译的为client。

官方提供的第二种下载方式是服务端与client单独区分的编译包。编译方法与本博的方法不同。这里请注意区分。

# wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.6/zabbix-2.0.6.tar.gz/download

2.安装zabbix所需的组件(server,agent)

# yum -y install curl curl-devel net-snmp net-snmp-devel perl-DBI

3.创建用户账号(server,agent)

# groupadd zabbix

# useradd -g zabbix zabbix

# usermod -s /sbin/nologin zabbix

4.创建zabbix数据库并导入zabbix数据库数据(server)

# mysql -u root -p123456

> grant all on zabbix.* to zabbix@localhost identified by '123456';

> create database zabbix;

# tar zxvf zabbix-2.0.6.tar.gz

# cd zabbix-2.0.6

# mysql -uzabbix -p123456 zabbix < database/mysql/schema.sql

# mysql -uzabbix -p123456 zabbix < database/mysql/images.sql

# mysql -uzabbix -p123456 zabbix < database/mysql/data.sql

5.编译安装(server,agent)

server: (192.168.7.201)

# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl

# make install

agent:  (192.168.7.249)

# ./configure --enable-agent

# make install

这里笔者因为当时编译时忘记自己定义安装文件夹导致zabbix配置文件使用了默认路径。在/usr/local/etc/下。这里若又一次编译则以下更改的地方较多,后面的内容都以此路径为准。

參照本博配置的朋友,建议编译时加 --prefix=/usr/local/zabbix 參数,则zabbix配置文件默认在/usr/local/zabbix/etc文件夹下,后面启动服务前需载入zabbix文件夹下bin与sbin文件夹的环境变量

默认zabbix安装路径/usr/local/下的bin与sbin文件夹由于与系统合并,所以无需载入环境变量

遇到错误文章最后有解答

6.编辑配置文件(server,agent)

# cd /usr/local/etc/

去掉配置文件凝视:

# cat zabbix_server.conf |grep -v "#" |grep -v "^$" > zabbix_server.conf.bak

# cp zabbix_server.conf.bak zabbix_server.conf

# cat zabbix_agentd.conf |grep -v "#" |grep -v "^$" > zabbix_agentd.conf.bak

# cp zabbix_agentd.conf.bak zabbix_agentd.conf

server: (192.168.7.201)

# vi /usr/local/etc/zabbix_server.conf

改动例如以下内容并删除其它未改动參数条目:

-------------

LogFile=/var/log/zabbix_server.log

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=123456

-------------

# vi /usr/local/etc/zabbix_agentd.conf

改动例如以下内容并删除其它未改动參数条目:

-------------

LogFile=/var/log/zabbix_agentd.log

Server=127.0.0.1,192.168.7.201

UnsafeUserParameters=1

-------------

agent:  (192.168.7.249)

# vi /usr/local/etc/zabbix_agentd.conf

改动例如以下内容并删除其它未改动參数条目:

-------------

LogFile=/var/log/zabbix_agentd.log

Server=192.168.7.201

UnsafeUserParameters=1

-------------

# touch /var/log/zabbix_server.log

# chmod 777 /var/log/zabbix_server.log

# touch /var/log/zabbix_agentd.log

# chmod 777 /var/log/zabbix_agentd.log

7、启动守护进程(server,agent)

在服务器端执行启动zabbix_server

# zabbix_server

server启动port为10051

在全部被监控的机器上执行zabbix_agentd 。

# zabbix_agentd

agentd启动port为10050

注意若server打开iptables服务,则需加入该两个port通行。

# iptables -A INPUT -p tcp  --dport 10050 -j ACCEPT

# iptables -A INPUT -p tcp  --dport 10051 -j ACCEPT

注:重新启动服务可直接kill掉zabbix进程再又一次依照以上方法启动

# pkill zabbix

# ps -ef |grep zabbix

或配置开机启动脚本:

# cd zabbix-2.0.6

# cp misc/init.d/tru64/zabbix_server   /etc/init.d/zabbix_server

# cp misc/init.d/tru64/zabbix_agentd   /etc/init.d/zabbix_agentd

# cd /etc/init.d/

# chmod 755 zabbix_*

# vi zabbix_server

# vi zabbix_agentd

在文件头部的#!/bin/sh行下分别加入例如以下两行:

--------------

#chkconfig: 35 95 95

#description:zabbix Agent server

--------------

注:假设之前编译时自己定义了zabbix的路径,须要找到例如以下行

DAEMON=/usr/local/sbin/zabbix_server

将后面的參数改成你自己定义的路径,本篇文档使用默认路径,这里不须要改动

# chkconfig --add zabbix_server

# chkconfig --add zabbix_agentd

# chkconfig zabbix_server on

# chkconfig zabbix_agentd on

重新启动服务:

# service zabbix_server restart

------------------------------------------------------------------------------

注: 启动zabbix_server假设报例如以下错误

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

须要将mysql lib库增加系统库

# locate libmysqlclient.so.18

/usr/local/mysql/lib/libmysqlclient.so.18

/usr/local/mysql/lib/libmysqlclient.so.18.1.0

# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf

# ldconfig

# service zabbix_server restart

--------------------------------------------------------------

# service zabbix_agentd restart

8.安装zabbix web界面(server)

复制ZABBIX PHP源码文件

zabbix的服务端程序是用php写的。因此须要一个支持LAMP架构的server平台

如今将ZABBIX安装文件夹下 frontends/php 以下的php源码文件复制到webserverhtml文件文件夹以下。

这里建议用子文件夹替换APACHE HTML根文件夹或使用APACHE虚拟主机

这里測试环境我为了方便就选择了前者。

先建立一个子文件夹。将zabbix终端php文件复制到该子文件夹里面,运行以下的命令:

# mkdir /usr/local/apache2/htdocs/zabbix

# cd frontends/php

# cp -a . /usr/local/apache2/htdocs/zabbix

安装前端

step 1

在你的浏览器中,输入url:http://192.168.7.201/zabbix,你将看到前端安装向导的第一个画面。CENTOS安装部署zabbix

step 2

确保全部依赖的软件都正确安装。

CENTOS安装部署zabbixCENTOS安装部署zabbix

查看到几处不符合要求

需改动该PHP文件配置文件參数:

# vi /usr/local/php5/lib/php.ini

查找例如以下參数并改动为:

----------------

post_max_size = 16M

max_execution_time = 300

max_input_time = 300

----------------

载入PHP下gettext模块

# cd /root/php-5.4.13/ext/gettext

# /usr/local/php5/bin/phpize

# ./configure --with-php-config=/usr/local/php5/bin/php-config

# make && make install

载入该模块

# vi /usr/local/php5/lib/php.ini

加入例如以下行:

extension = "/usr/local/php5/lib/php/extensions/no-debug-zts-20100525/gettext.so"

重新启动apache服务

# service httpd restart

刷新页面:

CENTOS安装部署zabbixCENTOS安装部署zabbix

step 3

输入之前在MYSQL后台设置的zabbix数据库信息:

DBName=zabbix

DBUser=zabbix

DBPassword=123456

測试连接时若报错。加入例如以下命令:

# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

CENTOS安装部署zabbix

step 4

输入zabbixserver端的具体信息CENTOS安装部署zabbix

step 5

检查一下设置情况。

CENTOS安装部署zabbix

step 6

下载配置文件,并把他放置在/usr/local/apache2/htdocs/zabbix/conf/ 文件夹下 CENTOS安装部署zabbixCENTOS安装部署zabbix

step 8

zabbix前端已经安装就绪。默认的username是Admin。password是zabbix。CENTOS安装部署zabbix

注:例如以下报错是由于zabbix数据未导入MYSQL数据库:CENTOS安装部署zabbix

zabbix主界面如图,server端配置完成。CENTOS安装部署zabbix

手动加入主机

CENTOS安装部署zabbixCENTOS安装部署zabbixCENTOS安装部署zabbix

大功告成。

。。

注:

1.显示中文简体界面

点击:右上角Profile

依照如图选择Chinese(zh_CN),保存:CENTOS安装部署zabbix

2.解决zabbix画图中出现中文乱码问题:

a.从windows下控制面板->字体->选择一种中文字库。比如“微软雅黑”

b.把它复制到zabbix的web端的fonts文件夹下比如:/usr/local/apache2/htdocs/zabbix/fonts,而且把TTF后缀改为ttf

c.改动zabbix的web端 include/defines.inc.php

# cd /usr/local/apache2/htdocs/zabbix

# vi include/defines.inc.php

搜索 'DejaVuSans'

用"//"凝视掉系统默认行。并加入新的字体參数行。

当中msyh为字库名字,不包括ttf后缀

----------------------

//define('ZBX_FONT_NAME', 'DejaVuSans');

define('ZBX_FONT_NAME', 'msyh');

//define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans');

define('ZBX_GRAPH_FONT_NAME', 'msyh');

3.监控windows主机:

下载地址:http://www.zabbix.com/downloads/2.0.6/zabbix_agents_2.0.6.win.zip

在C:\Program Files\下创建zabbix目录

解压zip包后:将包内bin/win64/下的全部文件拷贝到 C:\Program Files\zabbix下

并在该文件夹下创建一个zabbix_agentd.conf文件,内容为

-------------------

LogFile=C:\Program Files\zabbix\zabbix_agentd.log

Server=192.168.7.11

UnsafeUserParameters=1

-------------------

进入cmd命令行:

# cd C:\Program Files\zabbix

安装zabbixclient:

# zabbix_agentd.exe -c "c:\Program Files\zabbix\zabbix_agentd.conf" -i

启动zabbix服务:

# zabbix_agentd.exe -c "c:\Program Files\zabbix\zabbix_agentd.conf" -s

參数含义:

-c    制定配置文件所在位置

-i    安装client

-s    启动client

-x    停止client

-d    卸载client

如图:

CENTOS安装部署zabbix

在服务端加入client主机监控同上。。

---------------大功告成-----------------

zabbixconfigure时候遇到的问题(CentOS)为你解答:

在CentOS系统中。安装zabbix进行configure时会遇到下面4个主要问题

./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber --with-libcurl

1 configure: error: MySQL library not found

the problem is not installed mysql-devel

  1. #yum install mysql-devel

2 configure: error: Jabber library not found

the problem is not installed jabber lib

  1. #wget http://iksemel.googlecode.com/files/iksemel-1.4.tar.gz

下载完毕后解压、配置、安装:

  1. tar zxvf iksemel-1.4.tar.gz
  2. cd iksemel-1.4
  3. configure
  4. make
  5. make install

之后对zabbix进行configure还是会遇到这个问题。那么将jabber文件夹指定就可以:#./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-jabber=/usr/local/ --with-libcurl

3 configure: error: Not found curl Library

  1. #yum install curl-devel (此项未经測试)

4 configure: error : Not found NET-SNMP library

  1. yum install net-snmp-devel

看完上方四点不在一起也遇到了同样的问题,然后按上解决问题的方法!

版权声明:本文博主原创文章,博客,未经同意不得转载。

上一篇:linQ学习笔记之二简单的linq使用


下一篇:.net core 获取本地ip及request请求端口