持續(xù)集成環(huán)境搭建(5)zabbix搭建和使用

zabbix源碼安裝

  1. 安裝mariadb(mysql)
// 執(zhí)行安裝命令
# yum -y install mariadb mariadb-server mariadb-devel

// 啟動服務
# systemctl start mariadb

// 設置為開機啟動
# systemctl enable mariadb

// 修改root登錄密碼
# mysql_secure_installation
Enter current password for root (enter for none): [回車]
Set root password? [Y/n] y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

// 測試登陸
# mysql -uroot -ppassword

// 設置root訪問權限
# mysql -uroot -ppassword
MariaDB [(none)]> grant all privileges on *.* to 'root'@'%' identified by 'qwe123' with grant option;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
  1. 安裝依賴庫
// 以下二選一
// 最小
# yum -y install gcc net-snmp-devel libxml2-devel libcurl-devel  libevent libevent-devel
// 完全
# yum -y install gcc net-snmp-devel net-snmp net-snmp-utils libxml2 libxml2-devel libcurl libcurl-devel libevent libevent-devel
  1. 下載源碼默责,并配置安裝
    下載地址:
    https://www.zabbix.com/download
    https://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.4/zabbix-3.4.4.tar.gz
    上傳zabbix-3.4.4.tar.gz到/home目錄下
# cd /home
# tar -zxf zabbix-3.4.4.tar.gz
# cd zabbix-3.4.4
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
# make && make install
  1. 初始化數(shù)據(jù)
# mysql -uroot -ppassword
MariaDB [none]> create database if not exists zabbix default character set utf8 collate utf8_general_ci;
MariaDB [none]> use zabbix;
MariaDB [zabbix]> source /home/zabbix-3.4.4/database/mysql/schema.sql;
MariaDB [zabbix]> source /home/zabbix-3.4.4/database/mysql/images.sql;
MariaDB [zabbix]> source /home/zabbix-3.4.4/database/mysql/data.sql;
  1. 安裝fping
    zabbix 3之后把ping更換為fping了桃序,所以需要安裝fping
# wget http://www.fping.org/dist/fping-4.0.tar.gz
# tar -zxvf fping-4.0.tar.gz
# cd fping-4.0
# ./configure --prefix=/usr/local/fping
# make && make install
  1. 配置
// server配置
# cd /usr/local/zabbix/
# vi ./etc/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=root
DBPassword=password
AllowRoot=1
FpingLocation=/usr/local/fping/sbin/fping

// agent配置
# vi ./etc/zabbix_agentd.conf
Server=0.0.0.0/0
Hostname=Zabbix server #注釋掉
AllowRoot=1
  1. 啟動服務
# /usr/local/zabbix/sbin/zabbix_server
# /usr/local/zabbix/sbin/zabbix_agent
  1. 配置前端環(huán)境
// 安裝apache+php
# yum -y install httpd httpd-devel php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml php-bcmath

// 復制前端代碼到站點下
# cp -r /home/zabbix-3.4.4/frontends/php /var/www/html/zabbix

// 關閉防火墻
# systemctl stop firewalld
# setenforce 0
# vi /etc/selinux/config
SELINUX=disabled

// 修改php配置
# vi /etc/php.ini
memory_limit=128M
post_max_size=16M
upload_max_filesize=20M
max_execution_time=300
max_input_time=300
date.timezone=Asia/Shanghai

// 重啟站點
# systemctl restart httpd

訪問站點按提示進行配置即可
http://localhost/zabbix

zabbix配置Java Gateway

  1. 查看是否已經(jīng)安裝了zabbix_java
    /usr/local/zabbix/sbin/zabbix_java/start.sh 是否存在

  2. 如未安裝,則進入zabbix的源碼目錄芦鳍,進行zabbix_java的安裝

# cd /home/zabbix-3.4.4
# ./configure --prefix=/usr/local/zabbix --enable-java
# make && make install
  1. 修改zabbix_server的配置文件
# vi /usr/local/zabbix/etc/zabbix_server.conf
JavaGateway=localhost
JavaGatewayPort=10052
StartJavaPollers=5

然后重啟zabbix_server

  1. 啟動zabbix_java
# /usr/local/zabbix/sbin/zabbix_java/startup.sh

zabbix配置mysql監(jiān)控

  1. 編輯腳本文件/usr/local/zabbix/etc/zabbix_agentd.conf.d/chk_mysql.sh
