zabbix 是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。
zabbix能監視各類網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各類問題。
zabbix由2部分構成,zabbix server與可選組件zabbix agent。
zabbix server能夠經過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它能夠運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上。php
安裝使用html
zabbix agent須要安裝在被監視的目標服務器上,它主要完成對硬件信息或與操做系統有關的內存,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能夠單獨監視遠程服務器的服務狀態;同時也能夠與zabbix agent配合,能夠輪詢zabbix agent主動接收監視數據(agent方式),同時還可被動接收zabbix agent發送的數據(trapping方式)。
另外zabbix server還支持SNMP (v1,v2),能夠與SNMP軟件(例如:net-snmp)等配合使用。前端
搭建Zabbix監控環境java
要想搭建一個Zabbix的工做環境,須要從服務器入手。與服務器通訊,管理員須要使用一個Zabbix前端界面,與Zabbix服務器和數據庫進行通訊。三個關鍵(界面、服務器和數據庫)能夠安裝在同一臺服務器上,可是若是你擁有一個更大更復雜的環境,將它們安裝在不一樣的主機上也是一個選項。Zabbix服務器可以直接監控到同一網絡中的設備,若是其餘網絡的設備也須要被監控,那還須要一臺Zabbix代理服務器。mysql
特色linux
zabbix的主要特色:
安裝與配置簡單,學習成本低
支持多語言(包括中文)
免費開源
自動發現服務器與網絡設備
分佈式監視以及WEB集中管理功能
能夠無agent監視
用戶安全認證和柔軟的受權方式
經過WEB界面設置或查看監視結果
email等通知功能
Zabbix主要功能:nginx
CPU負荷
內存使用
磁盤使用
網絡情況
端口監視
日誌監視。web
介紹sql
本文是在centos6.8-64位系統上安裝zabbix3.4.8版本數據庫
本文中用到的全部軟件添加最下方二維碼免費提供
本文是在lnmp環境上搭建zabbix3.4.8
Nginx版本:1.9.3 源碼編譯安裝
Mysql版本:5.6.32 源碼編譯安裝
php版本:5.6.9 源碼編譯安裝
zabbix版本:3.4.8 源碼編譯安裝
下面開始安裝
系統環境準備
關閉防火牆
service iptables stop
chkconfig iptables off
關閉selinux
setenforce 0
vim /etc/sysconfig/selinux //修改以下
配置本地yum
配置本地yum源,若是機器有網絡yum源,此步驟忽略
上傳Centos6.8系統鏡像到服務器目錄:/data/zabbix
掛載系統鏡像盤
mkdir /data/yum/
mount -o loop /data/zabbix/CentOS-6.8-x86_64-bin-DVD1.iso /data/yum
df –h //掛載完後以下所示
新建一個目錄,把鏡像裏面的全部東西都拷貝出來,由於在後面安裝rpm包的時候有些包系統鏡像裏面沒有,這時候須要去網絡yum源去下載包而後傳到咱們本地yum源裏放rpm包的地方,系統盤掛載是不容許寫入的,因此咱們掛載後把全部的文件都拷貝到一個新目錄
操做以下:
mkdir /data/yumserver
cp –R /data/yum/* /data/yumserver/
複製完之後,咱們去配置yum,操做以下
cd /etc/yum.repos.d/
mkdir bak
cp * ./bak
vim yum.repo //文件內容以下複製粘貼便可
[base]
name=yumserver
enabled=1
baseurl=file:///data/yumserver/
gpgcheck=0
yum list //若是出現不少包說明yum可用
開始安裝
Nginx安裝
軟件版本:version 1.9.3
上傳nginx-1.9.3.tar.gz到服務器目錄:/usr/local/src
使用yum安裝依賴包
yum install gcc zlib zlib-devel openssl openssl-devel pcre pcre-develncurse -y
(注:yum安裝包的途中,若是報錯 說那個包沒有去能夠上網的服務器訪問下面地址,ctrl+f 搜索報錯的包名,缺那個包去找那個,下載後傳到服務器目錄:/data/yumserver/Packages
而後繼續安裝。下面安裝php和zabbix可能也須要去下載rpm包
Rpm包下載地址:http://mirrors.163.com/centos/6/os/x86_64/Packages/
示例:
cd /usr/local/src
tar -zxvf /usr/local/src/nginx-1.9.3.tar.gz
cd nginx-1.9.3
./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre --with-http_ssl_module
make && make install
啓動方法
/usr/local/nginx/sbin/nginx
也能夠經過/etc/init.d/nginx start|stop|restart方式
將附件裏的nginx啓動腳本上傳到/etc/init.d/下
chmod 755 /etc/init.d/nginx //賦權
chkconfig --add nginx //添加nginx爲系統服務
chkconfig nginx on //配置開機自啓動
mysql安裝
軟件版本 MySQL-5.6.32
上傳mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz到服務器目錄:/usr/local/src (軟件包見附件)
cd /usr/local/src
tar -zxvf mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.32-linux-glibc2.5-x86_64 /usr/local/mysql
groupadd mysql
useradd -g mysql mysql
cd /usr/local/mysql
mkdir /usr/local/mysql/data/tmp
chown -R mysql:mysql /usr/local/mysql/data
./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
vim /etc/my.cnf //複製如下內容
[mysqld]
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
character_set_server=gbk
user=mysql
default-storage-engine=INNODB
tmpdir=/usr/local/mysql/data/tmp
symbolic-links=0
innodb_buffer_pool_size= 1G
skip-name-resolve
event_scheduler= 1
port= 3306
server_id= 1
wait_timeout=2880000
interactive_timeout= 2880000
max_allowed_packet= 512M
join_buffer_size= 128M
sort_buffer_size= 2M
read_rnd_buffer_size= 2M
lower_case_table_names= 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqldump]
quick
max_allowed_packet= 512M
[client]
default-character-set=gbk
socket=/usr/local/mysql/data/mysql.sock
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
vim /etc/init.d/mysqld //文件開頭添加以下內容
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
chkconfig --add mysqld //添加mysql爲系統服務
chkconfig mysqld on //設置mysql開機自啓動
service mysqld start //啓動mysql
php安裝
上傳php-5.6.9.tar.gz到服務器目錄:/usr/local/src
cd /usr/local/src
tar -zxvf php-5.6.9.tar.gz
ln -sv php-5.6.9 php
cd php/
./configure \
-prefix=/usr/local/php\
-with-config-file-path=/usr/local/php/etc\
-enable-inlin\
-disable-e-optimizationdebug \
-disable-rpath\
-enable-shared\
-enable-opcache\
-enable-fpm\
-with-mysql=/data/mysql\
-with-mysqli=/data/mysql/bin/mysql_config\
-with-pdo-mysql=/data/mysql\
-with-gettext\
-enable-mbstring\
-with-iconv\
-with-openssl\
-enable-bcmath\
-enable-soap\
-with-libxml-dir\
-enable-pcntl\
-enable-shmop\
-enable-sysvmsg\
-enable-sysvsem\
-enable-sysvshm\
-enable-sockets\
-with-curl\
-with-zlib\
-enable-zip\
-with-bz2\
-with-gd\
-with-freetype-dir\
-with-jpeg-dir\
-with-png-dir
(注意:配置過程當中可能會由於環境不一樣,報錯缺失rpm包,把報錯信息複製粘貼百度,看是缺什麼包,而後去網上下載回來yum安裝 )
make && make install
php.ini是php運行核心配置文件
php-fpm.conf是php-fpm進程服務的配置文件
cp php.ini-production /usr/local/php/etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
fpm測試php配置
/usr/local/php/sbin/php-fpm –t
#chkconfig --add php-fpm
#chkconfig php-fpm on
#service php-fpm start
配置nginx+php
配置php
#vim /usr/local/php/etc/php-fpm.conf //修改如下幾項
user = www
group = www
listen = 10.42.221.56:8000 #使用真實ip
編輯php的ini文件並修改如下下內容
#vim /usr/local/php/etc/php.ini
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
always_populate_raw_post_data= -1
配置nginx
#vim /usr/local/nginx/conf/nginx.conf //修改如下內容
user www;
server_name 10.42.221.56 ;
root /usr/local/nginx/html;
location ~ ^/.*.php$ {
root /usr/local/nginx/html; fastcgi_pass 10.42.221.56:8000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params;
#vim /usr/local/php/etc/php-fpm.conf //修改如下兩項
user = www
group = www
#groupadd www
#useradd –g www www
#cd /usr/local/nginx/html/
#vim index.php //寫入下面內容
<?php phpinfo(); ?>
最後重啓nginx和php-fpm
#/usr/local/nginx/sbin/nginx –s reload
#service php-fpm restart
訪問http://ip/index.php出現下圖說明成功
zabbix安裝
#tar -zxvf zabbix-3.4.8.tar.gz
#cd zabbix-3.4.8
設置web前端
#mkdir /usr/local/nginx/html/zabbix
#cp -R zabbix-3.4.3/frontends/php/* /usr/local/nginx/html/zabbix
設置nginx的執行和全部者
#chown -R www.www /usr/local/nginx/html/zabbix
賦予可執行權限
#chmod -R 755 /usr/local/nginx/html/zabbix/
建立zabbix用戶和組
#groupadd zabbix
#useradd -g zabbix zabbix
編譯安裝zabbix
#./configure --enable-server --enable-agent --with-mysql=/data/mysql/bin/mysql_config --enable-ipv6 --enable-java --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --with-ssh2 --with-openipmi --with-openssl --prefix=/usr/local/zabbix
編譯成功會出現下圖
#make install
修改配置文件zabbix_server.conf
#vim /usr/local/zabbix/etc/zabbix_server.conf //修改如下內容
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
#cp zabbix-3.4.8/misc/init.d/fedora/core/zabbix_server /etc/init.d/zabbix_server
#cp zabbix-3.4.8/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/zabbix_agentd
修改 /etc/init.d/zabbix_server、/etc/init.d/zabbix_agentd的BASEDIR=/usr/local/爲BASEDIR=/usr/local/zabbix
進入數據庫,剛裝的mysql密碼爲空,直接回車就行
#mysql –u root
mysql>CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
mysql>GRANT ALL PRIVILEGES ON . TO‘zabbix'@'localhost’ IDENTIFIEDBY 'zabbix';
mysql>use zabbix;
mysql>source zabbix-3.4.8/database/mysql/schema.sql;
mysql>source zabbix-3.4.8/database/mysql/images.sql;
mysql>source zabbix-3.4.8/database/mysql/data.sql;
重啓全部服務
啓動nginx
#/usr/local/nginx/sbin/nginx –s reload
重啓數據庫
#service mysqld restart
啓動zabbix_server和zabbix_agent
#/etc/init.d/zabbix_server start
#/etc/init.d/zabbix_agentd start
設置zabbix開機自啓
#chkconfig --add /etc/init.d/zabbix_server
#chkconfig --add /etc/init.d/zabbix_agentd
#chkconfig zabbix_server on
#chkconfig zabbix_agentd on
瀏覽器訪問zabbix頁面並進行初始化
Zabbix實現郵件報警
安裝插件
安裝郵件發送工具mailx
#yum –y install mailx dos2unix
配置
修改/etc/mail.rc,複製如下內容
#vim /etc/mail.rc
set sendcharsets=iso-8859-1,utf-8
set from=15149813470@163.com #發件人郵箱地址
set smtp=smtp.163.com #smtp服務器地址
set smtp-auth-user=15149813470@163.com #認證用戶
set smtp-auth-password=xxxxxxxxx #認證密碼
set smtp-auth=login
修改zabbix主配置文件zabbix_server.conf,加入下面一行
#vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
新建郵件發送腳本sendmail.sh
#cd /usr/lib/zabbix/alertscripts
#vim sendmail.sh //複製如下內容
#!/bin/bash
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
dos2unix -k $FILE
mail -s "$2" $1 < $FILE
#chmod 755 sendmail.sh
#chown zabbix.zabbix sendmail.sh
#touch /tmp/mailtmp.txt
#chmod 755 /tmp/mailtmp.txt
#chown zabbix.zabbix /tmp/mailtmp.txt
配置web頁面
建立媒體類型
管理–>報警媒介類型–>建立媒體類型
按圖示填寫完成後點擊更新,就會在報警媒介類型中看到剛纔建立的名爲Email類型
給用戶添加報警媒介
此處以Admin用戶爲例 管理–>用戶–>點擊Admin
點擊報警媒介,而後添加郵件接收人
建立動做
配置完成
添加完成後動做頁面列表就會展現出來
此時沒有添加相應的觸發器,若是系統中任何一臺機器出現告警信息,就會經過郵件發送器發送到對應的郵箱中。
而後咱們新建一個監控項,監聽zabbix的22端口若是22端口處於偵聽狀態,就發郵件報警
郵件報警內容以下:
若是對此文有什麼問題的話,請加下面微信一塊兒探討