Zabbix監控

一、監控概述

·初級:

·1.識別監控對象 (分級)

·2.理解監控對象  (理論基礎)

·3.細分監控對象的指標 

·4.確定告警的基準線

 

·預中級:

1.工具化和監控分離

2.監控對象的分類:

2.1 硬件監控 (方法:機房巡檢、IPMISNMP簡單網絡管理協議、)

2.2 系統監控  (對象:cpu、內存、IO【磁盤、網絡】)

2.3 服務監控  (對象:分類服務)

2.4 日誌監控   (方法:Elastic Stack

2.5 網絡監控   (方法: 第三方、Smokeping

2.6  APM應用性能管理   (工具:pinpoint APM

2.7 流量監控(工具:Piwikxx統計、xx分析)

2.8 其他監控 (APP監控、安全監控、業務監控、輿論監控、xx監控等)

3.掌握一個監控工具。例如:zabbix

 

·中級:

0.標準化監控(標準化的腳本、模板、....

1.分佈式監控(主動、被動、分佈式)

2.自動化監控(自動發現、主動註冊【Agent主動註冊、Server主動添加(API)】)

3.性能優化(數據採集、數據存儲、數據查詢)

4.二次開發(定製報表、API調用、)


·進階:(精通到放棄)

1.告警閾值動態化

2.智能告警:【1.告警去重 2.依賴】

3.故障自愈(事件驅動、主動控制)

4.大規模告警  

 

硬件監控:

1.機房巡檢

2.通過網絡來巡檢

 

例如:DELL  通過iDRAC口監控

  HP    通過ILO

  IBM   通過IMM

  

由於每個廠商不一樣可以通過IPMI協議來統一管理。

IPMI簡介:

wKiom1jaO6DACNaJAAA-5CHIHzg818.png-wh_50

wKiom1jaO6TRYXHhAAUbWzUyGGk156.png-wh_50

Ipmitool是一種可用在linux系統下的命令行方式的ipmi平臺管理工具,它支持ipmi 1.5規範(最新的規範爲ipmi2.0),通過它可以實現獲取傳感器的信息、顯示系統日誌內容、網絡遠程開關機等功能。

Ipmitool有兩種使用方式:

wKioL1jaO9iT0PDMAAB1T3WnP4c438.png-wh_50

wKiom1jaO9jypArUAABgTRtkOV4696.png-wh_50

安裝IPMI

wKioL1jaO_fgL_WbAAAKH_0cbt4536.png-wh_50

Zabbix自帶IPMI


安裝ipmitool管理工具:

wKioL1jaPCvTDGiGAACn4mrNzGQ816.png-wh_50

詳細安裝配置請參考網站:

https://www.ibm.com/developerworks/cn/linux/l-ipmi/index.html

建議通過以上IPMI網址安裝配置。

 

通過SNMP來管理:

基於SNMP監控

安裝略

使用方法

查看cpu負載

snmpget -v2c -c admin 192.168.56.11 .1.3.6.1.4.1.2021.10.1.3.1

UCD-SNMP-MIB::laLoad.1 = STRING: 0.00

snmpwalk -v2c -c admin 192.168.56.11 .1.3.6.1.4.1.2021.10.1.3

UCD-SNMP-MIB::laLoad.1 = STRING: 0.00

UCD-SNMP-MIB::laLoad.2 = STRING: 0.01

UCD-SNMP-MIB::laLoad.3 = STRING: 0.05

 

監控寶 SNMP安裝:(環境CentOS 7

1.  CentOS  SNMP安裝:

安裝net-snmp

yum install net-snmp net-snmp-devel net-snmp-utils

wKiom1jaPFbAAX_sAAADq54lgdw707.png-wh_50

說明:net-snmp-devel是爲了使用net-snmp-config, net-snmp-utils是爲了使用snmpwalk

配置 Net-SNMP

CentOS下的net-snmp無法在selinux環境下正常使用v3。 如果您想使用snmp v3,請先禁用selinux

net-snmp-config --create-snmpv3-user -ro -A snmp@jiankongbao -a MD5 jiankongbao

 

以上命令,創建一個snmpv3用戶,只讀,使用MD5,用戶名爲jiankongbao,密碼爲snmp@jiankongbao

注意:運行之前請先停用net-snmp服務。

停止snmpd服務

 service snmpd stop

wKioL1jaPI7iDnmaAAAHPG3dsjk354.png-wh_50

運行Net-SNMP

運行 Net-SNMP 服務的方法比較簡單,不過Net-SNMP服務的名字是snmpd

service snmpd start

wKioL1jaPK2hgzvvAAAIBDUHsQ8161.png-wh_50

加入開機自啓動運行服務列表:

chkconfig snmpd on

wKiom1jaPMPQpaTnAAAQzHvDEYU720.png-wh_50

檢測 Net-SNMP

可以使用 snmpwalk 來檢測snmp服務是否正常開啓。

snmpwalk -v 3 -u jiankongbao -a MD5 -A "snmp@jiankongbao" -l authNoPriv 127.0.0.1 sysDescr

如果一切正常,就會返回正常結果。

配置 防火牆

Net-SNMP 使用 udp 協議,161端口。

可以實現對mysql監控、Apache監控、Lighttpd監控、Nginx監控等等。

例如:

mysql監控:

先創建mysql的權限,需要在被監控的mysql服務器上爲監控寶創建一個專用的mysql用戶,這樣做的好處是:

與您的其它MySQL用戶進行有效隔離,獨立管理。

對該用戶進行受限管理,不需要給予任何MySQL權限。

指定監控寶的訪問IP地址,阻止其它非法訪問。

操作非常簡單,在MySQL中操作如下:

CREATE USER 'jiankongbao'@'60.195.252.106' IDENTIFIED BY  'your_password';

CREATE USER 'jiankongbao'@'60.195.252.108' IDENTIFIED BY  'your_password';

# CREATE USER 'jiankongbao'@'60.195.249.83'  IDENTIFIED BY  'your_password';

注意:防火牆安全。在MySQL或者防火牆中指定授權IP地址的時候,請只開放我們指定的IP地址,而不要直接開放整個C類網段,比如60.195.252.0/24,因爲該網段中其它服務器不在我們的可控範圍內。

 

Apache 監控:

需要開啓status模塊,修改httpd.conf文件。

添加如下:

ExtendedStatus On

<Location /server-status>

  SetHandler server-status

  Order deny,allow

  Deny from all

  Allow from 60.195.252.106 60.195.252.108

  # Allow from 60.195.249.83

</Location>

 

也可以設置受限訪問設置:在配置文件中,修改<location  /server-status>一行。

 

Lighttpd 監控

Lighttpd的狀態監控依賴於mod_status模塊,幸運的是,Lighttpd缺省已經內置了mod_status模塊,我們要做的就是打開配置文件lighttpd.conf,開啓這個模塊,也就是刪除模塊前邊的“#”註釋符,比如:

server.modules              = (

#                               "mod_rewrite",

#                               "mod_redirect",

#                               "mod_alias",

                                "mod_access",

#                               "mod_trigger_b4_dl",

#                               "mod_auth",

                               "mod_status",

                               "mod_fastcgi",

                                "mod_accesslog" )

然後,在lighttpd.conf中找到以下部分:

 

#### status module

status.status-url          = "/server-status"

默認情況下以上語句是被註釋的,同樣,刪掉註釋符,保存配置文件,重啓lighttpd

 

Nginx監控:

默認情況下不包含狀態stub_status,所以編譯時添加參數,然後再nginx.conf中開啓狀態頁面。

 

Windows SNMP安裝:

http://blog.jiankongbao.com/?p=185

 

詳細請參考

spacer.gifhttp://wiki.jiankongbao.com/doku.php/%E6%96%87%E6%A1%A3:%E5%AE%89%E5%85%A8%E6%8C%87%E5%BC%95

 

系統監控:

CPU

進程:每一個進程,至少有一個線程。

      每個進程可以有多個線程。

(單CPU單核),進程的內存空間是共享的,每個線程可以使用這些共享。提供協調機制,防止進程之間和線程之間產生衝突,另一方面允許進程之間和線程之間共享資源。

 

linux系統中用top命令查看到用戶態和內核態,爲什麼會有用戶態和內核態?

0爲內核態

3爲用戶態

 

CPU監控指標:中斷/使用率/cpu負載/上下文切換/僵死進程的監控、最大進程的運行數量、

Top uptime vmstat mpstat  lscpu

CPU負載:單位時間內運行隊列中就緒等待的進程數平均值。

內存:

虛擬內存linux管理的是虛擬內存swap、物理內存,linux管理虛擬內存

內存是分頁的,內存頁默認每頁是4K

Free –m查看內存時,剩餘內存需要查看available

         total        used        free      shared  buff/cache   available

Mem:        977         102         514           6         360         714

Swap:          2047           0        2047

 

優化內存

echo  "0" > /proc/sys/vm/swappiness

cat /sys/block/sda/queue/scheduler

IO

Iftop  -n 不解析域名  -i  指定網卡名 –P 顯示端口名

i ftop -i eth0 -F spacer.gif192.168.56.0/24

 

Nethogs

Iotop  

 

負載均衡器一定要監控tcp狀態

 

 

以下是鏈接以及工具

http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html

http://os.51cto.com/art/201012/240476.htm

http://www.cnblogs.com/cutepig/p/3403711.html 

http://elf8848.iteye.com/blog/2089055

yum  -y  install nethogs

yum y install iotop

yum –y install iftop

yum –y install sysstat

網絡監控:

檢測工具:

spacer.gifhttp://ping.chinaz.com/ 

開源工具:SmokePing支持分佈式

 

zabbix部署

 

1.什麼是zabbix

Zabbix是一個分佈式開源的監控系統,支持多種採集方法,使它幾乎可以採集和處理所有類型的監控數據;靈活的報警機制,可以實現各種的自定義報警策略,強大的拓展性,可以自定義監控項、圖形、模板,還支持自動註冊和自動發現,使它可以快速構建一套大型的監控系統,還有豐富的API接口。

其他監控系統cactinagiosMangeEngine_ApplicationsManager,lepussmokepingpiwiki等選zabbix的理由:簡單、高效、靈活

安裝zabbix前需準備環境:

時間同步:

yum -y install ntpdate

wKiom1jaPQHRzAC4AAAhgi5PhiY974.png-wh_50

設置計劃任務:crontab -e

echo '* * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >>/var/spool/cron/root

查看計劃任務:

crontab  -l

1.設置主機名解析
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.105 zabbix-server

2.安裝 EPEL 倉庫和常用命令
rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum install -y net-tools vim lrzsz tree screen lsof tcpdump

 

注意:如果epel源不能使用,請自行切換其他yum源,本次安裝zabbix-server不需要網絡,但是,由於選擇的是基礎環境安裝,需要安裝的工具包。
5.更新系統並重啓
yum update -y && reboot

 

安裝部署zabbix 3.0 LTS

Zabbix 3.0的安裝

軟件版本要求:

http 1.3.12

Php 5.4.0(不支持php7.0

Mysql 5.0.3

Zabbix 3.0版本不支持php v7版本。入選用php v7 選擇使用zabbix 3.2

安裝YUM源。

rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

/etc/yum.repo下形成一個zabbix.repo文件

wKiom1jaPSCSUq54AABJ-cECNo0996.png-wh_50

打開zabbix.repo文件yum源是指向國外的官網的,爲了訪問方便,建議把yum源地址改爲阿里雲的源

修改yum源指向阿里源:

baseurl=http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/$basearch/

baseurl=http://mirrors.aliyun.com/zabbix/non-supported/rhel/7/$basearch/

查看zabbix安裝包:

yum list | grep zabbix

wKiom1jaPTuhzxnvAAB2pf2HYX8704.png-wh_50

安裝zabbix包

yum -y install zabbix-server-mysql zabbix-web-mysql

安裝數據庫:

yum -y install mariadb mariadb-server

啓動mariadb服務並設置開機自啓動。

systemctl enable mariadb.service

systemctl start mariadb.service 

wKiom1jaPVSDgsN5AAARyykATSA553.png-wh_50

要想使用補全命令可以安裝epel源的包。

yum install bash-comp* -y

初始化數據庫:

mysql_secure_installation

設置數據庫密碼:

mysqladmin -u root password

進入數據庫:

mysql -uroot -p

創建數據庫,並設置字符集爲Utf-8

create database zabbix character set utf8 collate utf8_bin;

授權數據庫:

grant all privileges on zabbix.* to zabbix@'localhost' identified by '123.Com';

打開導入數據庫並驗證zabbix數據庫:

zcat /usr/share/doc/zabbix-server-mysql-3.0.8/create.sql.gz|mysql -uzabbix -p123.Com zabbix

注意zcat是一個查看命令。

設置web界面:

vim /etc/httpd/conf/httpd.conf

wKioL1jaPXLT1qhEAAADI0kO3U0370.png-wh_50

更改ServerName

啓動web服務:

systemctl  restart  httpd.service

systemctl  enable  httpd.service

wKiom1jaPY2zY9JbAAAPIywrO-Q962.png-wh_50

配置zabbix-server,設置配置文件中添加密碼:

vim /etc/zabbix/zabbix_server.conf

啓動zabbix-server服務:

systemctl start zabbix-server.service

注意:

Zabbix端口號10051

Zabbix的web配置文件默認安裝再/etc/httpd/conf.d/

連接php的配置文件默認安裝再/etc/httpd/conf.d/

wKiom1jaPafzTJHlAAAJllCV87o161.png-wh_50

關閉NetworkManager和防火牆:
systemctl disable firewalld
systemctl disable NetworkManager

4.關閉並確認 SELinux 處於關閉狀態
vim /etc/sysconfig/selinux
SELINUX=disabled #修改爲 disable

setenforce 0

getenforce 

wKioL1jaPcbBzBBFAAAGnY6Opbw125.png-wh_50

注意:不注意防火牆或者NetworkManagerselinux會導致zabbix啓動了卻web界面裏還是顯示zabbix 未啓動。

進入web界面安裝zabbix

輸入http://zabbix服務器地址/zabbix/setup.php進入,根據嚮導安裝。更改時區

修改/etc/httpd/conf.d/zabbix.conf中的一行:

 php_value date.timezone Asia/Shanghai把這一行的註釋去掉地點改爲上海。

Asia/Shanghai

wKiom1jaPeqT5GJyAAAFOHxYZqQ449.png-wh_50

更改完畢後,重啓httpd.service服務。

wKioL1jaPgKSk9aqAAAFHEfZOXs211.png-wh_50

這是安裝zabbix的嚮導安裝的第一步:

wKioL1jaPhmR32ssAABSshZYG4Q022.png-wh_50

這是安裝zabbix的嚮導安裝的第二步

可以看到時間地點已經更改成功了!

wKiom1jaPjTg3_nKAACGM3wQUow292.png-wh_50

下一步設置連接數據庫的用戶密碼等:

wKioL1jaPk6AwcN9AABnRfjb33k679.png-wh_50

下一步設置命名:

wKioL1jaPoKClmchAABVgcFeJQE353.png-wh_50

下一步:

wKiom1jaPpyxG-TEAAB69cUB1Zs089.png-wh_50

安裝zabbix

wKioL1jaPrjw2pRlAABV2POogCI583.png-wh_50

輸入用戶密碼,進入zabbix界面。

默認的用戶:Admin   密碼:zabbixwKiom1jaPuWBCiASAAAmo6mQWPg198.png-wh_50

進入了zabbix的界面:

wKioL1jaPy3SppiVAADBqtjz4wY813.png-wh_50

由於只安裝了zabbix,並沒有配置zabbix配置

修改zabbix配置文件:

vim /etc/zabbix/zabbix_server.conf 

wKiom1jaP0rjzc85AAADXK-K31M339.png-wh_50

修改配置文件中的DBPassword=這一行並把註釋去掉!

wKiom1jaP2ywOtFMAAADY28z908400.png-wh_50

重啓zabbix-server服務並設置開機自啓動

wKioL1jaP4OTbbMtAAAPB8J86EU395.png-wh_50

下面再看一下zabbix界面NO變成了YES.

wKioL1jaP57Ca9XlAACQ-ZWBFIQ497.png-wh_50

顯示zabbix已經正常啓動!

如果zabbix到達瓶頸可以進行拆分。

/etc/zabbix/web/zabbix.conf.ph在這個文件中配置拆分。

要想讓zabbix監控自己,需要安裝一個zabbix-agent 可以監控自己本身。依賴openssl

修改zabbix-agent配置文件

vim  /etc/zabbix/zabbix_agentd.conf

可以配置主動和被動

啓動zabbix-agent服務:

systemctl start zabbix-agent

wKiom1jaP7iihe_gAAADeaK9VaU776.png-wh_50

可以看到如下zabbix server主機hosts

wKiom1jaP9DiYneRAABowwjZO1A631.png-wh_50

可以看到如下zabbix server主機hosts

wKiom1jaP-viLEHEAABXSKIrxg0067.png-wh_50

看到已啓動!

Zabbix主動模式和被動模式:

理論:

 

被動模式流程,被動模式一定要記得設置Server ServerIP

被動模式工作流程:

Server 打開一個TCP連接

Server發送一個key agent.ping

Agent接受這個請求,然後響應< HEADER >< DATALEN >

Server對接受到的數據進行處理

TCP連接關閉

 

主動模式流程:主動模式一定要記得設置ServerActive=ServerIP

AgentServer建立一個TCP連接

Agent請求需要檢測的數據列表

Server響應Agent,發送一個Items列表

Agent允許響應

TCP連接完成本次會話關閉

Agent開始週期性地收集數據

 

安裝第二臺agent

安裝agent服務:

rpm -ivh zabbix-agent-3.0.5-1.el7.x86_64.rpm

wKioL1jaQAnAdtjmAAAWQjdAMp4014.png-wh_50

啓動並設置開機自啓

systemctl start zabbix-agent.service

systemctl enable zabbix-agent.service 

wKioL1jaQCHwkBpaAAARIfCdboE076.png-wh_50

Zabbix添加監控主機:

configuration中選擇hosts

wKioL1jaQDizNM77AABlybYauvc118.png-wh_50

如果Groups沒有可以NEW一個,然後ip地址填寫agentip,添加完畢後不要add

還需要添加Templates模板之後再按add(在這裏選擇Template OS Linux模板)

截圖如下:

wKiom1jaQFnBcLzIAABXUyLnaFU611.png-wh_50

可以看見host主機添加成功:

wKiom1jaQILChHdGAADCOeAfFyY062.png-wh_50

發現添加的主機ZBX爲紅色,報錯如下:

Received empty response from Zabbix Agent at [192.168.0.106]. Assuming that agent dropped connection because of access permissions.

wKiom1jaQKGxT5b4AABuI8v-Hz8979.png-wh_50

解決辦法:修改agent的配置文件:

vim /etc/zabbix/zabbix_agentd.conf

wKioL1jaQMChy73hAAAF5pTwRjk247.png-wh_50

修改爲Server=zabbix serverip地址)

Server=192.168.0.105

wKiom1jaQNjTCTbJAAAD6N-BjdA930.png-wh_50

重啓zabbix-agent服務:

systemctl restart zabbix-agent.service

wKioL1jaQPOgWdbLAAAGsgn887A964.png-wh_50

可以看到如下圖紅色變爲了綠色,問題解決了!

wKiom1jaQQzB51RvAAC3_PXwMPU598.png-wh_50

使用zabbix-get

安裝zabbix-get服務:

yum install -y zabbix-get

測試方法:

例如:

zabbix_get -s linux-node2.example.com -k agent.ping

只能取zabbix  agent類型

查看本機有多少內置key

zabbix_agentd -p

wKioL1jaQSfzMHn8AAAEpxFQqL4980.png-wh_50

zabbix簡單的安裝配置及其理論!希望可以幫到大家!後期會爲大家更新zabbix監控各種服務!

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