zabbix

Zabbix監控的應用

1.1 前言

1.1.1 我們的職責

1、保障企業的數據的安全可靠

2、爲客戶提供7*24小時服務

3、不斷提升用戶的體驗

1.2 我們需要監控什麼

路人甲:大神,我們需要監控什麼?

我:你想監控什麼!

1.3 我們到底要監控什麼

1. 硬盤監控:適用於物理機,遠程管理卡(IDRAC),IPMO(智能平臺管理接口)ipmitoolMegaCli(查看Raid磁盤)

2.系統監控:cpu(lscpuuptimetopvmstat1mpstat1htop),內存(free -m),硬盤(df -hiotop),網絡(iftopnetstatss

3.應用服務監控:nfsmysqlnginxapachephprsync

4.性能監控

5.日誌監控:系統日誌(安全日誌secure message sudo 日誌)、服務日誌(錯誤日誌error,訪問日誌)

6.安全監控

7.業務監控

舉些監控命令的栗子:

top
>  向右移動一位排序
1
lscpu
vmstat 1
htop
vmstat 1
mpstat 1 
wget -O /etc/yum.repos.d/epel.repo                             

1.4 引入zabbinx

所有監控範疇,都可以整合到Zabbix

硬件監控:Zabbix IPMIInterface

系統監控:Zabbix AgentInterface

Java監控:Zabbix JMX Interface

網絡設備監控:Zabbix SNMPInterface

應用服務監控:ZabbixAgent UserParameter

MySQL數據庫監控:percona-monitoring-plulgins

URL監控:Zabbix Web監控

2.1 Zabbix簡介

官網:http://www.zabbix.com/

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

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

zabbix主要由2部分構成zabbix serverzabbix agent,可選組件zabbix proxy

zabbix server可以通過SNMPzabbix agentfping,端口監視等方法對遠程服務器或網絡狀態完成監視,數據收集功能。

支持Linux及類Unix平臺,Windows平臺只能安裝客戶端。

spacer.gif

3.1 系統環境

[root@zb01 /]# cat /etc/redhat-release

CentOS release 6.7 (Final)

[root@zb01 /]# uname -r

2.6.32-573.el6.x86_64

[root@zb01 /]# uname -m

x86_64

[root@zb01 /]# /etc/init.d/iptables stop

[root@zb01 /]# getenforce

Disabled

4.1安裝LNMP環境

yum -y install pcre-devel openssl-develncurses-devel zlib-devel libxml2-devel libjpeg-devel freetype-devellibpng-devel gd-devel curl-devel libxslt-devel libmcrypt-devel mhashmhash-devel mcrypt

rpm -ivh --aid *.rpm

5.1 編譯安裝Zabbix

5.1.1 安裝依賴

echo "192.168.14.200 mirrors.aliyun.com" >>/etc/hosts

yum -y install fping net-snmp-devel unixODBC-devel openssl-devel  OpenIPMI-devel java-devel

5.1.2 添加Zabbix用戶

useradd zabbix -s /sbin/nologin

5.1.3 解壓Zabbix,編譯安裝

mkdir -p /application/tools

cd /application/tools

rz

tar xf zabbix-3.0.3.tar.gz 

cd zabbix-3.0.3

 ./configure --prefix=/application/zabbix-3.0.3 --enable-server --enable-agent --enable-java --enable-ipv6 --with-mysql  --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-openssl

make install

ln -s /application/zabbix-3.0.3 /application/zabbix

##################假如報這個錯誤:

configure:error: Not found mysqlclient library

這是由於沒有指定mysql的路徑導致的,yum安裝或者編譯安裝就不會有這樣的問題,主要是張導的/初始目錄在/application/tools下,我們的在/home/oldboy/tools

####################################

./configure --prefix=/application/zabbix-3.0.3 --enable-server --enable-agent --enable-java --enable-ipv6 --with-mysql=/application/mysql-5.5.49/bin/mysql_config  --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi --with-unixodbc --with-openssl

#############################################

5.1.4 mysql 數據庫操作

[root@zb01 /]# mysql -uroot -poldboy123

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 209

Server version: 5.5.49 MySQL Community Server (GPL)

 

Copyright (c) 2000, 2016, Oracle and/or itsaffiliates. All rights reserved.

 

Oracle is a registered trademark of OracleCorporation and/or its

affiliates. Other names may be trademarks of theirrespective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clearthe current input statement.

 

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> grant all on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbix';

mysql> flush privileges;

data.sql #數據,最後導入

p_w_picpaths.sql   #圖形,其次導入

schema.sql  #表結構,首先導入

/home/oldboy/tools/zabbix-3.0.3/database/mysql

mysql中操作

use zabbix
source /home/oldboy/tools/zabbix-3.0.3/database/mysql/schema.sql
source /home/oldboy/tools/zabbix-3.0.3/database/mysql/p_w_picpaths.sql
source /home/oldboy/tools/zabbix-3.0.3/database/mysql/data.sql 

show tables from zabbix;

#########################################

use zabbix

source /application/tools/zabbix-3.0.3/database/mysql/schema.sql

source/application/tools/zabbix-3.0.3/database/mysql/p_w_picpaths.sql

source/application/tools/zabbix-3.0.3/database/mysql/data.sql

show tables from zabbix;

###################################################

5.1.5 web代碼

mkdir -p /application/nginx/html/zabbix
cp -a /home/oldboy/tools/zabbix-3.0.3/frontends/php/* /application/nginx/html/zabbix/
chown -R nginx /application/nginx/html/zabbix/

5.1.6 配置Zabbix

5.1.6.1 php配置

egrep -n "^post_max_size|^max_execution_time|^max_input_time|^date.timezone" /application/php/lib/php.ini

sed -i 's#max_execution_time = 30#max_execution_time = 300#;s#max_input_time = 60#max_input_time = 300#;s#post_max_size = 8M#post_max_size = 16M#;910a date.timezone = Asia/Shanghai' /application/php/lib/php.ini

/etc/init.d/php-fpm restart

沒有這個腳本就 

killall php

/application/php/sbin/php-fpm

5.1.6.2 nginx配置

執行命令前注意備份你的Nginx配置文件!!

cat >/application/nginx/conf/nginx.conf<<EOF
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
        root   html;
        location / {
            root   html;
            index  index.php index.html index.htm;
                }
        location ~ .*\.(php|php5)?$
        {      
         fastcgi_pass  127.0.0.1:9000;
         fastcgi_index index.php;
         include fastcgi.conf;
         }
         access_log  logs/zabbix.log;
           }
    }
EOF

/etc/init.d/nginx reload

5.1.6.3 zabbix服務配置

sed -i -e '77a DBHost=127.0.0.1' -e '111a DBPassword=zabbix' /application/zabbix/etc/zabbix_server.conf

啓動腳本

cp /home/oldboy/tools/zabbix-3.0.3/misc/init.d/fedora/core/zabbix_{server,agentd} /etc/init.d/

 

[root@oldboyedu ~]# ll -h /etc/init.d/zabbix_*
-rwxr-xr-x 1 root root 2.2K 5  20 19:29 /etc/init.d/zabbix_agentd
-rwxr-xr-x 1 root root 2.2K 5  20 19:29 /etc/init.d/zabbix_server

修改啓動腳本

sed -i 's#BASEDIR=/usr/local#BASEDIR=/application/zabbix#' /etc/init.d/zabbix_{server,agentd}

5.1.6.4 啓動腳本

[root@oldboyedu ~]# ln -s /application/mysql/lib/libmysqlclient.so.18  /usr/lib64/
[root@oldboyedu ~]# /etc/init.d/zabbix_server start
Starting zabbix_server:                                    [確定]

 

6.1 windows中打開網頁

http://10.0.0.25/zabbix/setup.php

會發現沒有mysqlgettext模塊

cd /home/oldboy/tools/php-5.5.32/ext/gettext

/application/php/bin/phpize

./configure--with-php-config=/application/php/bin/php-config

make && make install

echo " extension = gettext.so">>/application/php/lib/php.ini

/application/php/bin/php -m|grep gettext

/application/php/bin/php -m|grep mysqli

cd /home/oldboy/tools/php-5.5.32/ext/mysqli

/application/php/bin/phpize

./configure--with-php-config=/application/php/bin/php-config

make && make install

echo " extension = mysqli.so">>/application/php/lib/php.ini

killall php-fpm

/application/php/sbin/php-fpm

操作完畢後回到網頁,刷新

spacer.gif

spacer.gif

第一項多出了MySQL,第二項也OK了。搞定,繼續下一步

spacer.gif

spacer.gif

spacer.gif

spacer.gif

 

 

spacer.gif

排錯方法看服務是否運行和查看日誌:

/etc/init.d/zabbix_server status
tailf /tmp/zabbix_server.log 

假如手賤不跟老師後面設置密碼,就可能會報這個錯誤

36269:20160603:171259.995 cannot set MySQL character set to "utf8"
 36269:20160603:171259.995 database is down: reconnecting in 10 seconds
 36269:20160603:171309.996 [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: YES)

可能是sed替換的時候沒有替換對

7.1 監控頁面切換爲中文

spacer.gif

spacer.gif

8.1 Zabbix Agent客戶端安裝和使用

本機編譯安裝的時候已經開啓了zabbix客戶端功能。如果是其他新添加主機(CentOS67系統)不需要編譯安裝那麼麻煩,直接使用官網的rpm就可以了,或者自己編譯一個客戶端然後定製rpm包即可。

8.1.1 服務端的客戶端啓動

##vim /application/zabbix/etc/zabbix_agentd.conf

/etc/init.d/zabbix_agentd start

選擇配置主機然後找到zabbix server,點擊停用的 狀態,使其變爲啓用的。靜待片刻後面可用性第一個ZBX會亮起綠燈,假如不亮點下過濾或者刷新即可.

spacer.gif

spacer.gif

 

8.1.2 新添加機器安裝方法

CentOS6rpm -ivhhttp://repo.zabbix.com/zabbix/3.0/rhe1/6/x86_64/zabbix-release-3.0-1.e17.noarch.rpm

CentOS7: rpm -ivhhttp://repo.zabbix.com/zabbix/3.0/rhe1/7/x86_64/zabbix-release-3.0-1.e17.noarch.rpm

如果上述站點打不開,可以使用http://mirrors.aliyun.com/zabbix/zabbix/

wget http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.3-1.el6.x86_64.rpm

yum localinstallzabbix-agent-3.0.3-1.e16.x86_64.rpm

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

vim/etc/zabbix/zabbix_agentd.conf

Server=服務端的ip          (95)

/etc/init.d/zabbix-agentstart

spacer.gif

spacer.gif

spacer.gif

添加後等待一段時間後可看到

spacer.gif

9.1 查看監控數據

spacer.gif

10.1解決中文亂碼的問題

spacer.gif

服務端操作

wget -O /etc/yum.repos.d/epel.repo spacer.gifhttp://mirrors.aliyun.com/repo/epel-6.repo
yum -y install wqy-microhei-fonts
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /application/nginx/html/zabbix/fonts/DejaVuSans.ttf

spacer.gif

11.1 簡單自定義監控

web01客戶端執行

sed -i '293a UserParameter=login-user,who|wc -l'/etc/zabbix/zabbix_agentd.conf

/etc/init.d/zabbix-agent restart

服務端操作

/application/zabbix/bin/zabbix_get --help

/application/zabbix/bin/zabbix_get  -s 10.0.0.8 -p 10050 -k"login-user"

此處的IP地址填寫的是服務端的IP地址

10.0.0.8   客戶端                                                                            

login-user       

-p             端口

-k            

11.1.1 創建應用集

spacer.gif

spacer.gif

spacer.gif

11.1.2 創建監控項

spacer.gif

spacer.gif

spacer.gif

11.1.3 創建觸發器

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

 

spacer.gif

11.1.4 創建圖形

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

11.1.5 查看效果

選擇監測中---圖形---羣組Web Server---主機LNMP----圖形:登錄用戶數量趨勢

spacer.gif

 

12.1 監控報警

spacer.gif

開啓多個用戶登錄。。。。

spacer.gif

12.2 郵件報警

1Email zabbix2.x不支持認證郵箱,只能本機開啓sendmailPostfix發送郵件;在zabbix3.x開始支持認證郵箱

2jabber 一個開源即時通信軟件,jabber有第三方插件,能讓jbber用戶和MSNYahooMessagerIQCIM用戶互相通訊。因爲Google遵從jabber協議,並且Google已經將Gtalk的服務器開放給了其他的jabber服務。所以PSIGiamJabber客戶端軟件支持GTalk用戶登錄。國內基本沒人使用

3SMS 短信貓

4Ez Texting 給用戶手機發短信,貌似只支持美國和加拿大

5Scripts 自定義腳本,把信息傳遞給腳本,我們在腳本里使用mail、飛信發短信、調用短信接口發送短信等等

但是在zabbix3.0中使用自帶的email功能還是坑!因此我們還是使用老方法-寫腳本

12.2.1 配置mail.rc

[root@zb01 mysqli]# tail -2 /etc/mail.rc

#yxy mail

set from= xxxxxxxxx@126.com smtp=smtp.126.com smtp-auth-user= xxxxxxxxxsmtp-auth-password=xxxxxxxxx smtp-auth=login

12.2.2 郵件報警腳本

程序會傳給腳本3個參數,收件人,郵件標題,郵件主題,系統要有dos2unix、mail命令。

沒有就yum install -y dos2unix mail

cd /application/zabbix/share/zabbix/alertscripts/

[root@oldboyedu alertscripts]# vim email.sh
#!/bin/bash
email_File=/tmp/email.log
function main(){
        echo "$3" >$email_File
        /usr/bin/dos2unix $email_File
        /bin/mail -s "$2" "$1" <$email_File
main "$1" "$2" "$3"

爲了避免測試時候的垃圾郵件,可以先創建一個模擬腳本用來測試

echo 'echo "$1" "$2" "$3" >/tmp/email.log' >email.sh

chmod +x email.sh

spacer.gif

添加以下3個參數,分別對應sendEmail.sh腳本需要的3個參數:收件人地址、主題、詳細內容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

很多人安裝zabbix 3.0之後,寫的腳本一直髮信不成功,手動執行時可以的。
那是因爲zabbix3.0之後,可以自定義參數了。所以不寫參數,它是不會傳參數的。
在2.x版本不存在這個問題,默認會傳3個參數。

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

spacer.gif

測試:

tail -F /tmp/email.log

如果不成功需要,或者檢查其他錯誤

默認/tmp/email.log不存在,但是使用tail -F 是可以獲取的

chown zabbix.zabbix /tmp/email.log

[root@zb01 tmp]# tail -F /tmp/email.log

tail: cannot open `/tmp/email.log' for reading: Nosuch file or directory

tail: `/tmp/email.log' has become accessible

[email protected] PROBLEM: μó§31y3 Trigger:μó§31y3

Trigger status: PROBLEM

Trigger severity: Average

Trigger URL:

 

Item values:

 

1. μó§êyá (LNMP:login-user): 5

2. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*

3. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*

 

Original event ID: 104

tail: /tmp/email.log: file truncated

Original event ID: 104

開啓多個用戶登錄:

會檢測到報警

13.1 監控可視化

spacer.gif

14.1 zabbix共享模板

spacer.gif


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章