一:搭建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
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將期中架構所有集群監控
具體內容:
一、硬件、系統、網絡監控
所有集群節點(所有虛擬機)都監控上
交換機,路由器監控(簡單方法:換成端口對應服務器網卡流量監控;標准方法:監控交換機的網卡)
snmp監控
二、應用服務監控
l 服務端口的監控測試
[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
添加監控項
l 進程監控測試(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:端口(通過111的rpc端口獲取nfs端口) net.tcp.port[,111]
方法2:showmount -e ip|wc -l
3. 監控MySQL服務器方案
監控MySQL服務器,簡單方法監控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以說明;
方法1:端口(通過3306的mysql端口) net.tcp.port[,3306]
方法2:mysql遠程登錄
方法3:使用zabbix agent自帶的模板及key
l 沒有權限訪問 key中添加用戶密碼
4. 監控2台web服務器方案
監控2台web服務器,簡單方法監控80端口,如果有其他更佳方案可以說明;
方法1:端口(通過80的web端口) 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服務器等你在期中架構部署的服務。
nginx,pptp
ntp 端口udp 123
7. 監控Nginx的7種連接狀態
監控Nginx的7種連接狀態。
====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 ==》 set再get
端口,進程,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. 監控備份服務器,簡單方法是監控rsync端口,如果有其他更佳方案可以說明;
2. 監控NFS服務器,使用監控NFS進程來判斷NFS服務器正常,如果有其他更佳方案可以說明;
3. 監控MySQL服務器,簡單方法監控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以說明;
4. 監控2台web服務器,簡單方法監控80端口,如果有其他更佳方案可以說明;
5. 監控URL地址來更精確的監控我們的網站運行正常;
6. 監控反向代理服務器,PPTP服務器等你在期中架構部署的服務。
7. 監控Nginx的7種連接狀態
1. zabbix自動發現與自動注冊的簡介
自動發現:zabbix Server主動發現所有客戶端,然后將客戶端登記自己的小本本上,缺點zabbix server壓力山大(網段大,客戶端多),時間消耗多。
自動注冊:zabbix agent主動到zabbix Server上報到,登記;缺點agent有可能找不到Server(配置出錯)
被動模式:默認,都是站在agent的立場上說話,agent被server抓取數據
主動模式:都是站在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 類似zabbix的key
[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
問題: