Zabbix監控平臺的搭建
Zabbix簡介
基於Web介面的分散式系統監控的企業級開源軟體。可以監控各種系統與裝置,網路引數,保證伺服器裝置安全運營;提供靈活的通知機制。
Zabbix的特點和功能
1.特點
1)安裝與配置簡單
2)視覺化web管理介面
3)免費開源
4)支援中文
5)自動發現
6)分散式監控
7)實時繪圖
8)email通知
2.主要功能
CPU負荷、記憶體使用、磁碟使用、網路狀況、埠監視、日誌監控
zabbix程式:zabbix_agentd、zabbix_sender、zabbix_get、zabbix_server、zabbix_proxy(和zabbix_jave_gateway)
1.zabbix_agentd:客戶端守護程式,收集客戶端資料,如cpu負載、記憶體、磁碟等使用狀況。
2.zabbix_sender:zabbix工具,用於客戶端傳送資料給server或proxy.通常用於耗時比較長的檢查。為防止zabbix超時,可以在指令碼執行完成後通過sender主動提交資料。
3.zabbix_get:zabbix工具,用於server或proxy獲取客戶端資料。(通常用於排錯,如果server收不到客戶端資料,可以使用zabbix_get獲取資料來做故障排查)
4.zabbix_server:服務端守護程式。其他守護程式最後資料都要提交給zabbix_server
5.zabbix_proxy:zabbix代理守護程式,類似中轉站。
6.zabbix_java_gateway:Java閘道器,類似agentd,但只能用於Java.
所以zabbix監控有兩種模式:
server_agentd模式:簡單,監控主機少。
server-proxy-agentd模式:監控主機多,減輕server壓力。
一/zabbix安裝
yum源配置
rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.9-1.el7.x86_64.rpm
安裝相關軟體
yum install zabbix-server zabbix-web zabbix-server-mysql zabbix-web-mysql mariadb-server mariadb zabbix-agent -y
修改PHP時區配置
vim /etc/httpd/conf.d/zabbix.conf
<Directory “/usr/share/zabbix”>
Options FollowSymLinks
AllowOverride None
Require all granted
<IfModule mod_php5.c>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai #修改成Asia/Shanghai
</IfModule>
</Directory>
啟動資料庫
systemctl start mariadb #啟動資料庫
systemctl enable mariadb #設定資料庫開機自啟
建立zabbix所用的資料庫及使用者
mysql
create database zabbix character set utf8 collate utf8_bin;
grant all on zabbix.* to zabbix@`localhost` identified by `123456`;
exit
cd /usr/share/doc/zabbix-server-mysql-3.0.36 zcat create.sql.gz |mysql -uzabbix -p123456 zabbix #匯入資料庫
修改zabbix配置
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost #資料庫所在主機
DBName=zabbix #資料庫名
DBUser=zabbix #資料庫使用者
DBPassword=123456 #資料庫密碼
啟動zabbix及http
systemctl start zabbix-server
systemctl enable zabbix-server
systemctl start httpd
systemctl enable httpd
systemctl start zabbix-agent
systemctl enable zabbix-agent
web介面安裝server
客戶端安裝zabbix-agent
yum install zabbix-agent -y
修改一下引數
vim /etc/zabbix/zabbix_agentd.conf
Server=10.0.0.190 #IP為伺服器IP
ServerActive=10.0.0.190 #IP為伺服器IP
Hostname=10.0.0.190 #IP為伺服器IP
啟動zabbix客戶端
systemctl start zabbix-agent
systemctl enable zabbix-agent
客戶端自動發現與自動註冊功能
修改IP發現範圍
新增自動發現動作
新增自動註冊功能
可以檢視到已經發現兩臺客戶端
在新增了兩臺被監控的主機
二/nginx監控
下載nginx的監控模板
在配置-模板-匯入,新增模板
給主機與模板連結
在zabbix客戶端編寫nginx監控指令碼
cat /etc/zabbix/zabbix_agentd.d/nginx_lzx.sh
#!/bin/bash
HOST=”10.0.0.101″
PORT=”80″
#檢測nginx程式是否存在
function ping {
/sbin/pidof nginx | wc -l
}
# 檢測nginx效能
function active {
/usr/bin/curl “http://$HOST:$PORT/nginx_status/” 2>/dev/null| grep `Active` | awk `{print $NF}`
}
function reading {
/usr/bin/curl “http://$HOST:$PORT/nginx_status/” 2>/dev/null| grep `Reading`| awk `{print $2}`
}
function writing {
/usr/bin/curl “http://$HOST:$PORT/nginx_status/” 2>/dev/null| grep `Writing`| awk `{print $4}`
}
function waiting {
/usr/bin/curl “http://$HOST:$PORT/nginx_status/” 2>/dev/null| grep `Waiting`| awk `{print $6}`
}
function accepts {
/usr/bin/curl “http://$HOST:$PORT/nginx_status/” 2>/dev/null| awk NR==3 | awk `{print $1}`
}
function handled {
/usr/bin/curl “http://$HOST:$PORT/nginx_status/” 2>/dev/null| awk NR==3 | awk `{print $2}`
}
function requests {
/usr/bin/curl “http://$HOST:$PORT/nginx_status/” 2>/dev/null| awk NR==3 | awk `{print $3}`
}
#執行function
$1
修改客戶端zabbix配置檔案,重啟伺服器
vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_lzx.sh $1
systemctl restart zabbix-agent
檢視nginx的監控是否開啟
curl -L http://10.0.0.101/nginx_status
Active connections: 1
server accepts handled requests
288 288 288
Reading: 0 Writing: 1 Waiting: 0
在服務端安裝zabbix測試工具
yum install zabbix-get.x86_64
zabbix_get -s 10.0.0.101 -p 10050 -k “nginx.status[reading]”
0 #伺服器可以獲取到客戶端的監控資料
在服務端可以看到監控引數
三/zabbix郵件告警
編寫指令碼
cat /usr/lib/zabbix/alertscripts/zabbix_sendmail.py
#!/usr/bin/python
#coding:utf-8
import smtplib
from email.mime.text import MIMEText
import sys
mail_host = `smtp.163.com` # 郵箱smtp配置
mail_user = `xxxxxxxxxxx` # 郵箱賬號
mail_pass = `xxxxxxxxxxx` # 郵箱密碼
mail_postfix = `163.com`
def send_mail(to_list,subject,content):
me = “zabbix監控告警平臺”+”<“+mail_user+”@”+mail_postfix+”>”
msg = MIMEText(content, `plain`, `utf-8`)
msg[`Subject`] = subject
msg[`From`] = me
msg[`to`] = to_list
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user,mail_pass)
s.sendmail(me,to_list,msg.as_string())
s.close()
return True
except Exception,e:
print str(e)
return False
if __name__ == “__main__”:
send_mail(sys.argv[1], sys.argv[2], sys.argv[3])
修改指令碼路徑
vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts
給指令碼執行許可權,測試指令碼,如果傳送失敗,可能是網路不通,或者163郵箱的imtp/pop3沒開
chmod +x zabbix-mail.py
chown -R zabbix.zabbix zabbix-mail.py
python zabbix-mail.py xxxxxxxxxx@qq.com test test
檢視當前被監控的主機
將nginx監控項裡的監控時間間隔改為1
在admin使用者中新增報警媒介,郵件報警
zabbix伺服器報警媒介型別
增加三個引數
{ALERT.SENDTO} 收件人地址
{ALERT.SUBJECT} 主題
{ALERT.MESSAGE} 詳細內容
配置報警動作,建立新的觸發動作
配置操作
故障{TRIGGER.STATUS},伺服器:{HOSTNAME1}發生: {TRIGGER.NAME}故障!
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢復操作
恢復{TRIGGER.STATUS}, 伺服器:{HOSTNAME1}: {TRIGGER.NAME}已恢復!
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警資訊: {TRIGGER.NAME}
告警專案:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
你的瀏覽器目前處於縮放狀態,頁面可能會出現錯位現象,建議100%大小顯示。
相關文章
- zabbix監控平臺
- Zabbix搭建-zabbix+Grafana從零設計自己的監控平臺Grafana
- Grafana搭建-zabbix+grafana從零設計自己的監控平臺Grafana
- Zabbix新增主機監控-zabbix+grafana從零設計自己的監控平臺Grafana
- linux監控平臺搭建Linux
- Zabbix+Grafana從零設計自己的監控平臺-監控效果展示Grafana
- Prometheus + Grafana 監控平臺搭建PrometheusGrafana
- linux下cacti監控平臺的搭建Linux
- Zabbix郵件預警-zabbix+grafana從零設計自己的監控平臺Grafana
- Linux監控平臺介紹 zabbix監控介紹 安裝zabbix 忘記Admin密碼如何做Linux密碼
- jmeter+influxdb+grafana監控平臺搭建JMeterUXGrafana
- zabbix監控
- 使用zabbix監控oracle的後臺日誌Oracle
- Jmeter監控平臺搭建:JMeter+InfluxDB+GrafanaJMeterUXGrafana
- Zabbix微信公眾號預警-zabbix+grafana從零設計自己的監控平臺Grafana
- zabbix的主動模式監控和zabbix-proxy分散式監控模式分散式
- Zabbix監控ActiveMQMQ
- Zabbix監控之遷移Zabbix
- 【監控】Zabbix安裝
- 手把手教你搭建高逼格監控平臺,第三彈,監控JVMJVM
- 手把手教你搭建高逼格監控平臺,第二彈,監控mysqlMySql
- 使用滴滴雲快速搭建 Open-Falcon 監控平臺
- 藉助Docker搭建JMeter+Grafana+Influxdb監控平臺DockerJMeterGrafanaUX
- 【Zabbix】如何使用Zabbix進行IPMI監控?
- Zabbix監控安裝部署
- zabbix監控windows DHCP serverWindowsServer
- Zabbix實戰--監控NginxNginx
- Zabbix監控使用進階
- Docker系列——InfluxDB+Grafana+Jmeter效能監控平臺搭建(三)DockerUXGrafanaJMeter
- Docker系列——InfluxDB+Grafana+Jmeter效能監控平臺搭建(二)DockerUXGrafanaJMeter
- 能耗線上管理平臺搭建能源監控系統開發
- 手把手教你搭建Windows 搭建Prometheus + Grafana + Jmeter視覺化監控平臺WindowsPrometheusGrafanaJMeter視覺化
- Zabbix透過Orabbix監控OracleOracle
- zabbix監控閱讀目錄
- Zabbix監控 MS SqlServer2019SQLServer
- 使用Zabbix + Python對Mysql監控PythonMySql
- Zabbix如何監控Oracle的告警日誌Oracle
- 【DB寶39】使用Docker分分鐘搭建Zabbix 5.0配置MySQL監控DockerMySql