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
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
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]"
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]"
可刷新查看
沒變綠查看模板是否添加上了
#服務端操做:
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
實際需求:公司已經有了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. 具體的實施步驟
考試目標:使用zabbix將期中架構全部集羣監控
具體內容:
1、硬件、系統、網絡監控
全部集羣節點(全部虛擬機)都監控上
交換機,路由器監控(簡單方法:換成端口對應服務器網卡流量監控;標準方法:監控交換機的網卡)
snmp監控
[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]
添加模板,監控項,圖形等等
監控備份服務器,簡單方法是監控rsync端口,若是有其餘更佳方案能夠說明;
方法1:監控873端口net.tcp.port[,873]
方法2:模擬推送拉取文件
監控NFS服務器,使用監控NFS進程來判斷NFS服務器正常,若是有其餘更佳方案能夠說明;
方法1:端口(經過111的rpc端口獲取nfs端口) net.tcp.port[,111]
方法2:showmount -e ip|wc -l
監控MySQL服務器,簡單方法監控mysql的3306端口,或者使用zabbix提供的Mysql模板,若是有其餘更佳方案能夠說明;
方法1:端口(經過3306的mysql端口) net.tcp.port[,3306]
方法2:mysql遠程登陸
方法3:使用zabbix agent自帶的模板及key
l 沒有權限訪問 key中添加用戶密碼
監控2臺web服務器,簡單方法監控80端口,若是有其餘更佳方案能夠說明;
方法1:端口(經過80的web端口) net.tcp.port[,80]
方法2:看網頁狀態碼、返回內容==zabbix 自帶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
監控反向代理服務器,PPTP服務器等你在期中架構部署的服務。
nginx,pptp
ntp 端口udp 123
監控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
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.
語法:
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.1 建立模板
Template Login User
1.2.2 建立應用集
給監控項分類
1.2.3 建立監控項
監控的內容
1.2.4 建立觸發器
當監控項獲取到的值 達到必定條件時 就觸發報警
1.2.5 建立圖形
1.2.6 主機關聯模板
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安裝後後多的四個東西,重裝得刪除這四樣
最新數據
圖形
聚合圖形
幻燈片
https://github.com/zhangyao8/zabbix-community-repos
主機共享
https://github.com/zhangyao8/zabbix-community-repos
具體內容:
1、硬件、系統、網絡監控
全部集羣節點(全部虛擬機)都監控上
2、應用服務監控
1. 監控備份服務器,簡單方法是監控rsync端口,若是有其餘更佳方案能夠說明;
2. 監控NFS服務器,使用監控NFS進程來判斷NFS服務器正常,若是有其餘更佳方案能夠說明;
3. 監控MySQL服務器,簡單方法監控mysql的3306端口,或者使用zabbix提供的Mysql模板,若是有其餘更佳方案能夠說明;
4. 監控2臺web服務器,簡單方法監控80端口,若是有其餘更佳方案能夠說明;
5. 監控URL地址來更精確的監控咱們的網站運行正常;
6. 監控反向代理服務器,PPTP服務器等你在期中架構部署的服務。
7. 監控Nginx的7種鏈接狀態
自動發現:zabbix Server主動發現全部客戶端,而後將客戶端登記本身的小本本上,缺點zabbix server壓力山大(網段大,客戶端多),時間消耗多。
自動註冊:zabbix agent主動到zabbix Server上報到,登記;缺點agent有可能找不到Server(配置出錯)
被動模式:默認,都是站在agent的立場上說話,agent被server抓取數據
主動模式:都是站在agent的立場上說話,agent主動的將數據發送給Server
兩種模式都是在agent上的配置文件配置的
第一步:zabbix Server安裝完畢 (完成)
第二步:zabbix agent安裝完畢,Server=172.16.1.61 (完畢)
第三步:網頁上配置自動發現規則
第一步: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
第四步:網頁上配置自動註冊
主機沒有添加上,等候時間
zabbix Server ===》 zabbix agent (只能同一個局域網監控)
分佈式監控:
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 。。。
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
沒法安裝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
問題: