1. 程式人生 > >Zabbix 安裝

Zabbix 安裝

監控

技術分享圖片

Zabbix


一、簡介

1、 zabbix 簡介

Zabbix 是一個高度集成的網絡監控解決方案,可以提供企業級的開源分布式監控解決

方案,由一個國外的團隊續維護更新,件可以自由下使用,團隊靠提供收的技支持

zabbix是一個基於Web界面的,提供分布式系統監控以及網絡監視功能的企業級的開源解決方案。

zabbix能監視種網絡參數,保器系的安全運營提供活的通知機制以管理快速定位/解存在的各種問題

zabbix主要由2部分成zabbix server和zabbix agent,可選組建zabbix proxy

zabbix server可以通SNMP,zabbix agent,fping端口監視等方法對遠程服器或網絡狀態完成監視據收集等功能

支持Linux以及Unix平臺,Windows平臺只能安裝客



2、Zabbix 功能

①具備常見的商業監控軟件所具備的功能(主機的性能監控、網絡設備性能監控、數據庫)

性能監控、FTP 等通用協議監控、多種告警方式、詳細的報表圖表繪制)

②支持自動發現網絡設備和服務器(可以通過配置自動發現服務器規則來實現)

③支持自動發現(low discoverykey 實現動態監控項的批量監控(需寫腳本)

④支持分布式,能集中展示、管理分布式的監控點

⑤擴展性強,

server 提供通用接口(api 功能),可以自己開發完善各類監控(根據相關接口編寫程序實現)編寫插件容易,可以自定義監控項,報警級別的設置。

⑥數據收集

技術分享圖片 可用和性能檢測

技術分享圖片 支持snmp(包括trapping and polling)IPMIJMXSSHTELNET

技術分享圖片 自定義的檢測

技術分享圖片 自定義收集數據的頻率

技術分享圖片 服務器/代理和客戶端模式

技術分享圖片 靈活的觸發器

技術分享圖片 可以定義非常靈活的問題閾值,稱為觸發器,從後端數據庫的參考值

技術分享圖片 高可定制的報警

技術分享圖片 發送通知,可定制的報警升級,收件人,媒體類型

技術分享圖片 通知可以使用宏變量有用的變量

技術分享圖片 自動操作包括遠程命令

技術分享圖片 實時的繪圖功能

技術分享圖片 監控項實時的將數據繪制在圖形上面

技術分享圖片

WEB 監控能力

技術分享圖片 ZABBIX 可以模擬鼠標點擊了一個網站,並檢查返回值和響應時間

Api 功能

技術分享圖片 應用api 功能,可以方便的和其他系統結合,包括手機客戶端的使用。

更多功能請查看


3、Zabbix 工作方式

Zabbix 通過C/S 模式采集數據,通過B/S 模式在web 端展示和配置。

被監控端:主機通過安裝agent 方式采集數據,網絡設備通過SNMP 方式采集數據

Server 端:通過收集SNMP agent 發送的數據,寫入數據庫(MySQLORACLE 等),

再通過php+apache web 前端展示。


4、Zabbix 的運行條件

Server:Zabbix Server 需運行在LAMP(Linux+Apache+Mysql+PHP)環境下(或者

LNMP),對硬件要求低

Agent:目前已有的agent 基本支持市面常見的OS,包含Linux、HPUX、Solaris、Sun、

windows

SNMP:支持各類常見的網絡設備

SNMP(Simple Network Management Protocol,簡單網絡管理協議


5、監控邏輯圖

技術分享圖片


二、安裝部署

1、環境準備

一臺centos 6.5操作系統服務器,關閉防火墻,selinux,部署lamp平臺

在這裏采用的lamp環境是apache2.4+mysql5.6+php5.6

[root@www zabbix]# cat /etc/redhat-release

CentOS release 6.5 (Final)

[root@www zabbix]# uname -r

2.6.32-431.el6.x86_64


2、安裝zabbix依賴包

yum install fping net-snmp-devel unixODBC-devel openssl-devel OpenIPMI-devel java-devel curl-devel libxml2-devel iksemel-devel libevent-devel -y


個人習慣每安裝的服務都會另創建目錄,博主在這裏創建的是/service/zabbix,安裝包的位置安裝的位置在/usr/local/zabbix下載zabbix軟件包,並添加服務用戶


useradd zabbix -s /sbin/nologin/ -M

mkdir /service/zabbix -p

下載tar包

cd /service/zabbix && wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.3/zabbix-3.2.6.tar.gz

tar xf zabbix-3.2.6.tar.gz 解壓

cd zabbix-3.2.6


3、安裝包說明

[root@www zabbix-3.2.6]# ll

總用量 1392

-rw-r--r-- 1 1000 1000 49137 7月 22 2016 aclocal.m4

-rw-r--r-- 1 1000 1000 98 7月 22 2016 AUTHORS

drwxr-xr-x 4 1000 1000 4096 7月 22 2016 bin zabbix的windows版本程序

drwxr-xr-x 4 1000 1000 4096 7月 22 2016 build

-rw-r--r-- 1 1000 1000 687803 7月 22 2016 ChangeLog

-rwxr-xr-x 1 1000 1000 7333 1月 3 2014 compile

drwxr-xr-x 3 1000 1000 4096 7月 22 2016 conf zabbix的配置文件

-rwxr-xr-x 1 1000 1000 45297 8月 11 2013 config.guess

-rwxr-xr-x 1 1000 1000 35564 8月 11 2013 config.sub

-rwxr-xr-x 1 1000 1000 376528 7月 22 2016 configure

-rw-r--r-- 1 1000 1000 46788 7月 22 2016 configure.ac

-rw-r--r-- 1 1000 1000 17990 7月 22 2016 COPYING

drwxr-xr-x 7 1000 1000 4096 7月 22 2016 database 數據庫文件

-rwxr-xr-x 1 1000 1000 23566 1月 3 2014 depcomp

drwxr-xr-x 3 1000 1000 4096 7月 22 2016 frontends php文件,zabbix的web

drwxr-xr-x 2 1000 1000 4096 7月 22 2016 include

-rw-r--r-- 1 1000 1000 82 7月 22 2016 INSTALL

-rwxr-xr-x 1 1000 1000 13997 1月 3 2014 install-sh

drwxr-xr-x 2 1000 1000 4096 7月 22 2016 m4

-rw-r--r-- 1 1000 1000 3155 7月 22 2016 Makefile.am

-rw-r--r-- 1 1000 1000 30553 7月 22 2016 Makefile.in

drwxr-xr-x 2 1000 1000 4096 7月 22 2016 man

drwxr-xr-x 5 1000 1000 4096 7月 22 2016 misc

-rwxr-xr-x 1 1000 1000 6872 1月 3 2014 missing

-rw-r--r-- 1 1000 1000 52 7月 22 2016 NEWS

-rw-r--r-- 1 1000 1000 188 7月 22 2016 README

drwxr-xr-x 10 1000 1000 4096 7月 22 2016 src zabbix的核心程序文件

drwxr-xr-x 3 1000 1000 4096 7月 22 2016 upgrades


4、編譯安裝

./configure --prefix=/usr/local/zabbix \ #指定安裝目錄

--enable-server \ #安裝服務端

--enable-agent \ #安裝客戶端

--enable-java \ #安裝java模塊

--enable-ipv6 \

--with-mysql=/usr/local/mysql/bin/mysql_config \

--with-net-snmp \

--with-libcurl \

--with-libxml2 \

--with-openipmi \

--with-unixodbc \

--with-openssl

make&&make install


查看編譯位置

[root@www ~]# cd /usr/local/zabbix/

[root@www zabbix]# ll

總用量 20

drwxr-xr-x 2 root root 4096 8月 24 19:40 bin

drwxr-xr-x 4 root root 4096 8月 24 19:40 etc

drwxr-xr-x 2 root root 4096 8月 24 19:40 lib

drwxr-xr-x 2 root root 4096 8月 24 19:40 sbin

drwxr-xr-x 4 root root 4096 8月 24 19:40 share


5、導入zabbix文件到數據庫進入mysql配置


mysql -u root p #進入數據庫

create database zabbix character set utf8;

註意,此處要特別註意數據庫字符集的問題,如果數據庫是非utf8 字符,則web 頁面改

為中文,是會出現亂碼的

grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix'; 創建管理MySQL用戶

flush privileges;

mysql -u zabbix -pzabbix #測試登錄數據庫


cd /service/zabbix/zabbix-3.2.6/database/mysql

mysql -u root -p zabbix < schema.sql

mysql -u root -p zabbix < images.sql

mysql -u root -p zabbix < data.sql


mysql -u zabbix -pzabbix

use zabbix ;

show tables ;

登錄數據庫查看

技術分享圖片


6、拷貝配置文件及授權用戶我的apache數據保存目錄在/htdocs/

拷貝配置文件及授權用戶我的apache數據保存目錄在/htdocs/

mkdir /htdocs/zabbix

cp -r /service/zabbix/zabbix-3.2.6/frontends/php/* /htdocs/zabbix/

chown -R apache.apache /htdocs/zabbix/



7、修改php.ini文件

vim /usr/local/php/php.ini

date.timezone = Asia/ Hong_Kong

max_execution_time = 300

post_max_size = 32M

max_input_time=300

memory_limit = 128M

mbstring.func_overload = 2


重啟:/etc/init.d/php-fpm restart


8、修改虛擬主機配置

vim /usr/local/apache/conf/extra/httpd-vhosts.conf

<VirtualHost *:80> #端口

ServerAdmin www.zabbix.com #管理員登錄網址

DocumentRoot "/htdocs/zabbix" #指定網頁數據位置

ServerName www.zabbix.com #域名

<Directory "/htdocs/zabbix">

AllowOverride All #訪控

Require all granted

</Directory>

ErrorLog "logs/dummy-host2.example.com-error_log" #錯誤日誌

CustomLog "logs/dummy-host2.example.com-access_log" common #日誌

ProxyRequests off #代理請求off指運行代理

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/htdocs/zabbix/$1 #把凡是以結尾是.php的訪問轉發到本機的9000端口上

</VirtualHost>


service httpd restart 重啟


9、zabbix 配置

路徑:/usr/local/zabbix/etc/zabbix_server.conf

修改主要參數即可工作

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix 數據庫

DBHost=127.0.0.1


修改客戶端配置:/usr/local/zabbix/etc/zabbix_agent.conf

Server=192.168.2.100 //配置zabbix服器的IP地址
Hostname=zabbix_server //配置主機名
PidFile=/var/tmp/zabbix_agentd.pid //指定pid路

LogFile=/var/log/zabbix/zabbix_agentd.log //
指定日誌文件


9.1、配置啟動腳本

cp /service/zabbix/zabbix-3.2.6/misc/init.d/fedora/core/zabbix_{server,agentd} /etc/init.d/

[root@www zabbix]# ll -h /etc/init.d/zabbix_*

-rwxr-xr-x 1 root root 2.2K 8月 24 15:15 /etc/init.d/zabbix_agentd

-rwxr-xr-x 1 root root 2.2K 8月 24 15:15 /etc/init.d/zabbix_server


9.2、修改啟動腳本(不修改啟動會報錯)

vim /etc/init.d/zabbix_server

BASEDIR=/usr/local/zabbix #這裏是安裝服務的路徑

vim /etc/init.d/zabbix_agentd

BASEDIR=/usr/local/zabbix


啟動

[root@www zabbix]# /etc/init.d/zabbix_server start

Starting zabbix_server: [確定]

[root@www zabbix]# /etc/init.d/zabbix_agentd start

Starting zabbix_agentd: [確定]


訪問:因為我在本機改了hosts文件在這裏我是直接域名加端口訪問的

技術分享圖片


修改安裝時報錯問題

1、PHP string function overloading must be disabled. 錯誤:

修改片php.ini文件 mbstring.func_overload = 1 修改完畢之後重啟


2、PHP option "always_populate_raw_post_data" must be set to "-1"

修改 /htdocs/zabbix/include/classes/setup/ CFrontendSetup.php

添加 $current = -1;

public function checkPhpAlwaysPopulateRawPostData() {

$current = ini_get('always_populate_raw_post_data');

$current = -1;

return [

'name' => _s('PHP option "%1$s"', 'always_populate_raw_post_data'),

'current' => ($current != -1) ? _('on') : _('off'),

'required' => _('off'),

'result' => ($current != -1) ? self::CHECK_FATAL : self::CHECK_OK,

'error' => _s('PHP option "%1$s" must be set to "%2$s"', 'always_populate_raw_post_data', -1)

];

}


填寫數據庫連接

技術分享圖片



配置zabbix server端的主機名,端口號

技術分享圖片


安裝

技術分享圖片


默認的賬號和是admin 密碼是zabbix

技術分享圖片


登錄成功(設置中文字體)

技術分享圖片


監控本機

默認我們已經啟動了zabbix客戶段服務 所以在主機列表中可以查看到

如果沒有啟動可以執行/etc/init.d/zabbix_ agentd restart 啟動zabbix客戶端

還需要在網頁配置,使zabbix起來

默認我們監控主機是沒有啟用的à雙擊停用的他就起來了

技術分享圖片

顯示綠色的ZBX則為成功

技術分享圖片


監控一臺新的主機

拷貝腳本到主機執行

vim zabbix_client_install.sh

#!/bin/bash

#關於配置文件修改,如果是外網的客戶端,需要把ServerActive和Server的值改為101.96.129.162,(已經做過外網映射)

Modify_configuration(){

#IP=`ifconfig |grep -o '192\.168\.1\.[0-9]\{1,3\}' |grep -v 255 |head -1`

IP=`ifconfig eth0 |grep inet |sed 's/^.*addr://g' |sed s/Bcast.*//g`

sed -i "

/# HostMetadataItem/a\

HostMetadataItem=system.uname

s/^ServerActive=127.*/ServerActive=10.27.72.243/

s/^Server=.*/Server=10.27.72.243/

s/Hostname=Zabbix server/Hostname=${IP}/

" /etc/zabbix/zabbix_agentd.conf

}

CentOS_agent_install(){

wget https://mirrors.aliyun.com/zabbix/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.6-1.el6.x86_64.rpm

rpm -ivh zabbix-agent-3.2.6-1.el6.x86_64.rpm

Modify_configuration

rm -rf zabbix-agent-3.2.6-1.el6.x86_64.rpm

chkconfig zabbix-agent on

service zabbix-agent restart

}

Ubuntu_agent_install(){

wget https://mirrors.aliyun.com/zabbix/zabbix/3.2/ubuntu/pool/main/z/zabbix/zabbix-agent_3.2.6-1%2bxenial_amd64.deb

sudo dpkg -i zabbix-agent_3.2.6-1+xenial_amd64.deb

Modify_configuration

rm zabbix-agent_3.2.6-1+xenial_amd64.deb

service zabbix-agent restart

}


cat /etc/*release |grep "CentOS" &>/dev/null

[ $? == 0 ] && CentOS_agent_install

cat /etc/*release |grep "Ubuntu" &>/dev/null

[ $? == 0 ] && Ubuntu_agent_install


效果圖技術分享圖片


在server端監控這臺客戶機

技術分享圖片


技術分享圖片

給監控的客戶端添加一個監控模板

技術分享圖片


技術分享圖片


保存查看圖形

技術分享圖片

到這裏就搭建完成,真心希望本篇博客可以幫助到您。



Zabbix 安裝