# vi /usr/local/zabbix/etc/zabbix_agentd.conf.d/chk_mysql.sh
#!/bin/bash

# 用戶名
MYSQL_USER='root'

# 密碼
MYSQL_PWD='asd123'

# 主機地址/IP
MYSQL_HOST='localhost'

# 端口
MYSQL_PORT='3306'

# 數(shù)據(jù)連接
MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"

# 參數(shù)是否正確
if [ $# -ne "1" ];then
    echo "arg error!"
fi

# 獲取數(shù)據(jù)
case $1 in
    Uptime)
        result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"`
        echo $result
        ;;
    Com_update)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`
        echo $result
        ;;
    Slow_queries)
        result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"`
        echo $result
        ;;
    Com_select)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`
        echo $result
                ;;
    Com_rollback)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3`
    Questions)
        result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"`
                echo $result
                ;;
    Com_insert)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`
                echo $result
                ;;
    Com_delete)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`
                echo $result
                ;;
    Com_commit)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3`
                echo $result
                ;;
    Bytes_sent)
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`
                echo $result
                ;;
    Bytes_received)
        result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`
                echo $result
                ;;
    Com_begin)
        result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3`
                echo $result
                ;;
        *)
        result=`${MYSQL_CONN} extended-status |grep -w "$1" |cut -d"|" -f3`
                echo $result
                ;;
esac
  1. 編輯配置文件/usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_mysql.conf
