zabbix 安裝
系統環境: CentOS Linux release 7.4.1708 (Core)
服務端安裝腳本如下:(用到的是HTTP服務,可自行修改爲nginx)
#!/bin/bash
#設置解析 注意:網絡條件較好時,可以不用自建yum源
# echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts
#安裝zabbix源、aliyun YUM源
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
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
#安裝zabbix
yum install -y zabbix-server-mysql zabbix-web-mysql
#安裝啓動 mariadb數據庫
yum install -y mariadb-server
systemctl start mariadb.service
#創建數據庫
mysql -e 'create database zabbix character set utf8 collate utf8_bin;'
mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";'
#導入數據
zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix
#配置zabbixserver連接mysql
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
#解決中文亂碼
yum -y install wqy-microhei-fonts
cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
#啓動服務
systemctl start zabbix-server
systemctl start httpd
#寫入開機自啓動
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
systemctl start mariadb.service
systemctl start httpd
systemctl start zabbix-server
EOF
#輸出信息
echo "瀏覽器訪問 http://`hostname -I|awk '{print $1}'`/zabbix"
客戶端安裝腳本如下:
#!/bin/bash
#設置解析
echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts
#安裝zabbix源、aliyu nYUM源
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
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
#安裝zabbix客戶端
yum install zabbix-agent -y
sed -i.ori 's#Server=127.0.0.1#Server=server-IP#' /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent.service
#寫入開機自啓動
chmod +x /etc/rc.d/rc.local
cat >>/etc/rc.d/rc.local<<EOF
systemctl start zabbix-agent.service
EOF
腳本安裝完成的是最爲簡單的功能自行在配置文件中增加所需功能
檢測server與agent的連通性:
在server端安裝zabbix_get yum install zabbix-get
server執行測試語句: zabbix_get -s agent-IP -p port -k "system.cpu.load[all,avg1]"
web端進行操作:
瀏覽器訪問http://IP/zabbix 進行初始化操作 登陸密碼Admin/zabbix 在設置中選擇中文即可漢化
在檢測信息時,可查看具體的報錯信息進行不同的解決
選擇mysql數據庫,輸入密碼即可
host與port不需要修改,name自定義
確認信息,正確點擊下一步
安裝完成、點擊finsh
進入登陸界面 賬號Admin密碼zabbix 注意A大寫
配置主機
添加系統默認的模板
到這裏的話基本上在系統自帶的默認模板一些基礎的監控項已經建立起來了下面演示自創模板
利用系統自己帶的鍵值:
裏面有各個鍵值的使用說明
監控MySQL:
- mysql-server 服務器安裝zabbix-agent,修改配置文件
在/etc/zabbix/zabbix_agentd.conf配置中增加一條配置
zabbix-server 添加主機
- MySQL上創建給zabbix-agent使用的用戶賬號,在/etc/zabbix下創建一個隱藏文件.my.cnf,
[client]
user=zabbix
host=127.0.0.1
password=123456
- 測試連接
HOME=/etc/zabbix/ mysqladmin ping | grep -c alive
1
- 修改配置文件/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf(沒有的話自己創建)
修這兩條配置
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/etc/zabbix mysql -N | awk '{print $$2}' #因爲是yum安裝的所以改成這樣
UserParameter=mysql.ping,HOME=/etc/zabbix mysqladmin ping | grep -c alive
- 然後在web頁面進行配置即可
監控nginx
- 安裝客戶端
- 書寫nginx的監控腳本,內容如下:
#!/bin/bash
HOST="127.0.0.1"
PORT="88"
function ping {
/sbin/pidof nginx | wc -l
}
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
- 修改配置文件/etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf(沒有的話自己創建)
修這兩條配置
UserParameter=nginx.status[*],/etc/zabbix/nginx_check.sh $1
- 導入模板文件,關聯主機即可
監控redis
redis 沒有可以用的模板,所以模板,監控項和圖形都要自己製作
- 書寫監控腳本,內容如下:
#!/bin/bash
redis_status(){
R_PORT=$1
R_COMMAND=$2
(echo -en "INFO \r\n";sleep 1;) | nc 127.0.0.1` `"$R_PORT" > /etc/zabbix/redis_"$R_PORT".tmp
REDIS_STAT_VALUE=$(grep ""$R_COMMAND":" /etc/zabbix/redis_"$R_PORT".tmp | cut -d ':' -f2)
echo $REDIS_STAT_VALUE
}
help(){
echo "${0} + redis_status + PORT + COMMAND"
}
main(){
case $1 in
redis_status)
redis_status $2 $3
;;
*)
help
;;
esac
}
main $1 $2 $3
- 修改配置文件/etc/zabbix/zabbix_agentd.d/userparameter_redis.conf
vim userparameter_redis.conf
UserParameter=redis_status[*],/etc/zabbix/redis_check.sh $1 $2 $3
- 手動創建監控模板
- 依次創建監控項
- 把監控項創建成爲圖形
完成redis的監控
配置報警
這我用的是微信報警,註冊的企業微信來實現報警的接受,腳本如下:
#!/bin/bash
CropID='wwbda087ee88ce0910
Secret='tmFH9c2wUKr8Sf_W5TV5r_0YAprKqN_ZHB4DbcSCP4k
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {
local int AppID=1000002 #企業號 中的應用id
local UserID=$1 #部門成員id,zabbix中定義的微信接收者
local PartyID=1 #部門id,定義了範圍,組內成員都可接收到消息
local Msg=$(echo "$@" | cut -d" " -f3-) #過濾出zabbix中傳遞的第三個參數
printf '{\n'
printf '\t"touser": "'"$User"\"",\n"
printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'" $AppID "\"",\n"
printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\""\n"
printf '\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
- 設置zabbix腳本運行路徑,並把報警腳本放於該目錄下
grep "^[^#]" /etc/zabbix/zabbix_server.conf
......
AlertScriptsPath=/etc/zabbix/alertscripts
......
- 腳本設置權限和所屬用戶
chown zabbix:zabbix /etc/zabbix/alertscripts/weixin.sh
chmod 744 /etc/zabbix/alertscripts/weixin.sh
- 設置監控動作和接收用戶信息,進入zabbix後臺,選擇【管理】-->【報警媒介類型】--> 創建媒介類型
- 選擇類型爲:【腳本】,腳本名稱爲第二步中創建的腳本名稱,並配置腳本參數
- 選擇【管理】-->【用戶】--> 選擇admin用戶,選擇報警介質,點擊添加按鈕,關聯上admin用戶和weixin報警
- 【配置】-->【動作】中配置的默認信息配置
服務器:{HOST.NAME}出現故障!
服務器:{HOST.NAME}出現故障!\n
告警主機:{HOSTNAME1}
主機地址:{HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警信息:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
服務器:{HOST.NAME}已恢復!
服務器:{HOST.NAME}已恢復!\n
恢復主機:{HOSTNAME1}
主機地址:{HOST.IP}
恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
故障信息:{TRIGGER.NAME}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
- 配置成功