您好,登錄后才能下訂單哦!
zabbix server端:centos7.6
一、關(guān)閉防火墻和selinux、設(shè)置時(shí)區(qū)和時(shí)間同步
~]# systemctl stop firewalld
~]# systemctl disable firewalld
~]# setenforce 0
~]# vim /etc/sysconfig/selinux
SELINUX=disabled? ? ? ? ? ? ? ? ? ? ? ?#將enforcing更改為disabled
# timedatectl set-timezone Asia/Shanghai
~]# yum -y install chrony
~]# vim /etc/chrony.conf
server ntp1.aliyun.com iburst? ? ? ? ? ? ? ? #修改為阿里云的ntp服務(wù)器
~]# systemctl restart chronyd
二、更換為yum源為阿里云源
~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
~]# yum makecache
三、安裝LAMP環(huán)境
~]# yum -y install mariadb mariadb-server httpd php php-mysql
~]# systemctl start httpd mariadb
~]# systemctl enable httpd mariadb
~]# mysql_secure_installation
四、安裝zabbix程序,此處選用3.0 LTS(長期維護(hù)版)
~]# rpm -Uvh https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
~]# yum clean all
~]# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
初始化數(shù)據(jù)庫:
~]# mysql -uroot -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';? ? ? ? ? ? ? #此處password為zabbix的數(shù)據(jù)庫密碼,自行設(shè)置
MariaDB [(none)]> quit;
~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix? ? ? ? ? ? ? ? ?#輸入zabbix用戶的密碼
~]# vim /etc/zabbix/zabbix_server.conf
DBPassword=password? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #輸入zabbix用戶的密碼
~]# vim /etc/httpd/conf.d/zabbix.conf? ? ?
php_value date.timezone Asia/Shanghai? ? ? ? ? ? #輸入正確的時(shí)區(qū)信息
~]# systemctl restart zabbix-server zabbix-agent httpd
~]# systemctl enable zabbix-server zabbix-agent httpd
五、瀏覽器初始化zabbix的web
~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/usr/share/zabbix"??
~]# systemctl restart httpd
訪問http://server-ip,默認(rèn)賬號(hào)為Admin,密碼為zabbix。生產(chǎn)環(huán)境注意:1、修改Admin密碼;2、關(guān)閉guest用戶。
? ? ? ? ? ? ? ? ?
六、由于3.0的很多模板支持的問題,所以此處升級(jí)為4.0LTS。
阿里云的zabbix倉庫源包:
https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
具體參考官方升級(jí)指南:
https://www.zabbix.com/documentation/4.0/zh/manual/installation/upgrade/packages/rhel_centos
七、添加對(duì)中文的支持,避免中文亂碼問題:3.0和4.0的區(qū)別:3.0路徑:/usr/share/zabbix/fonts/? ? ? 4.0路徑:/usr/share/zabbix/assets/fonts/
以下示例為4.0LTS版本
找一臺(tái)windows主機(jī):win+R,輸入fonts(即C:\Windows\Fonts),選擇某一字體(此處示例為:宋體常規(guī))
通過拖動(dòng)上傳字體文件到zabbix-server上:前提 ~]# yum -y install lrzsz
~]# mv simsun.ttc /usr/share/zabbix/assets/fonts/song.ttf
~]# chmod a+x /usr/share/zabbix/assets/fonts/song.ttf
~]# vim /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME',? ? ? ? ? ?'song');? ? ? ? ? ? ? ? ?#將字體graphfont修改為song
常用監(jiān)控方式:
一、通過agent監(jiān)控:
1、安裝zabbix-agent程序和設(shè)置配置文件
centos 7
~]# rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.15-1.el7.x86_64.rpm
~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.20.120.214? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #設(shè)置server端IP
#ServerActive=172.20.120.214? ? ? ? ? ? ? ? ? #此處沒有啟用active模式,所以注釋(active模式是客戶端主動(dòng)發(fā)送數(shù)據(jù)給server端)?
Hostname=172.20.120.182? ? ? ? ? ? ? ? ? ? ? ?#設(shè)置客戶端的名稱
~]# systemctl start zabbix-agent
~]# systemctl enable zabbix-agent
centos6
~]# sudo rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/6/x86_64/zabbix-agent-4.0.15-1.el6.x86_64.rpm
~]# hostip=`ip addr l | grep eth0 | grep inet | awk -F "/" '{print $1}' | awk '{print $2}'`? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#此處獲取網(wǎng)卡為eth0,請(qǐng)按需修改
~]# sudo sed -i -e 's/Server=127.0.0.1/Server=172.20.120.214/g' -e 's/ServerActive=127.0.0.1/#ServerActive=127.0.0.1/g' -e "s/Hostname=Zabbix server/Hostname=$hostip/g" /etc/zabbix/zabbix_agentd.conf
~]# sudo service zabbix-agent start
~]# sudo chkconfig zabbix-agent on
2、添加到web監(jiān)控的模式:
a、手動(dòng)添加
訪問web端http://server-ip:配置-主機(jī)-創(chuàng)建主機(jī)-設(shè)置主機(jī)相關(guān)信息:如圖
b、自動(dòng)發(fā)現(xiàn)
步驟:
1、設(shè)置自動(dòng)發(fā)現(xiàn)后要進(jìn)行的動(dòng)作
訪問web端http://server-ip:配置-動(dòng)作-事件源(自動(dòng)發(fā)現(xiàn))-創(chuàng)建動(dòng)作
2、設(shè)置自動(dòng)發(fā)現(xiàn)規(guī)則
訪問web端http://server-ip:配置-自動(dòng)發(fā)現(xiàn)-創(chuàng)建發(fā)現(xiàn)規(guī)則
Zabbix監(jiān)控nginx性能
1、查看是否有with-http_stub_status_module該模塊
~]# nginx -V? ? ?
2、配置nginx狀態(tài)頁面? ? ? ? ? ??
~]# vim /etc/nginx/nginx.conf
location /ngx_status? {
stub_status on;
access_log off;
allow 127.0.0.1;
}
~]# systemctl reload nginx
測試是否可以獲取到status頁面
~]# curl http://127.0.0.1/ngx_status
其中字段解釋如下:
Active connections? ? ? ? ? ? ? ?:表示Nginx正在處理的活動(dòng)連接數(shù)。
server? ? ? ? ? ? ? ? ? ? ???????????????:表示Nginx啟動(dòng)到現(xiàn)在共處理了多少個(gè)連接
accepts???????????????????????????????? :表示Nginx啟動(dòng)到現(xiàn)在共成功創(chuàng)建多少次握手
handled requests? ???????????????:表示總共處理了 多少次請(qǐng)求
Reading????????????????????????????????:Nginx 讀取到客戶端的 Header 信息數(shù)
Writing?????????????????????????????????:Nginx 返回給客戶端 Header 信息數(shù)
Waiting????????????????????????????? ? ?:Nginx 已經(jīng)處理完正在等候下一次請(qǐng)求指令的駐留鏈接(開啟keep-alive的情況下,這個(gè)值等于Active-(Reading+Writing))
所以,在訪問效率高,請(qǐng)求很快被處理完畢的情況下,Waiting數(shù)比較多是正常的.如果reading +writing數(shù)較多,則說明并發(fā)訪問量非常大,正在處理過程中。
3、編寫監(jiān)控腳本
~]# vim /etc/zabbix/ngx_status.sh
#!/bin/bash
HOST="127.0.0.1"
PORT="80"
#檢測nginx進(jìn)程是否存在
function ping {
? ? ? ? /sbin/pidof nginx | wc -l
}
#檢測nginx性能
function active {
? ? ? ? /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2> /dev/null | grep 'Active' | awk '{print $NF}'
}
function reading {
? ? ? ? /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2> /dev/null | grep 'Reading' | awk '{print $2}'
}
function writing {
? ? ? ? /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2> /dev/null | grep 'Writing' | awk '{print $4}'
}
function waiting {
? ? ? ? /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2> /dev/null | grep 'Waiting' | awk '{print $6}'
}
function accepts {
? ? ? ? /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2> /dev/null | awk NR==3 | awk '{print $1}'
}
function handled {
? ? ? ? /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2> /dev/null | awk NR==3 | awk '{print $2}'
}
function requests {
? ? ? ? /usr/bin/curl "http://$HOST:$PORT/ngx_status/" 2> /dev/null | awk NR==3 | awk '{print $3}'
}
#執(zhí)行function
$1
~]# chmod a+x /etc/zabbix/ngx_status.sh
測試腳本
~]# bash /etc/zabbix/ngx_status.sh requests
4、zabbix-agent配置文件
~]# vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
UserParameter=nginx.status[*],/etc/zabbix/ngx_status.sh $1
~]# systemctl restart zabbix-agent
~]# systemctl enable zabbix-agent
zabbix server端測試
~]# yum -y install zabbix-get
~]# zabbix_get? -s 172.20.120.56 -k 'nginx.status[accepts]'? ? ? ? ? ? ?#-s后接agent-ip,-k后接自定義key
5、zabbix web端
下載模板:https://pan.baidu.com/s/1CCaIURk-kXAcEXJ6BD-TEA
導(dǎo)入模板
主機(jī)配置
主機(jī)添加模板(Template App NGINX)
二、通過snmp方式監(jiān)控:
Zabbix監(jiān)控Dell服務(wù)器硬件(iDRAC)
1、Dell服務(wù)器端
瀏覽器登錄iDRAC
啟用SNMP
點(diǎn)擊“iDRAC”——“網(wǎng)絡(luò)”——“服務(wù)”——“SNMP代理”
勾選“已啟用”,然后點(diǎn)擊“應(yīng)用”
2、zabbix web端
下載模板:https://pan.baidu.com/s/1CCaIURk-kXAcEXJ6BD-TEA
導(dǎo)入模板
主機(jī)配置SNMP interfaces
主機(jī)添加模板Dell iDRAC;注意點(diǎn):宏的設(shè)置需要對(duì)應(yīng)起來(即SNMP community的值要對(duì)應(yīng)起來)。
zabbix監(jiān)控華為交換機(jī)和防火墻設(shè)備
1、在交換機(jī)和防火墻開啟snmp功能,和設(shè)置SNMP community
2、zabbix web端
下載模板:https://pan.baidu.com/s/1CCaIURk-kXAcEXJ6BD-TEA
導(dǎo)入模板
主機(jī)配置SNMP interfaces
主機(jī)添加模板(Template Net Huawei VRP SNMPv2)注意點(diǎn):宏的設(shè)置需要對(duì)應(yīng)起來(即SNMP community的值要對(duì)應(yīng)起來)。
windows服務(wù)器的監(jiān)控:
1、安裝agent客戶端;官網(wǎng)下載地址https://assets.zabbix.com/downloads/4.0.15/zabbix_agents-4.0.15-win-amd64-openssl.zip
解壓zabbix_agents-4.0.15-win-amd64-openssl.zip
conf目錄存放是agent配置文件?
bin文件存放windows下程序
修改conf目錄下的zabbix_agentd.conf文件
????LogFile=c:\zabbix_agentd.log? ? //日志存放位置
????EnableRemoteCommands=1? ? ?//允許在本地執(zhí)行遠(yuǎn)程命令
????LogRemoteCommands=1? ? ? ? ? //執(zhí)行遠(yuǎn)程命令是否保存操作日志
????Server=172.20.120.214? ? ? ? ? //zabbix_server主機(jī)IP地址
? ? #ServerActive=192.168.1.10? ? ? ? //由于沒有開啟active模式,因此注釋即可
????Hostname=******? ? ? ? ?//被監(jiān)控主機(jī)名,自身主機(jī)名
打開命令提示符進(jìn)行安裝
c:\zabbix\bin\zabbix_agentd.exe -i -c c:\zabbix\conf\zabbix_agentd.conf
c:\zabbix\bin\zabbix_agentd.exe -s -c c:\zabbix\conf\zabbix_agentd.conf
完成安裝后,服務(wù)里就有了zabbix-agent服務(wù)
最后記得設(shè)置防火墻允許zabbix-agent互聯(lián)
windows補(bǔ)充點(diǎn):
默認(rèn)windows模板沒有cpu使用率監(jiān)控項(xiàng),添加如下:
名稱:CPU usage%
鍵值:perf_counter[\Processor(_Total)\% Processor Time]
信息類型:浮點(diǎn)數(shù)
單位:%
問題:無法獲取cpu使用率,server端日志:Collector is not started
解決方法:重建性能計(jì)數(shù)器設(shè)置:管理員執(zhí)行下lodctr /R命令即可
設(shè)置報(bào)警方式:
一、郵件報(bào)警:
1、管理--報(bào)警媒介類型--創(chuàng)建媒體類型
2、管理--用戶--報(bào)警媒介--添加
3、配置--動(dòng)作--事件源:觸發(fā)器--創(chuàng)建動(dòng)作
操作內(nèi)容如下:
故障{TRIGGER.STATUS},服務(wù)器:{HOSTNAME1}發(fā)生: {TRIGGER.NAME}故障!
告警信息:
告警主機(jī):{HOSTNAME1}
告警時(shí)間:{EVENT.DATE} {EVENT.TIME}
告警等級(jí):{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項(xiàng)目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當(dāng)前狀態(tài):{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢復(fù)操作內(nèi)容如下:
恢復(fù){TRIGGER.STATUS}, 服務(wù)器:{HOSTNAME1}: {TRIGGER.NAME}已恢復(fù)!
恢復(fù)信息:
告警主機(jī):{HOSTNAME1}
告警時(shí)間:{EVENT.DATE} {EVENT.TIME}
告警等級(jí):{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項(xiàng)目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當(dāng)前狀態(tài):{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
更新操作內(nèi)容如下:
更新信息:{EVENT.NAME}
更新信息:
{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
{EVENT.UPDATE.MESSAGE}
Current problem status is {EVENT.STATUS}, acknowledged: {EVENT.ACK.STATUS}.
最后進(jìn)行故障測試,驗(yàn)證是否發(fā)送成功。查看:報(bào)表--動(dòng)作日志
二、阿里云短信報(bào)警:此處示例使用python3.6+(python2存在中文短信亂碼的情況)
1、CentOS7 升級(jí)Python2.x到3.x
~]# python -V????????#查看當(dāng)前python版本
~]# yum -y install python3
~]# mv /usr/bin/python /usr/bin/python.bak
~]# ln -sv /usr/bin/python3 /usr/bin/python
為了兼容yum:修改/usr/bin/yum和/usr/libexec/urlgrabber-ext-down文件,將 #!/usr/bin/python 改為 #!/usr/bin/python2.7
2、安裝阿里云SDK核心庫:
~]# pip3 install aliyun-python-sdk-core
3、阿里云短信服務(wù),申請(qǐng)短信簽名和模板:此處傳遞三個(gè)參數(shù):${host},${time},${item}。
4、編寫python腳本,并測試
~]# vim /usr/lib/zabbix/alertscripts/sendsms.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
import sys
client = AcsClient('<accessKeyId>', '<accessSecret>','default')? ? ? ? ? ? ? ? #此處填寫accesskey信息,其獲取地址:https://usercenter.console.aliyun.com
request = CommonRequest()
request.set_accept_format('json')
request.set_domain('dysmsapi.aliyuncs.com')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_version('2017-05-25')
request.set_action_name('SendSms')
#以下將zabbix傳遞的第一個(gè)參數(shù)為發(fā)送人號(hào)碼,并將第二個(gè)參數(shù)message信息,切割為3個(gè)變量:host、time、item
string = sys.argv[2]
phone_number = sys.argv[1]
message = string.split(";")
dict1 = { }
dict1['host'] = message[0]
dict1['time'] = message[1]
dict1['item'] = message[2]
request.add_query_param('RegionId',"cn-hangzhou")
request.add_query_param('PhoneNumbers',phone_number)
request.add_query_param('SignName',"簽名名稱")? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#填寫申請(qǐng)的簽名名稱
request.add_query_param('TemplateCode',"模版CODE")? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #填寫申請(qǐng)的模版CODE
request.add_query_param('TemplateParam',dict1)
response = client.do_action(request)
# python2:? print(response)?
print(str(response, encoding = 'utf-8'))
~]# chmod a+x /usr/lib/zabbix/alertscripts/sendsms.py
~]# python? /usr/lib/zabbix/alertscripts/sendsms.py? 手機(jī)號(hào)碼 '官網(wǎng);18:03;test'? ? ? ? ? ? #參數(shù)1:手機(jī)號(hào)碼;參數(shù)2:3個(gè)參數(shù)用;號(hào)隔開
5、zabbix web端設(shè)置
管理--報(bào)警媒介類型--創(chuàng)建媒體類型
管理--用戶--報(bào)警媒介--添加
配置--動(dòng)作--事件源:觸發(fā)器--創(chuàng)建動(dòng)作
消息內(nèi)容:
{TRIGGER.NAME}:{TRIGGER.KEY1};{EVENT.TIME};{TRIGGER.STATUS}
最后進(jìn)行故障測試,驗(yàn)證是否發(fā)送成功。查看:報(bào)表--動(dòng)作日志
三、釘釘群報(bào)警:
官方參考文檔:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
1、釘釘建群,添加自定義webhook機(jī)器人,復(fù)制webhook地址;注意新版釘釘有安全設(shè)置。示例選擇自定義關(guān)鍵字:監(jiān)控
2、建立腳本
~]# vim /usr/lib/zabbix/alertscripts/dingding.sh
#!/bin/bash
to=$1
subject=$2
text=$3
curl 'webhook地址' \? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#此處的地址為機(jī)器人的webhook地址
-H 'Content-Type: application/json' \
-d '
{"msgtype": "text",
"text": {
"content": "'"$text"'"
},
"at":{
"atMobiles": [ "'"$1"'" ],
"isAtAll": false
}
}'
~]# chmod a+x /usr/lib/zabbix/alertscripts/dingding.sh
~]# chown zabbix:zabbix /usr/lib/zabbix/alertscripts/dingding.sh
~]# bash /usr/lib/zabbix/alertscripts/dingding.sh 1 2 監(jiān)控? ? ? ? ? ? ? ? ? ? #第三個(gè)參數(shù)必須包含自定義關(guān)鍵字,否則失敗
3、同上設(shè)置報(bào)警媒介、用戶和動(dòng)作。
腳本參數(shù)按次序分別是:{ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}
消息內(nèi)容同郵件報(bào)警一致即可
收件人填寫手機(jī)號(hào)碼即可
最后進(jìn)行故障測試,驗(yàn)證是否發(fā)送成功。查看:報(bào)表--動(dòng)作日志
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。