zabbix第一篇:zabbix安裝及使用

 

 經常使用軟件安裝及使用目錄php

 

一:搭建zabbix命令集

cat /etc/redhat-releasehtml

uname -rpython

getenforcemysql

systemctl status firewalld.servicenginx

hostname -Igit

tail -1 /etc/hostsgithub

      #192.168.19.200 repo.zabbix.com mirrors.aliyun.comweb

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

yum install zabbix-server-mysql zabbix-web-mysqlshell

yum -y install mariadb-server

systemctl start mariadb.service

 

mysql

create database zabbix character set utf8 collate utf8_bin;

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

exit

 

zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix

sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf

sed -i.ori '18a php_value date.timezone  Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf

systemctl start zabbix-server

systemctl start httpd

 

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

yum install zabbix-agent

sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf

systemctl start zabbix-agent.service

 

yum install zabbix-get

zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"

zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"

yum -y install wqy-microhei-fonts

\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

 

一:zabbix服務端安裝:

cat /etc/redhat-release

uname -r

getenforce

systemctl status firewalld.service

hostname -I

tail -1 /etc/hosts

      #192.168.19.200 repo.zabbix.com mirrors.aliyun.com

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

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

yum -y install mariadb-server

systemctl start mariadb.service

 

mysql

create database zabbix character set utf8 collate utf8_bin;

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

exit

 

zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix

sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf

sed -i.ori '18a php_value date.timezone  Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf

systemctl start zabbix-server

systemctl start httpd

 

ip/zabbix

 

 

 

 

zabbix頁面中英文語言類型修改

建立監控主機

 

 

二:zabbix服務端自我監控

yum install zabbix-agent

sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf

systemctl start zabbix-agent.service

 

yum install zabbix-get

zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"

 

三:添加zabbix客戶端

 

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

yum install zabbix-agent

sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf

systemctl start zabbix-agent.service

 

#服務端測試

zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"

 

 

可刷新查看

沒變綠查看模板是否添加上了

 

zabbix圖形界面有亂碼:

#服務端操做:

yum -y install wqy-microhei-fonts

\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

刷新

http://c.onealert.com/ucid/registerForABTest/register.jsp

認識zabbix其餘界面

 

監控案例

實際需求:公司已經有了100臺服務器,如今須要使用zabbix所有監控起來。

1. 先出個方案(規劃)

常規監控:cpu,內存,磁盤,網卡  問題:怎樣快速添加100臺機器

方法1:使用克隆的方式

方法2:自動註冊和自動發現

方法3:調用zabbix api接口  curl python

開發本身的運維平臺兼容zabbix的通道

 

curl -i -X POST -H 'Content-Type:application/json' -d'{"jsonrpc": "2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"auth": null,"id":0}' "http://10.0.0.61/zabbix/api_jsonrpc.php"

 

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

{

"jsonrpc": "2.0",

"method": "host.get",

"params": {

"output": [

"hostid",

"host"

],

"selectInterfaces": [

"interfaceid",

"ip"

]

},

"id": 2,

"auth": "6a450a8fc3dce71fd310cfe338746578"

}' "http://10.0.0.61/zabbix/api_jsonrpc.php"

 

服務監控,url監控等特殊監控:自定義監控

 

2. 具體的實施步驟

 

1. 全網監控技術要點分析

 

考試目標:使用zabbix將期中架構全部集羣監控

 

具體內容:

1、硬件、系統、網絡監控

全部集羣節點(全部虛擬機)都監控上

 

交換機,路由器監控(簡單方法:換成端口對應服務器網卡流量監控;標準方法:監控交換機的網卡)

snmp監控

 

2、應用服務監控

服務端口的監控測試

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.listen[80]'

1

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.listen[81]'

0

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[172.16.1.61,80]'

1

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[172.16.1.62,80]'

0

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[,80]'

1

添加監控項

進程監控測試(m01服務端

zabbix_get -s 172.16.1.61 -p 10050 -k 'proc.num[httpd,]'

zabbix_get -s 172.16.1.61 -p 10050 -k 'proc.num[,apache]

添加模板,監控項圖形等等

 

部分服務器監控方案

 1. 監控備份服務器方案

監控備份服務器,簡單方法是監控rsync端口,若是有其餘更佳方案能夠說明;

方法1:監控873端口net.tcp.port[,873]

方法2:模擬推送拉取文件

2. 監控NFS服務器方案

監控NFS服務器,使用監控NFS進程來判斷NFS服務器正常,若是有其餘更佳方案能夠說明;

方法1:端口(經過111rpc端口獲取nfs端口) net.tcp.port[,111]

方法2showmount -e ip|wc -l

 3. 監控MySQL服務器方案

 監控MySQL服務器,簡單方法監控mysql3306端口,或者使用zabbix提供的Mysql模板,若是有其餘更佳方案能夠說明;

方法1:端口(經過3306mysql端口) net.tcp.port[,3306]

方法2mysql遠程登陸

方法3:使用zabbix agent自帶的模板及key

沒有權限訪問 key中添加用戶密碼

4. 監控2web服務器方案

監控2web服務器,簡單方法監控80端口,若是有其餘更佳方案能夠說明;

方法1:端口(經過80web端口) net.tcp.port[,80]

方法2:看網頁狀態碼、返回內容==zabbix 自帶WEB檢測

 5. 監控URL地址構建web場景

監控URL地址來更精確的監控咱們的網站運行正常;

yum -y install nginx

echo ok >>/usr/share/nginx/html/check.html

瀏覽器測試 http://10.0.0.21/check.html

1) web場景

1) 步驟

1) 成功

1) 常見錯誤

步驟"監控check" [1之於1] 失敗: Couldn't connect to server: Failed connect to 10.0.0.21:80; Connection refused

 

 6. 監控反向代理服務器方案

監控反向代理服務器,PPTP服務器等你在期中架構部署的服務。

 

nginxpptp

ntp 端口udp 123

 

 7. 監控Nginx7種鏈接狀態

監控Nginx7種鏈接狀態。

====cache01操做=============zabbix客戶端

vim /etc/nginx/nginx.conf

……

location /status {

           stub_status on;

           access_log off;

        }

……

vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx_status.conf

UserParameter=nginx_active,curl -s  127.0.0.1/status|awk '/Active/ {print $NF}'

UserParameter=nginx_accepts,curl -s  127.0.0.1/status|awk 'NR==3 {print $1}'

UserParameter=nginx_handled,curl -s  127.0.0.1/status|awk 'NR==3 {print $2}'

UserParameter=nginx_requests,curl -s  127.0.0.1/status|awk 'NR==3 {print $3}'

UserParameter=nginx_reading,curl -s  127.0.0.1/status|awk 'NR==4 {print $2}'

UserParameter=nginx_writing,curl -s  127.0.0.1/status|awk 'NR==4 {print $4}'

UserParameter=nginx_waiting,curl -s  127.0.0.1/status|awk 'NR==4 {print $6}'

編輯後重啓zabbix客戶端

zabbix 服務端命令測試

zabbix web頁面添加監控模板,將它們放在同一圖形中

因爲三種總的狀態和實時狀態相差巨大,因此應該分兩圖顯示,再作成聚合圖形,這樣更加美觀,直觀

 

web頁面在zabbix服務端用zabbix給的鍵值測試

zabbix_get -s 172.16.1.21 -p 10050 -k 'web.page.get[172.16.1.21,check.html]'
zabbix_get -s 172.16.1.61 -p 10050 -k 'web.page.get[172.16.1.21,check.html]'
zabbix_get -s 172.16.1.21 -p 10050 -k 'web.page.get[www.baidu.com]'
zabbix_get -s 172.16.1.21 -p 10050 -k 'web.page.get[www.etiantian.org]'

 

監控服務通用方法:

1. 監控端口 netstat ss lsof  ==wc -l

2. 監控進程 ps -ef|grep 進程|wc -l  試運行一下

3. 模擬客戶端的使用方式監控服務端

web  ==curl

mysql ==select insert

memcache ==setget

 

端口,進程,url監控也是你們都要的,全部zabbix也自帶

 

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.listen[80]'

1

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.listen[81]'

0

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[172.16.1.61,80]'

1

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[172.16.1.62,80]'

0

[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k 'net.tcp.port[,80]'

1

 

進程  

 

zabbix_get -s 172.16.1.61 -p 10050 -k 'proc.num[httpd,]'

zabbix_get -s 172.16.1.61 -p 10050 -k 'proc.num[,apache]'

 

監控URL

 

cd /etc/zabbix/zabbix_agentd.d/

vim userparameter_login.conf

UserParameter=login-user,who|wc -l

systemctl restart zabbix-agent.service 

systemctl restart zabbix-agent.service

 

1. 自定義監控(製做模板)

 

 

zabbix自帶模板Template OS Linux (Template App Zabbix Agent)提供CPU、內存、磁盤、網卡等常規監控,只要新加主機關聯此模板,就可自動添加這些監控項。

 

需求:服務器登陸人數不超過3人,超過3人報警

 

 

自定義key能被server和agent承認

 

# 正確的key

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname"

Linux cache01 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64

 

# 沒有登記的,自定義的key

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"

ZBX_NOTSUPPORTED: Unsupported item key.

 

# 寫錯的key

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.uname1"

ZBX_NOTSUPPORTED: Unsupported item key.

 

 

1.1 在agent註冊

 

語法:

UserParameter=<key>,<shell command>

UserParameter=login-user,who|wc -l

UserParameter=login-user,/bin/sh /server/scripts/login.sh

 

[root@cache01 ~]# cd /etc/zabbix/zabbix_agentd.d/

[root@cache01 zabbix_agentd.d]# vim userparameter_login.conf

UserParameter=login-user,who|wc -l

UserParameter=login-user2,who|wc -l

UserParameter=login-user3,who|wc -l

 

# key名字要惟一,多個key以行爲分割

 

[root@cache01 zabbix_agentd.d]# systemctl restart zabbix-agent.service

 

 

# 在server檢測

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"

3

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user2"

3

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user3"

3

[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user4"

ZBX_NOTSUPPORTED: Unsupported item key.

1.2 在server註冊(web操做)

1.2.1 建立模板

Template Login User

1.2.2 建立應用集

給監控項分類

1.2.3 建立監控項

監控的內容

1.2.4 建立觸發器

當監控項獲取到的值 達到必定條件時 就觸發報警

 

1.2.5 建立圖形

 

1.2.6 主機關聯模板

2. 監控報警設置

one It sm

http://c.onealert.com/ucid/login.jsp

 

[root@m01 ~]# grep AlertScriptsPath /etc/zabbix/zabbix_server.conf

### Option: AlertScriptsPath

# AlertScriptsPath=${datadir}/zabbix/alertscripts

AlertScriptsPath=/usr/lib/zabbix/alertscripts

[root@m01 ~]# cd /usr/lib/zabbix/alertscripts

 

 

wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.0.1.tar.gz

 

tar -zxf oneitsm_zabbix_release-1.0.1.tar.gz

cd oneitsm/bin

bash install.sh d13ad820-fc56-2f53-df59-992a9fe3aad3

何時發郵件:當狀態改變的時候纔會發郵件

 

--

--

2.2安裝後後多的四個東西,重裝得刪除這四樣

3. 監控可視化,圖形和幻燈片

 

最新數據

圖形

聚合圖形

幻燈片

https://github.com/zhangyao8/zabbix-community-repos

 

4. 模板的共享

主機共享

https://github.com/zhangyao8/zabbix-community-repos

 

模擬試驗:將因此集羣用zabbix監控起來

具體內容:

1、硬件、系統、網絡監控

全部集羣節點(全部虛擬機)都監控上

2、應用服務監控

1. 監控備份服務器,簡單方法是監控rsync端口,若是有其餘更佳方案能夠說明;

2. 監控NFS服務器,使用監控NFS進程來判斷NFS服務器正常,若是有其餘更佳方案能夠說明;

3. 監控MySQL服務器,簡單方法監控mysql3306端口,或者使用zabbix提供的Mysql模板,若是有其餘更佳方案能夠說明;

4. 監控2web服務器,簡單方法監控80端口,若是有其餘更佳方案能夠說明;

5. 監控URL地址來更精確的監控咱們的網站運行正常;

6. 監控反向代理服務器,PPTP服務器等你在期中架構部署的服務。

7. 監控Nginx7種鏈接狀態

 

 

 

 

 

 

 

 

 

 

1. zabbix自動發現與自動註冊的簡介

自動發現:zabbix Server主動發現全部客戶端,而後將客戶端登記本身的小本本上,缺點zabbix server壓力山大(網段大,客戶端多),時間消耗多。

自動註冊:zabbix agent主動到zabbix Server上報到,登記;缺點agent有可能找不到Server(配置出錯)

 

被動模式:默認,都是站在agent的立場上說話,agentserver抓取數據

主動模式:都是站在agent的立場上說話,agent主動的將數據發送給Server

 

兩種模式都是在agent上的配置文件配置的

 

 

1.1 自動發現(被動模式)

第一步:zabbix Server安裝完畢 (完成)

第二步:zabbix agent安裝完畢,Server=172.16.1.61  (完畢)

第三步:網頁上配置自動發現規則

1.2 自動註冊(主動模式)

第一步:zabbix Server安裝完畢 (完成)

第二步:zabbix agent安裝完畢,須要額外增長的配置

vim /etc/zabbix/zabbix_agentd.conf

ServerActive=172.16.1.61

# Hostname=Zabbix server

HostnameItem=system.hostname

systemctl restart zabbix-agent.service

netstat -tunlp|grep zabbix

看日誌

第三步:Server上作hosts解析

echo "172.16.1.21 cache01" >> /etc/hosts

 

第四步:網頁上配置自動註冊

主機沒有添加上,等候時間

 

2. 分佈式監控

 

zabbix Server  ===  zabbix agent (只能同一個局域網監控)

 

分佈式監控:

a. 分擔壓力,下降負載

    zabbix Server ===  zabbix proxy  ===zabbix agent1 agent2 agent3 。。。

172.16.1.61           172.16.1.21        172.16.1.0/24

                  ===  zabbix proxy  ===zabbix agent4 agent5 agent6 。。。

 

 

b. 多機房監控

    zabbix Server(北京)           ==  zabbix proxy(每一個機房搭建)  == zabbix agent

122.71.240.233/172.16.1.61          122.71.241.11/172.16.2.21     172.16.2.0/24

 

 環境

ZABBIX SERVER m01

zabbix proxy  cache01

zabbix agent  cache01

第一步:在代理機cache01安裝zabbix proxy  

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

yum -y install zabbix-proxy-mysql

第二步: 配置zabbix proxy,並在zabbix網頁登記

zabbix  proxy也須要數據庫,這個數據庫不是用於存儲監控數據的 只是用於存儲配置信息

# 安裝數據庫

yum -y install mariadb-server

systemctl start mariadb.service

#建庫 建立用戶受權

mysql

create database zabbix_proxy character set utf8 collate utf8_bin;

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

exit

# 導入數據庫文件

zcat /usr/share/doc/zabbix-proxy-mysql-3.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy

# 配置zabbix proxy鏈接數據庫

sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf

systemctl start zabbix-proxy.service

 

sed -i 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_proxy.conf

sed -i 's#Hostname=Zabbix proxy#Hostname=cache01#' /etc/zabbix/zabbix_proxy.conf

systemctl start zabbix-proxy.service

第三步:agent 指向 proxy

[root@cache01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf

Server=172.16.1.61

ServerActive=172.16.1.61

[root@cache01 ~]# sed -i 's#172.16.1.61#172.16.1.21#g' /etc/zabbix/zabbix_agentd.conf

[root@cache01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf

Server=172.16.1.21

ServerActive=172.16.1.21

[root@cache01 ~]# systemctl restart zabbix-agent.service

 tailf /var/log/zabbix/zabbix_proxy.log 

 

小結:之前內容所有屬於zabbix agent方式監控

 

錯誤:

server運行時,啓動proxy起不來,但命令行看不出,殺掉server,啓動proxy

3. SNMP監控

 

沒法安裝agent  不少前輩的監控軟件均可以監控各類設備  都是經過snmp監控

snmp simple network manager protocol 簡單網絡管理協議

yum -y install net-snmp net-snmp-utils

配置snmp

sed -i.ori '57a view systemview   included  .1' /etc/snmp/snmpd.conf

systemctl start snmpd.service

http://www.ttlsa.com/monitor/snmp-oid/    .1相關權限問題

使用SNMP

[root@db01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname

# snmpwalk 相似 zabbix_get

# -v 2c  指定使用snmp協議的版本  snmp分爲v1 v2 v3

# -c public  指定暗號

# sysname  相似zabbixkey

[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname

SNMPv2-MIB::sysName.0 = STRING: m01

[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 IfNumber

IF-MIB::ifNumber.0 = INTEGER: 3

[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 IfDescr

IF-MIB::ifDescr.1 = STRING: lo

IF-MIB::ifDescr.2 = STRING: eth0

IF-MIB::ifDescr.3 = STRING: eth1

 

問題:

 

相關文章
相關標籤/搜索