1. 程式人生 > 實用技巧 >zabbix監控超詳細搭建過程

zabbix監控超詳細搭建過程

監控及zabbix

目錄:

1 監控分類... 1

1.1 硬體監控... 1

1.2 系統監控... 2

1.3 網路監控... 3

1.4 應用(業務)監控... 3

2 安裝zabbix. 3

2.1 安裝zabbix服務端... 3

2.2 安裝zibbix客戶端... 9

2.3 新增zabbix主機組和主機... 9

2.4 建立使用者和組... 11

2.5 新增專案及觸發器... 13

2.6 設定報警... 16

2.7 自定義模板... 19

2.8 web監控... 20

2.9 分散式監控、客戶端主動模式... 21

2.9.1 客戶端被動模式... 21

2.9.2 客戶端主動模式... 21

2.9.3 zabbix分散式... 22

2.10 自動化監控... 23

2.10.1 zabbix-agent自動註冊(使用proxy)... 23

2.10.2 主機探索(不使用proxy,被動模式)... 24

2.10.3 使用zabbix-api 25

2.11 更改中文字型防止亂碼... 28

1 監控分類

1.1 硬體監控

1、機房巡檢。檢查伺服器各種狀態。

2、通過遠端控制卡監控。ipmi是一種標註。

ipmi獲取不到硬碟狀態,比如硬碟壞了,硬碟可以用MegaCli工具。

ipmi簡介:http://www.ibm.com/developerworks/cn/linux/l-ipmi/

yuminstallOpenIPMIipmitool-y
[root@centos67~]#/etc/init.d/ipmistart

1.2 系統監控

1、瞭解監控物件

2、知道效能的基準線。

cpu監控

cpu排程器

上下文切換

執行佇列

cpu使用率

[root@c67-7 ~]# cat /proc/cpuinfo 

[root@c67-7 ~]# lscpu

[root@c67-7 ~]# uptime  #一般情況小於等於3就是正常

[root@c67-7 ~]# rpm -qa |grep sysstat

sysstat-9.0.4-27.el6.x86_64

[root@c67-7 ~]# vmstat 1

[root@c67-7 ~]# mpstat 1

Linux 2.6.32-573.el6.x86_64 (c67-7)     2015年10月24日  _x86_64_        (1 CPU)

11時24分37秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle

11時24分38秒  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

11時24分39秒  all    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

使用者態(程式執行) 核心態(系統呼叫,如vi開啟檔案) 正常比例是70%:30%

計算類的服務吃cpu,資料庫佔IO

記憶體

[root@c67-7 ~]# free -m

             total       used       free     shared    buffers     cached

Mem:           992        580        411          0         46        441

-/+ buffers/cache:         92        900

Swap:         1023          0       1023

buffer:寫入緩衝區

cache:讀出快取區

硬碟

[root@c67-7 ~]# yum install iotop  -y

iotop

網路io

[root@c67-7 ~]# yum install iftop -y

iftop

nmon可以監控以上所有東西。

1.3 網路監控

第三方監控寶等。

使用smokeping監控網路狀態,如下圖:

1.4 應用(業務)監控

使用pwiki監控業務狀態

apache監控:通過mod_status模組

http://www.t086.com/code/apache2.2/mod/mod_status.html

nginx監控:類似於apache

memcached監控 使用nc獲取狀態

redis監控

2安裝zabbix

2.1 安裝zabbix服務端

官方文件參考

https://www.zabbix.com/documentation/2.4/manual/installation/install_from_packages

1、安裝zabbix-release

[root@linux-node1 ~]# mkdir -p /home/lxy/tools

[root@linux-node1 ~]# cd /home/lxy/tools/

[root@linux-node1 tools]# wget -q http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm

 [root@linux-node1 tools]# rpm -ivh zabbix-release-2.4-1.el6.noarch.rpm

warning: zabbix-release-2.4-1.el6.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID 79ea5ed4: NOKEY

Preparing...                ########################################### [100%]

   1:zabbix-release         ########################################### [100%]

[root@linux-node1 tools]# rpm -ql zabbix-release

/etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX

/etc/yum.repos.d/zabbix.repo

/usr/share/doc/zabbix-release-2.4

/usr/share/doc/zabbix-release-2.4/GPL

[root@linux-node1 tools]# ll /etc/yum.repos.d/zabbix.repo

-rw-r--r-- 1 root root 401 9月  11 2014 /etc/yum.repos.d/zabbix.repo

2.開始安裝zabbix

1)保留yum安裝的rpm包

[root@linux-node1 tools]# sed -i 's#keepcache=1#keepcache=0#g' /etc/yum.conf

[root@linux-node1 tools]# grep keepcache /etc/yum.conf

keepcache=0

2)開始安裝zabbix

yum -y install zabbix zabbix-server zabbix-server-mysql #<==ZABBIX SERVER相關

yum -y install zabbix-web zabbix-web-mysql #<==Apache、Php Web介面環境

yum -y install zabbix-agent #<== ZABBIX客戶端

yum -y install mysql-server mysql #<==MySQL客戶端與服務端

3、配置zabbix服務相關

1)配置mysql

[root@linux-node1 tools]# \cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

[root@linux-node1 tools]# vim /etc/my.cnf

在[mysqld](第26行)標籤下增加如下三行後儲存

[mysqld]

character-set-server = utf8
init-connect = 'SET NAMES utf8'
collation-server = utf8_general_ci

[root@linux-node1 tools]# /etc/init.d/mysqld start

2)初始化資料庫環境

建立資料庫

mysql> create database zabbix character set utf8 collate utf8_bin;

Query OK, 1 row affected (0.00 sec)

授權資料庫

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

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

匯入表結構

[root@linux-node1 tools]# cd /usr/share/doc/zabbix-server-mysql-2.4.6/create/

[root@linux-node1 create]#  mysql -u root -p zabbix < schema.sql

[root@linux-node1 create]# mysql -u root -p zabbix < images.sql

[root@linux-node1 create]#  mysql -u root -p zabbix < data.sql

[root@linux-node1 create]# mysqladmin -uroot password 123456

3)設定apache時區

sed -i 's#\# php_value date.timezone Europe/Riga#php_value date.timezone Asia/Shanghai#g' /etc/httpd/conf.d/zabbix.conf

grep Shanghai /etc/httpd/conf.d/zabbix.conf

    php_value date.timezone Asia/Shanghai

4)更改zabbix server配置

[root@linux-node1 ~]# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak

[root@linux-node1 ~]# sed -i 's@# DBPassword=@DBPassword=zabbix@g' /etc/zabbix/zabbix_server.conf

[root@linux-node1 ~]# sed -i 's@# DBHost=localhost@DBHost=localhost@g' /etc/zabbix/zabbix_server.conf

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

vim /etc/zabbix/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix

5)啟動相關服務

[root@linux-node1 ~]# /etc/init.d/zabbix-server start

Starting Zabbix server:                                    [確定]

[root@linux-node1 ~]# /etc/init.d/httpd start

正在啟動 httpd:                                           [確定]

[root@linux-node1 ~]# lsof -i:10051|wc -l

55

[root@linux-node1 ~]# lsof -i:80|wc -l    

1

0

4、web介面安裝

上面的圖形操作就是建立了一個配置檔案,然後如果寫錯就可以去配置檔案改

登入Admin/zabbix

進入後改密碼

2.2 安裝zibbix客戶端

服務端也安裝

rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm yum install zabbix-agent -y

vim /etc/zabbix/zabbix_agentd.conf

81 Server= 10.0.0.7 (服務端ip)

grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

Server= 10.0.0.7 (服務端ip)

ServerActive=127.0.0.1 (服務端ip)

Hostname=Zabbix server

/etc/init.d/zabbix-agentd start

2.3 新增zabbix主機組和主機

新增組

新增主機

2.4 建立使用者和組

zabbix報警是針對使用者和使用者組的。

建立使用者(不要急著存檔)

報警媒介先不填,因為預設的媒介不好用,需要手動新增,一會新增。

新增完,可以使用新使用者登入

2.5 新增專案及觸發器

1、客戶端新增一個檢查使用者的key,格式為key,命令

grep UserParameter /etc/zabbix/zabbix_agentd.conf

UserParameter=login-user,uptime | awk -F ' ' '{print $4}'

/etc/init.d/zabbix-agent restart

2、主機通過zabbix-get檢查

yum install zabbix-get -y

zabbix-get -s 客戶主機 -k 命令

[root@linux-node1 ~]# zabbix_get -s 10.0.0.8 -k login-user

login-user 獲取登入使用者的列表

3、web介面新增

主機介面選定主機,然後點選專案,點建立專案

4、新增觸發器