# vi /usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_mysql.conf
#Mysql版本
UserParameter=mysql.version,mysql -V
# 獲取mysql性能指標,這個是上面定義好的腳本
UserParameter=mysql.status[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/chk_mysql.sh $1
# 獲取mysql運行狀態(tài)
UserParameter=mysql.ping,mysqladmin -uroot -pqwe123 -P3306 -hlocalhost  ping | grep -c alive
  1. 編輯zabbix_agentd的配置文件,加入zabbix_mysql.conf配置
# vi /usr/local/zabbix/etc/zabbix_agentd.conf
// 去掉#
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
  1. 重啟zabbix_agent
  2. 測試是否成功
# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -p 10050 -I 172.16.1.162 -k mysql.version

附錄: windows下的腳本

mysql_ping.vbs

Set objFS =CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
str1 = getCommandOutput("mysqladmin -uroot -pqwe123 ping")
  
If Instr(str1,"alive") > 0Then
WScript.Echo 1
Else
WScript.Echo 0
End If
  
Function getCommandOutput(theCommand)
  
Dim objShell, objCmdExec
Set objShell =CreateObject("WScript.Shell")
Set objCmdExec = objshell.exec(thecommand)
getCommandOutput =objCmdExec.StdOut.ReadAll
end Function

mysql_status.vbs

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
str1 = getCommandOutput("mysqladmin -uroot -pqwe123 extended-status")
Arg = objArgs(0)
str2 = Split(str1,"|")
  
For i = LBound(str2) to UBound(str2)
  
If Trim(str2(i)) = Arg Then   
WScript.Echo TRIM(str2(i+1))
Exit For
End If
next
  
  
Function getCommandOutput(theCommand)
  
Dim objShell, objCmdExec
Set objShell =CreateObject("WScript.Shell")
Set objCmdExec = objshell.exec(thecommand)
getCommandOutput =objCmdExec.StdOut.ReadAll
  
end Function

zabbix配置tomcat監(jiān)控

  1. 啟用tomcat的jmx
  • windows下,在catalina.bat 頭部增加
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
  • linux下巩割,在catalina.sh中宣谈,CATALINA_OUT前增加
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=192.168.2.207"
  1. 下載catalina-jmx-remote.jar到tomcat/lib下
  2. 修改tomcat的server.xml文件,加入以下代碼
<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="12345" rmiServerPortPlatform="12345" />
  1. 啟動tomcat
  2. 確認zabbix_server啟用了Java Gateway漩怎,參考上面
  3. 在zabbix的控制臺添加主機JMX接口
    172.16.1.162:12345

linux snmp配置

  1. 確認snmp代理是否已安裝
# rpm -q net-snmp
  1. 如果未安裝勋锤,安裝snmp
# yum install net-snmp net-snmp-devel net-snmp-utils
  1. 修改配置 /etc/snmp/snmpd.conf
com2sec notConfigUser  default       public

#view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc
view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc

#access  notConfigGroup ""      any       noauth    exact  systemview none none
access  notConfigGroup ""      any       noauth    exact  mib2 none none
  1. 啟動并設置為自啟動
systemctl start snmpd
systemctl enable snmpd

zabbix自動發(fā)現(xiàn)各網(wǎng)卡MAC地址

  1. 在zabbix控制臺侥祭,找到模版Template Module Interfaces SNMPv2

    Template Module Interfaces SNMPv2

  2. 選擇自動發(fā)現(xiàn)規(guī)則

    自動發(fā)現(xiàn)規(guī)則

  3. 選擇Network Interfaces Discovery

    Network Interfaces Discovery

  4. 選擇監(jiān)控項原型

    監(jiān)控項原型

  5. 點擊按鈕創(chuàng)建監(jiān)控項原型

    創(chuàng)建監(jiān)控項原型

  1. 按下圖填入相應的內(nèi)容
    MAC監(jiān)控項原型

zabbix配置ngnix監(jiān)控

  1. 啟用nginx status
// 下載nginx源碼,再用以下命令編譯安裝
# ./configure --with-http_stub_status_module
# make && make install

// 修改/usr/local/nginx/conf/nginx.conf吆录,增加以下location
location /ngx_status {
    stub_status on;
    access_log off;
}
  1. 啟動且訪問nginx琼牧。
    http://127.0.0.1/ngx_status
Active connections: 3 
server accepts handled requests
 3 3 1 
Reading: 0 Writing: 1 Waiting: 2 
  1. 編寫服務端獲取nginx信息的腳本文件ngx_status.sh
#!/bin/bash

HOST="192.168.2.207"
PORT="81"

# 檢測nginx進程是否存在
function ping {
    /sbin/pidof nginx | wc -l 
}
# 檢測nginx性能
function active {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
    /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 執(zhí)行function
$1
  1. 測試使用
zabbix_get -s localhost -k 'nginx.status[ping]'
  1. 配置監(jiān)控項

zabbix_proxy安裝和配置

  1. 安裝mariadb(mysql)
// 執(zhí)行安裝命令
# yum -y install mariadb mariadb-server mariadb-devel

// 啟動服務
# systemctl start mariadb

// 設置為開機啟動
# systemctl enable mariadb

// 修改root登錄密碼
# mysql_secure_installation
Enter current password for root (enter for none): [回車]
Set root password? [Y/n] y
New password: 
Re-enter new password: 
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

// 測試登陸
# mysql -uroot -ppassword

// 設置root訪問權限
# mysql -uroot -ppassword
MariaDB [(none)]> grant all privileges on *.* to 'root'@'%' identified by 'qwe123' with grant option;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
  1. 安裝依賴庫
# yum -y install gcc net-snmp-devel libssh2-devel
  1. 下載源碼滋恬,并配置安裝
    下載地址:
    https://www.zabbix.com/download
    https://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.4/zabbix-3.4.4.tar.gz
    上傳zabbix-3.4.4.tar.gz到/home目錄下
# cd /home
# tar -zxf zabbix-3.4.4.tar.gz
# cd zabbix-3.4.4
# ./configure --prefix=/usr/local/zabbix --enable-proxy --with-net-snmp --with-mysql --with-ssh2
# make && make install
  1. 初始化數(shù)據(jù)
# mysql -uroot -ppassword
MariaDB [none]> create database if not exists zabbix_proxy default character set utf8 collate utf8_general_ci;
MariaDB [none]> use zabbix_proxy;
MariaDB [zabbix]> source /home/zabbix-3.4.4/database/mysql/schema.sql;
  1. 安裝fping
    zabbix 3之后把ping更換為fping了恢氯,所以需要安裝fping
# wget http://www.fping.org/dist/fping-4.0.tar.gz
# tar -zxvf fping-4.0.tar.gz
# cd fping-4.0
# ./configure --prefix=/usr/local/fping
# make && make install
  1. 配置
// server配置
# cd /usr/local/zabbix/
# vi ./etc/zabbix_proxy.conf
ProxyMode=0
Server=192.168.31.199(zabbix server)
Hostname=proxy01
DBHost=localhost
DBName=zabbix_proxy
DBUser=root
DBPassword=password
AllowRoot=1
FpingLocation=/usr/local/fping/sbin/fping
  1. 關閉防火墻
# systemctl stop firewalld
# setenforce 0
# vi /etc/selinux/config
SELINUX=disabled
  1. 啟動服務
# /usr/local/zabbix/sbin/zabbix_proxy
  1. 在zabbix控制臺創(chuàng)建agent代理程序
    創(chuàng)建agent代理程序
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末勋拟,一起剝皮案震驚了整個濱河市敢靡,隨后出現(xiàn)的幾起案子苦银,更是在濱河造成了極大的恐慌,老刑警劉巖纺念,帶你破解...
    沈念sama閱讀 222,865評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件想括,死亡現(xiàn)場離奇詭異瑟蜈,居然都是意外死亡,警方通過查閱死者的電腦和手機宪躯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評論 3 399
  • 文/潘曉璐 我一進店門位迂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人冬阳,你說我怎么就攤上這事党饮。” “怎么了氯窍?”我有些...
    開封第一講書人閱讀 169,631評論 0 364
  • 文/不壞的土叔 我叫張陵狼讨,是天一觀的道長。 經(jīng)常有香客問我播聪,道長布隔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,199評論 1 300
  • 正文 為了忘掉前任招刨,我火速辦了婚禮哀军,結果婚禮上杉适,老公的妹妹穿的比我還像新娘。我一直安慰自己传藏,他們只是感情好彤守,可當我...
    茶點故事閱讀 69,196評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著侈离,像睡著了一般筝蚕。 火紅的嫁衣襯著肌膚如雪起宽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評論 1 314
  • 那天绿映,我揣著相機與錄音,去河邊找鬼丐一。 笑死淹冰,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的柠衍。 我是一名探鬼主播疹鳄,決...
    沈念sama閱讀 41,221評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼瘪弓,長吁一口氣:“原來是場噩夢啊……” “哼禽最!你這毒婦竟也來了?” 一聲冷哼從身側響起呛占,我...
    開封第一講書人閱讀 40,174評論 0 277
  • 序言:老撾萬榮一對情侶失蹤懦趋,失蹤者是張志新(化名)和其女友劉穎晾虑,沒想到半個月后仅叫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡笙隙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,770評論 3 343
  • 正文 我和宋清朗相戀三年竟痰,在試婚紗的時候發(fā)現(xiàn)自己被綠了掏呼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,918評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡假消,死狀恐怖岭接,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情啃沪,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評論 5 351
  • 正文 年R本政府宣布缰雇,位于F島的核電站械哟,受9級特大地震影響殿雪,放射性物質(zhì)發(fā)生泄漏齿兔。R本人自食惡果不足惜翅萤,卻給世界環(huán)境...
    茶點故事閱讀 42,255評論 3 336
  • 文/蒙蒙 一扯旷、第九天 我趴在偏房一處隱蔽的房頂上張望索抓。 院中可真熱鬧,春花似錦耸黑、人聲如沸汉矿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赋续。三九已至,卻和暖如春蛾绎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鹏倘。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評論 1 274
  • 我被黑心中介騙來泰國打工顽爹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留镜粤,地道東北人。 一個月前我還...
    沈念sama閱讀 49,364評論 3 379
  • 正文 我出身青樓公荧,卻偏偏與公主長得像同规,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子晤揣,可洞房花燭夜當晚...
    茶點故事閱讀 45,926評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 自定義key網(wǎng)絡發(fā)現(xiàn)Web監(jiān)控主動檢測基于SNMP監(jiān)控基于JMX監(jiān)控Zabbix ProxyZabbix調(diào)優(yōu) 一、...
    哈嘍別樣閱讀 1,160評論 0 1
  • 一盗扒、架構設計及環(huán)境規(guī)劃: 架構設計圖: 架構設計說明: 1. 基礎架構為LAMP環(huán)境缀去,采用keepalived實現(xiàn)...
    Bogon閱讀 10,570評論 0 10
  • 前段時間有監(jiān)控服務器主機缕碎、應用、交換機等的需求凡怎,所以對zabbix進行了學習赊抖,現(xiàn)在整理記錄全過程。 1.zabbi...
    不好聽丶閱讀 805評論 0 4
  • 1.寫在前面 本文主要介紹的是zabbix的編譯安裝過程房匆,包含它的基礎環(huán)境LNMP,雖然zabbix官方一般推薦的...
    天之藍色閱讀 2,541評論 0 16
  • 先通過lnmp一鍵安裝包吧nginx和數(shù)據(jù)庫井氢、php搞起來岳链!然后:實現(xiàn):1. 獲取zabbix centos:獲取...
    老夫劉某閱讀 2,273評論 0 3