此處點新增,然後選擇主機

5、建立圖形

2.6 設定報警

1、設定動作

自定義報警型別

[root@linux-node1 ~]# vim /etc/zabbix/zabbix_server.conf

435 AlertScriptsPath=/usr/lib/zabbix/alertscripts ##<<設定自定義指令碼的路徑

[root@linux-node1 alertscripts]# /etc/init.d/zabbix-server restart

之後寫相應指令碼

指令碼要支援三個引數

$1:使用者的介質,如郵箱,手機號等

$2:標題

$3:內容

[root@linux-node1 alertscripts]# cat login.sh

#!/bin/bash

MAIL_TITEL=$2

MAIL_CON=$3

echo "$MAIL_CON"|/bin/mail -s "$MAIL_TITEL" $1

echo "$1 $2 $3">>/tmp/login_zabbix.txt

新增媒介型別

在動作中設定

為使用者配置示警媒介

2.7 自定義模板

建立模板----模板中建立應用集----建立監控項-建立觸發器-畫圖等都搞進模板。

最後主機新增模板

注意點,使用老師的模板指令碼,另外新增多個類似模板點克隆再改

[root@lb-node2 zabbix]# cat zabbix_agentd.conf.d/zabbix-linux-plugin.conf 
UserParameter=linux_status[*],/etc/zabbix/zabbix_linux_plugin.sh "$1" "$2" "$3"  #寫在/etc/zabbix/zabbix_agentd.conf中

2.8 web監控

web監控是針對主機的,別忘了觸發器

2.9 分散式監控、客戶端主動模式

2.9.1 客戶端被動模式

grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

StartAgents=3

Server= 10.0.0.7

ServerActive=127.0.0.1

Hostname=Zabbix server

2.9.2 客戶端主動模式

[root@linux-node2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
StartAgents=0
ServerActive=10.0.0.7
Hostname=linux-node2.example.com
Include=/etc/zabbix/zabbix_agentd.d/

[root@linux-node2 ~]# /etc/init.d/zabbix-agent restart

服務端克隆模板,把模板裡專案全選,批量更新,專案型別改為主動方式

然後主機新增專案即可。

#克隆linux OS模板,注意更改連線,連線也是克隆的。

2.9.3 zabbix分散式

使用內網yum源

echo '192.168.0.200 mirrors.aliyun.com repo.zabbix.com' >>/etc/hosts

客戶端安裝zabbix-proxy

[root@linux-node2 ~]# yum install -y zabbix-proxy zabbix-proxy-mysql mysql-server

配置分散式

[root@linux-node2 ~]# rpm -ql zabbix-agent

/etc/init.d/zabbix-agent

/etc/logrotate.d/zabbix-agent

/etc/zabbix/zabbix_agentd.conf

/etc/zabbix/zabbix_agentd.d

/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

/usr/sbin/zabbix_agent

/usr/sbin/zabbix_agentd

/usr/share/doc/zabbix-agent-2.4.6

/usr/share/doc/zabbix-agent-2.4.6/userparameter_examples.conf

/usr/share/doc/zabbix-agent-2.4.6/zabbix_agent.conf

/usr/share/man/man8/zabbix_agentd.8.gz

[root@linux-node2 ~]# rpm -ql zabbix-proxy-mysql

/usr/sbin/zabbix_proxy_mysql

/usr/share/doc/zabbix-proxy-mysql-2.4.6

/usr/share/doc/zabbix-proxy-mysql-2.4.6/create

/usr/share/doc/zabbix-proxy-mysql-2.4.6/create/schema.sql

資料庫配置

[root@linux-node2 ~]# /etc/init.d/mysql start

mysql> create database zabbix_proxy character set utf8;

Query OK, 1 row affected (0.00 sec)

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

Query OK, 0 rows affected (0.00 sec)

mysql> use zabbix_proxy

Database changed

mysql> source /usr/share/doc/zabbix-proxy-mysql-2.4.6/create/schema.sql;

Query OK, 0 rows affected (0.02 sec)

配置檔案配置

[root@linux-node2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf

ProxyMode=0 #0主動,1被動

Server=10.0.0.7 #主動模式設定

Hostname=proxy-node1 #必須改

LogFile=/var/log/zabbix/zabbix_proxy.log

LogFileSize=0

PidFile=/var/run/zabbix/zabbix_proxy.pid

DBName=zabbix_proxy

DBUser=zabbix

DBPassword=zabbix

DBSocket=/var/lib/mysql/mysql.sock

ExternalScripts=/usr/lib/zabbix/externalscripts

[root@linux-node2 ~]# /etc/init.d/zabbix-proxy start

Starting Zabbix proxy: [確定]

[root@linux-node2 ~]# lsof -i:10051

配置介面,管理-分散式(代理)-建立代理-

之後新增主機(選上代理即可),要監控的機器agent配置檔案ip改成代理的ip

服務多重啟幾次,先stop再start

2.10 自動化監控

2.10.1 zabbix-agent自動註冊(使用proxy)

HostMetadataItem=system.uname

[root@linux-node2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix/zabbix_agentd.log

LogFileSize=0

StartAgents=0

ServerActive=10.0.0.8 #這裡用了代理的ip

Hostname=linux-node2.example.com

HostMetadataItem=system.uname

Include=/etc/zabbix/zabbix_agentd.d/

配置-動作-事件源選擇自動註冊-建立動作

2.10.2 主機探索(不使用proxy,被動模式)

組態-探索--使用預設的就行,如下,

之後建立動作,事件源選探索,上面那個是自動註冊

然後剩下同上了

2.10.3 使用zabbix-api

https://www.zabbix.com/documentation/2.4/manual/api/reference

[root@linux-node1 ~]# /usr/share/zabbix/api_jsonrpc.php

獲取驗證

[root@linux-node1 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '

{

"jsonrpc": "2.0",

"method": "user.login",

"params": {

"user": "Admin",

"password": "123456"

},

"id": 1

}' http://10.0.0.7/zabbix/api_jsonrpc.php | python -mjson.tool

---------上面為輸入--下面為輸出-----

{

"id": 1,

"jsonrpc": "2.0",

"result": "6981d2f7663ac35b553ce7e4477f7f29"

}

-------

請求api,獲取監控主機,帶上SessionID

[root@linux-node1 ~]# curl -s -X POST -H 'Content-Type:application/json' -d '

{

"jsonrpc": "2.0",

"method": "host.get",

"params": {

"output": ["hostid"]

},

"auth": "6981d2f7663ac35b553ce7e4477f7f29",

"id": 2

}' http://10.0.0.7/zabbix/api_jsonrpc.php | python -mjson.tool

------上面為輸入,下面為輸出----------

{

"id": 2,

"jsonrpc": "2.0",

"result": [

{

"hostid": "10084"

},

{

"hostid": "10115"

}

]

}

剩下看官網咖,官網提供各種方法。

https://www.zabbix.com/documentation/2.4/manual/api/reference/host/get

例子:建立主機,執行下面直接新增。

curl -s -X POST -H 'Content-Type:application/json' -d '

{

"jsonrpc": "2.0",

"method": "host.create",

"params": {

"host": "Linux server",

"interfaces": [

{

"type": 1,

"main": 1,

"useip": 1,

"ip": "10.0.0.8",

"dns": "",

"port": "10050"

}

],

"groups": [

{

"groupid": "2"

}

],

"templates": [

{

"templateid": "10001"

}

],

},

"auth": "9d670026e562405100a1a073231e7658",

"id": 1

}' http://10.0.0.7/zabbix/api_jsonrpc.php | python -mjson.tool

2.11 更改中文字型防止亂碼

講自己電腦的字型微軟雅黑上傳到linix上

[root@lvs1 fonts]# pwd ##2.2版本

/var/www/html/fonts

[root@lvs1 fonts]# mv DejaVuSans.ttf DejaVuSans1.ttf

[root@lvs1 fonts]# mv msyh.ttf DejaVuSans.ttf

[root@lvs1 fonts]# ll

總用量 21988

-rw-r--r-- 1 apache apache 741536 4月 22 15:56 DejaVuSans1.ttf

-rw-r--r-- 1 root root 21767952 6月 11 2009 DejaVuSans.ttf

[root@lvs1 fonts]# chown apache.apache DejaVuSans.ttf

或者直接更改系統的

/usr/share/fonts/dejavu/DejaVuSans.ttf

另外不同版本zabbix字型位置不一樣,名字也不一樣,下面是本文件的版本

[root@linux-node1 dejavu]# find / -type d -name "fonts"

/var/www/html/fonts

/etc/fonts

/usr/share/zabbix/fonts

/usr/share/fonts

轉自https://www.cnblogs.com/liang-wei/p/5848923.html