重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
一.項目實驗拓撲圖(使用億圖專家繪圖);
二.項目實驗思路及重點內(nèi)容(步驟及重難知
識點);
云岡網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
實施步驟:
步驟 說明
第一步 1.安裝 zabbix server 服務(wù)端;
第二步 2.配置 zabbix 服務(wù)的 web 頁面并做簡單優(yōu)化;
第三步 3.實現(xiàn)監(jiān)控 server.zabbix.com 端的 OS 以及 MySQL、httpd;
第四步 4.安裝及配置 agent.zabbix.com 被監(jiān)控端(FTP 服務(wù)器);
第五步 5.登錄 zabbix 的 web 界面,進行添加 agent 主機,驗證監(jiān)控效果;
第六步 6.配置監(jiān)控 Win2k8dc1 主機,驗證效果;
第七步 7.自定義監(jiān)控項,創(chuàng)建項目、觸發(fā)器、圖形,驗證監(jiān)控效果;
第八步 8.實現(xiàn)郵件報警;
第九步 9.安裝并配置 Grafana;
第十步 10.配置 Grafana 的 web 界面,呈現(xiàn)效果;
重點、難點:
重點一 1. Zabbix 簡介
Zabbix 是一個企業(yè)級的開源分布式監(jiān)控解決方案,由 C 語言編寫而成的底層架
構(gòu)(server 端和 agent 端),由一個國外的團隊持續(xù)維護更新,軟件可以自由下
載使用,運作團隊靠提供收費的技術(shù)支持贏利。
官方網(wǎng)站:http://www.zabbix.com
Zabbix 通過 C/S 模式采集數(shù)據(jù),通過 B/S 模式在 web 端展示和配置。
被監(jiān)控端:主機通過安裝 agent 方式采集數(shù)據(jù),網(wǎng)絡(luò)設(shè)備通過 SNMP 方式采集
數(shù)據(jù)
Server 端:通過收集 SNMP 和 agent 發(fā)送的數(shù)據(jù),寫入 MySQL 數(shù)據(jù)庫,再通過
php+apache 在 web 前端展示。
1.安裝 zabbix server 服務(wù)端;
[root@server ~]# ip a ##配置網(wǎng)絡(luò),確保可以上網(wǎng)
1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:4f:c9:00 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.101/24 brd 192.168.100.255 scope global eth0
valid_lft forever preferred_lft forever
[root@server ~]# vi /etc/hosts
192.168.100.101 server.zabbix.com
192.168.100.152 agent.zabbix.com
192.168.100.153 win2k8dc1
:wq
[root@server ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
[root@server ~]# yum -y install net-snmp net-snmp-devel libxml2 libxml2-devel libcurl-devel
libevent libevent libevent-devel curl curl-devel mysql-devel snmp perl-DBI php-xml php-bcmath
php-mbstring php-ldap php-xmlrpc httpd php php-mysql php-common php-gd php-odbc
php-pear gcc* net-snmp libssh3 libssh3-devel mariadb-server mariadb mariadb-devel ntpdate
##安裝 lamp 和依賴包,使用默認的 centos 7 中的默認 yun 源
[root@server ~]# ntpdate ntp1.aliyun.com
10 Sep 09:08:09 ntpdate[1225]: adjust time server 120.25.115.20 offset -0.000095 sec
[root@server ~]# echo "ntpdate ntp1.aliyun.com" >>/etc/rc.local
[root@server ~]# chmod +x /etc/rc.local
[root@server ~]# systemctl start mariadb
[root@server ~]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to
/usr/lib/systemd/system/mariadb.service.
[root@server ~]# systemctl start httpd
[root@server ~]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to
/usr/lib/systemd/system/httpd.service.
[root@server ~]# mysqladmin -u root password
123123
123123
[root@server ~]# wget -O zabbix-3.4.2.tar.gz
http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.2/zabbix-3.4.2.tar.gz
/download ##下載軟件包,上傳也可
[root@server ~]# tar zxvf zabbix-3.4.2.tar.gz
[root@server ~]# cd zabbix-3.4.2
[root@server ~]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent
--with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
[root@server ~]# make &&make install
[root@server ~]# mysql -uroot -p123123 ##登陸數(shù)據(jù)庫創(chuàng)建保存監(jiān)控模板的數(shù)據(jù)庫,并
導(dǎo)入數(shù)據(jù)模板,以及授權(quán) zabbix 用戶連接數(shù)據(jù)庫;
create database if not exists zabbix default character set utf8 collate utf8_general_ci;
use zabbix;
source /root/zabbix-3.4.2/database/mysql/schema.sql;
source /root/zabbix-3.4.2/database/mysql/images.sql;
source /root/zabbix-3.4.2/database/mysql/data.sql;
grant all on zabbix.* to zabbix@'192.168.100.101' identified by 'zabbix';
flush privileges;
show grants for zabbix@'192.168.100.101';
exit
[root@server ~]# groupadd zabbix
[root@server ~]# useradd -r -g zabbix zabbix
[root@server ~]# mkdir /usr/local/zabbix/logs
[root@server ~]# chown zabbix:zabbix /usr/local/zabbix/ -R
[root@server ~]# vi /usr/local/zabbix/etc/zabbix_server.conf
:%g/^#/d
:%g/^$/d
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBHost=192.168.100.101
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
Include=/usr/local/zabbix/etc/zabbix_server.conf.d/*.conf
:wq
[root@server ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
:%g/^#/d
:%g/^$/d
PidFile=/tmp/zabbix_agentd.pid
Server=127.0.0.1,192.168.100.101
ServerActive=192.168.100.101
Hostname=server.zabbix.com
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
:wq
解釋:
PidFile=/tmp/zabbix_agentd.pid ##運行的 PID 文件
Server=127.0.0.1,192.168.100.101 ##輸入 zabbix_server 主機的 ip 地址
ServerActive=192.168.100.101 ##輸入 agent 主機采集到數(shù)據(jù)發(fā)送到的 server 端
Hostname=server.zabbix.com ##輸入本機的主機名
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log ##指定日志文件
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf ##開啟附加配置文件目錄
[root@server ~]# /usr/local/zabbix/sbin/zabbix_server
[root@server ~]# netstat -utpln |grep 10051
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN
29079/zabbix_server
[root@server ~]# /usr/local/zabbix/sbin/zabbix_agentd
[root@server ~]# netstat -utpln |grep 10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN
29148/zabbix_agentd
[root@server ~]# mv /root/zabbix-3.4.2/frontends/php/ /var/www/html/zabbix
[root@server ~]# chown -R apache:apache /var/www/html/zabbix/
[root@server ~]# vi /etc/php.ini
878 date.timezone = Asia/Shanghai
384 max_execution_time = 300
394 max_input_time = 300
672 post_max_size = 32M
405 memory_limit = 128M
854 extension=bcmath.so
:wq
解釋:
878 date.timezone = Asia/Shanghai ##時區(qū)
384 max_execution_time = 300 ##單位秒,通過 POST、GET 以及 PUT 方式接
收數(shù)據(jù)時間進行限制
394 max_input_time = 300 ##php 程序上傳文件解析數(shù)據(jù)時的時間限制
672 post_max_size = 32M ##POST 方式請求數(shù)據(jù)所允許的最大大小
405 memory_limit = 128M ##設(shè)置 php 程序的內(nèi)存限制
854 extension=bcmath.so ##加載 zabbix 程序需要加載的擴展模塊 bcmath.so
[root@server ~]# systemctl restart httpd
訪問安裝 http://192.168.100.101/zabbix/,默認用戶名 admin 密碼 zabbix
安裝完成,設(shè)置顯示字體為中文;
解決 zabbix 顯示圖像下邊文字亂碼情況:
上傳字符集文件到此目錄下;
4
勾選以下三個監(jiān)控模板,點擊選擇按鈕;
在上個界面會顯示此主機的監(jiān)控項,此主機的圖形,可以自行跟據(jù)監(jiān)控項進行創(chuàng)建圖形;
選擇監(jiān)控項,點擊選擇;
查看監(jiān)控主機的圖形;
但是意外出現(xiàn)了,關(guān)于 Mysql 數(shù)據(jù)庫的所有監(jiān)控項沒有圖形,如圖所示;
經(jīng)過查看,問題如下圖,監(jiān)控 Mysql 服務(wù)器的鍵值不使用;
解決方案如下;
設(shè)置監(jiān)控失效的鍵值,打開 zabbix_server 服務(wù)器,同時在此也是被監(jiān)控端;
[root@server ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid
Server=127.0.0.1,192.168.100.101
ServerActive=192.168.100.101
Hostname=server.zabbix.com
LogFile=/usr/local/zabbix/logs/zabbix_agentd.log
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1
UserParameter=mysql.version,mysql -V
UserParameter=mysql.status[*],/usr/local/zabbix/etc/chk_mysql.sh $1
UserParameter=mysql.ping,mysqladmin -uroot -p123123 -P3306 -h292.168.100.101 ping | grep
-c alive
:wq
內(nèi)容解釋:
Server=192.168.100.151,127.0.0.1 //指定 zabbix 服務(wù)器的地址
ServerActive=192.168.100.101 //指定 agent 采集到數(shù)據(jù)之后發(fā)送給 server 端
Hostname=server.zabbix.com //指定 agent 端的主機名、server 端必須需要解析,注意:
在 web 界面添加被監(jiān)控主機時,必須寫此主機名;
UnsafeUserParameters=1 //允許所有字符的參數(shù)傳遞給用戶定義的參數(shù)。
UserParameter=mysql.version,mysql -V //定義鍵值 mysql.version,以及鍵值的值 mysql -V
UserParameter=mysql.status[*],/usr/local/zabbix/etc/chk_mysql.sh $1 // 定 義 鍵 值
mysql.status[*]
UserParameter=mysql.ping,mysqladmin -uroot -p123123 -P3306 -h292.168.100.101 ping | grep
-c alive ///定義鍵值 mysql.ping,指定 chk_mysql.sh 腳本,使用此腳本檢查 mysql 的運
行狀態(tài),使用 mysqladmin 命令指定 agent 端的數(shù)據(jù)庫連接用戶密碼 ip 地址,注意保證
mysqladmin 命令的鏈接;
[root@server ~]# vi /usr/local/zabbix/etc/chk_mysql.sh ##編寫檢查 mysql 狀態(tài)的腳本,
在腳本中指定 agent 端的 mysql 的 ip 地址,連接的用戶名密碼等
#!/bin/bash
#-------------------------------------------------------------------------------
#FileName: check_mysql.sh
#Revision: 1.0
#Date: 2015/06/09
#Author: DengYun
#Email: dengyun@ttlsa.com
#Website: www.ttlsa.com
#Description:
#Notes: ~
#-------------------------------------------------------------------------------
#Copyright: 2015 (c) DengYun
#License: GPL
#用戶名
MYSQL_USER='root'
#密碼
MYSQL_PWD='123123'
#主機地址/IP
MYSQL_HOST='192.168.100.101'
#端口
MYSQL_PORT='3306'
#數(shù)據(jù)連接
MYSQL_CONN="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST}
-P${MYSQL_PORT}"
#參數(shù)是否正確
if [ $# -ne "1" ];then
echo "arg error!"
fi
#獲取數(shù)據(jù)
case $1 in
Uptime)
result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"`
echo $result
;;
Com_update)
result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`
echo $result
;;
Slow_queries)
result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"`
echo $result
;;
Com_select)
result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`
echo $result
;;
Com_rollback)
result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3`
echo $result
;;
Questions)
result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"`
echo $result
;;
Com_insert)
result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`
echo $result
;;
Com_delete)
result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`
echo $result
;;
Com_commit)
result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3`
echo $result
;;
Bytes_sent)
result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`
echo $result
;;
Bytes_received)
result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`
echo $result
;;
Com_begin)
result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3`
echo $result
;;
*)
echo
"Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_inser
t|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
;;
esac
:wq
[root@server ~]# chmod 777 /usr/local/zabbix/etc/chk_mysql.sh
[root@server ~]# mysql -uroot -p123123
grant all on *.* to 'root'@'192.168.100.101' identified by '123123';
flush privileges;
show grants for root@'192.168.100.101';
exit
[root@server ~]# ln -s /usr/local/zabbix/bin/* /usr/local/bin/ //為 zabbix 的命令做軟鏈
接,檢測 mysql 狀態(tài)時會使用 zabbix_get 命令
[root@server ~]# yum -y install psmisc
[root@server ~]# killall -9 zabbix_server
[root@server ~]# killall -9 zabbix_agentd
[root@server ~]# /usr/local/zabbix/sbin/zabbix_server
[root@server ~]# /usr/local/zabbix/sbin/zabbix_agentd
[root@server ~]# netstat -utpln |grep 100
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN
29800/zabbix_agentd
tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN
29733/zabbix_server
[root@server ~]# vi /etc/my.cnf ##禁止反向解析
[mysqld]
skip-name-resolve
[root@server ~]# systemctl restart mariadb
[root@server ~]# zabbix_get -s 192.168.100.101 -k mysql.ping ##在此可以通過 zabbix_get
命令進行獲取服務(wù)器監(jiān)控項的具體鍵值,mysql.ping 是在 zabbix_agentd.conf 配置文件中的鍵
值名稱,通過此名稱可以查看鍵值,通常能夠獲取到鍵值,獲取監(jiān)控數(shù)據(jù)就是沒問題的;
1
[root@server ~]# zabbix_get -s 192.168.100.101 -k mysql.status[Com_update]
143
[root@server ~]# zabbix_get -s 192.168.100.101 -k mysql.version
mysql Ver 15.1 Distrib 5.5.56-MariaDB, for Linux (x86_64) using readline 5.1
再次打開 zabbix 的 web 界面,驗證 mysql 服務(wù)器的監(jiān)控界面;
按照如上方法將 server.linuxfan.cn 的 httpd 服務(wù)的狀態(tài)添加到 zabbix 的圖形中;
首先安裝 zabbix_agentd 端的測試服務(wù)(ftp)并且確保網(wǎng)絡(luò)通信;
[root@agent ~]# ip a
1: lo: mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:a0:76:46 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.152/24 brd 192.168.100.255 scope global eth0
inet6 fe80::20c:29ff:fea0:7646/64 scope link
valid_lft forever preferred_lft forever
[root@agent ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=agent.zabbix.com
:wq
[root@agent ~]# vi /etc/hosts
192.168.100.101 server.zabbix.com
192.168.100.152 agent.zabbix.com
192.168.100.153 win2k8dc1
:wq
[root@agent ~]# reboot
[root@agent ~]# ping server.zabbix.com -c 4
[root@agent ~]# yum -y install vsftpd
[root@agent ~]# /etc/init.d/vsftpd start
其次開始配置 agent.zabbix.com 被監(jiān)控端主機的 zabbix 的 agent 代理端;
[root@agent ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
[root@agent ~]# yum -y install libxml2-devel libcurl-devel pcre-devel ntpdate
[root@agent ~]# ntpdate ntp1.aliyun.com
[root@agent ~]# wget -O zabbix-3.4.2.tar.gz
http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.2/zabbix-3.4.2.tar.gz
/download
[root@agent ~]# tar zxvf zabbix-3.4.2.tar.gz
[root@agent ~]# cd zabbix-3.4.2
[root@agent zabbix-3.4.2]# ./configure --prefix=/usr/local/zabbix --enable-agent --enable-ipv6
--with-net-snmp --with-libcurl --with-libxml2
[root@agent zabbix-3.4.2]# make &&make install
[root@agent zabbix-3.4.2]# cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
[root@agent zabbix-3.4.2]# vi /etc/init.d/zabbix_agentd
24 DAEMON=/usr/local/zabbix/sbin/zabbix_agentd
:wq
[root@agent zabbix-3.4.2]# chmod +x /etc/init.d/zabbix_agentd
[root@agent zabbix-3.4.2]# cd
[root@agent ~]# groupadd zabbix
[root@agent ~]# useradd -r -g zabbix zabbix
[root@agent ~]# chown -R zabbix:zabbix /usr/local/zabbix/
[root@agent ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
:%g/^$/d
:%g/^#/d
LogFile=/tmp/zabbix_agentd.log
Server=192.168.100.101
ServerActive=192.168.100.101
Hostname=agent.zabbix.com
:wq
[root@agent ~]# /etc/init.d/zabbix_agentd start
Zabbix agent started.
[root@agent ~]# netstat -utpln |grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN
12481/zabbix_agentd
tcp 0 0 :::10050 :::* LISTEN
12481/zabbix_agentd
控效果;
添加 agent.zabbix.com 主機完成,默認的圖形之后五個,無 ftp 服務(wù)圖形,接下來手動添加
ftp 服務(wù)圖形顯示;
首先配置 windows2008 主機的網(wǎng)絡(luò);
其次用宿主機訪問 zabbix 官網(wǎng)下載監(jiān)控 windows2008 的插件;
下載完成,將下載后的插件復(fù)制到測試主機 win2k8dc1 中,進行配置;
C:\zabbix\bin\win64\zabbix_agentd.exe -c C:\zabbix\conf\zabbix_agentd.win.conf -i ##安裝
C:\zabbix\bin\win64\zabbix_agentd.exe -c C:\zabbix\conf\zabbix_agentd.win.conf -s ##啟動
C:\zabbix\bin\win64\zabbix_agentd.exe -c C:\zabbix\conf\zabbix_agentd.win.conf -d ##刪除
windows 主機配置完成,下邊在 web 界面,添加主機 win2k8dc1;
添加完成,默認圖形為 2 個,可以手動添加,在此不做過多說明,驗證當前圖形如下;
以上關(guān)聯(lián)的 Template OS Linux 模板基本涵蓋了所有系統(tǒng)層面的監(jiān)控,包括了我們最關(guān)注的
幾項:ping、load、cpu 使用率、memory、disk、網(wǎng)卡流量等等,當然有些觸發(fā)器的閥值可
能需要根據(jù)服務(wù)器的自身情況進行修改。
下面添加自定義服務(wù)器內(nèi)存使用檢測項,在此配置一個監(jiān)控項為:內(nèi)存使用 70M 進行警告
提醒:
1.修改客戶端 zabbix_agentd.conf 配置文件,最后一行添加:
UserParameter=memory_userd,free -m|grep Mem|awk '{print $3}'
語法:UserParameter=key,shell command
監(jiān)控 key 值:memory_userd,key 值可以隨意編寫,但是一會需要在 web 頁面創(chuàng)建監(jiān)控項時
指定 key 值;
Shell 命令或腳本:free -m|grep Mem|awk '{print $3}'
注:在 zabbix_server 端可以使用 zabbix_get -s agent 端 ip 地址 -p 10050 -k key 名
通過此命令可以查看 agent 端 key 的監(jiān)控值;
具體實現(xiàn)方式如下,更改 agent.zabbix.com 主機的配置文件來自定義監(jiān)控項;
[root@agent ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
UserParameter=memory_userd,free -m|grep Mem|awk '{print $3}'
:wq
[root@agent ~]# /etc/init.d/zabbix_agentd restart
使用 server.agent.com 主機查看其監(jiān)控項鍵值;
[root@server ~]# zabbix_get -s 192.168.100.152 -k memory_userd
338
使用 web 界面添加此監(jiān)控項;
監(jiān)控項添加完成后,創(chuàng)建觸發(fā)器(根據(jù)條件進行觸發(fā)某個告警操作);
觸發(fā)器創(chuàng)建完成后,創(chuàng)建監(jiān)控顯示的圖形;
打開首頁,很明顯的提示;
首先配置 server.zabbix.com 端的郵件;
[root@server ~]# yum -y install postfix mailx dos2unix
[root@server ~]# mailx -V
[root@server ~]# vi /etc/mail.rc //在此文件末尾添加,指定接收郵件郵箱地址,指定郵
箱服務(wù)器地址,指定接收郵件郵箱地址的授權(quán)碼,并非 163 郵箱的密碼,而是授權(quán)碼,登陸
163 網(wǎng)易郵箱地址后,--設(shè)置--開啟 smtp 和 pop3--點擊客戶端生成授權(quán)碼--使用此授權(quán)碼進
行指定到此配置文件;
set from=li__wenhu@163.com smtp=smtp.163.com
set smtp-auth-user=li__wenhu@163.com smtp-auth-password=...
set smtp-auth=login
:wq
[root@server ~]# echo "測試內(nèi)容" |mail -s "測試標題" li__wenhu@163.com // 測 試 郵 件
接收情況
[root@server ~]# vi /usr/local/zabbix/etc/zabbix_server.conf //打開 server 端主配置文
件的腳本存放位置
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
:wq
[root@server ~]# vi /usr/local/zabbix/share/zabbix/alertscripts/2.sh //編寫報警郵件
腳本,調(diào)整 mail 命令語法位置,使用 dos2unix 命令轉(zhuǎn)換字符,避免收到郵件不顯示正常郵
件內(nèi)容而出現(xiàn) ATT00001.bin 的錯誤;
#!/bin/bash
#export.UTF-8
bt=$2
sjr=$1
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
/usr/bin/dos2unix -k $FILE
/bin/mail -s "$bt" "$sjr" <$FILE
:wq
[root@server ~]# chmod 777 /usr/local/zabbix/share/zabbix/alertscripts/2.sh
[root@server ~]# chown zabbix:zabbix /usr/local/zabbix/share/zabbix/alertscripts/2.sh
[root@server ~]# touch /tmp/mailtmp.txt
[root@server ~]# chmod 777 /tmp/mailtmp.txt
[root@server ~]# chown zabbix:zabbix /tmp/mailtmp.txt //注意文件以及報警腳本
的歸屬以及權(quán)限,注:腳本文件和存放郵件消息文件歸屬必須是 zabbix;
[root@server ~]# /usr/local/zabbix/share/zabbix/alertscripts/2.sh li__wenhu@163.com "測試標
題 2" "測試內(nèi)容 2" //測試腳本郵件接收情況
dos2unix: converting file /tmp/mailtmp.txt to Unix format ...
配置 zabbix web 網(wǎng)站進行監(jiān)控項的郵件報警,每一張圖片后附帶解釋和注意事項,大體
步驟分為 監(jiān)控--創(chuàng)建報警媒介類型--更新用戶使用的報警媒介類型--創(chuàng)建動作(根據(jù)觸發(fā)器
觸發(fā))--驗證;
創(chuàng)建報警媒介類型:
輸入創(chuàng)建的報警媒介類型的名稱,指定類型為腳本的方式,并且輸入 zabbix_server 端
/usr/local/zabbix/share/zabbix/alertscripts 目錄下的腳本名稱,確保腳本的歸屬是 zabbix,
并且腳本的權(quán)限是 777,下邊設(shè)置腳本參數(shù),也就是發(fā)送郵件的語法:腳本 收件人 標題 內(nèi)
容,必須嚴格按照此標準填寫;
創(chuàng)建報警媒介類型成功后,進行確認;
配置 zabbix 中的用戶所使用的報警媒介類型以及接收郵件的郵箱;
選擇報警媒介類型為剛剛創(chuàng)建的類型,并且輸入接收郵件的地址,指定報警時間和報警級
別;
創(chuàng)建動作,也就是發(fā)送郵件的動作;
輸入動作名,動作名最好為英文,可以選擇觸發(fā)這個動作的條件(可以選擇觸發(fā)器=觸發(fā)器
的名稱或者選擇觸發(fā)器似觸發(fā)器名稱),作為條件,如若如圖不選擇觸發(fā)器的條件,那么任
何消息都會提示到郵箱;
添加報警動作,一旦此觸發(fā)器添加觸發(fā),添加報警郵件的標題和內(nèi)容,默認操作步驟持續(xù)
時間(修改持續(xù)時間為 60 秒 (一分鐘發(fā)送一次郵件)),添加操作(添加接收郵件的用戶);
默認接收人內(nèi)容:故障{TRIGGER.STATUS},服務(wù)器:{HOSTNAME1}發(fā)生: {TRIGGER.NAME}故障!
默認信息內(nèi)容:
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態(tài):{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}
添加操作(添加接收郵件的用戶),步驟(指定郵件發(fā)送的次數(shù)),僅送到(選擇創(chuàng)建的媒
介類型);
添加恢復(fù)操作(指故障恢復(fù)之后發(fā)送郵件的動作),具體步驟和添加操作相同;
確認動作創(chuàng)建的完成;
開始測試郵件報警
測試一:首先關(guān)閉 agent.zabbix.com 主機的 ftp 服務(wù),測試郵件報警情況;
[root@agent ~]# /etc/init.d/vsftpd stop
關(guān)閉 vsftpd: [確定]
測試二:關(guān)閉 win2k8 主機,測試郵件報警情況;
[root@server ~]# wget
https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.1-1.x86_64.rpm
[root@server ~]# yum -y localinstall grafana-4.6.1-1.x86_64.rpm
[root@server ~]# grafana-cli plugins install alexanderzobnin-zabbix-app ##安裝 zabbix 插
件
[root@server ~]# mkdir -p /opt/grafana/data/plugins/
[root@server ~]# cp -r /var/lib/grafana/plugins/alexanderzobnin-zabbix-app/
/opt/grafana/data/plugins/
[root@server ~]# ls /opt/grafana/data/plugins/
alexanderzobnin-zabbix-app
[root@server ~]# chmod 777 /opt/grafana/data/plugins/ -R
[root@server ~]# systemctl start grafana-server
[root@server ~]# netstat -utpln |grep gra
Proto Recv-Q Send-Q Local Address Foreign Address State
PID/Program name
tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN
57103/grafana-serve
訪問測試 http://192.168.100.101:3000,默認用戶名 admin,密碼 admin,在此是谷歌瀏覽器
翻譯過后的界面,大家可以自行下載谷歌瀏覽器,下載翻譯插件,在此不做過多介紹;
安裝 grafana;
啟用插件;
添加數(shù)據(jù)源;
創(chuàng)建儀表盤;
創(chuàng)建儀表盤時指定顯示的圖形;
輸入圖形名稱;
選擇數(shù)據(jù)源和圖中需要顯示的主機和主機的監(jiān)控項;
創(chuàng)建完成,保存此儀表盤,輸入儀表盤的名稱;
驗證創(chuàng)建的儀表盤;
在現(xiàn)有的 dashboard 中添加圖形;
驗證最終的儀表盤顯示圖形;
難點、重點解說,擴展學(xué)習)
1.錯誤及解決方案:
錯誤一:監(jiān)控 Mysql 數(shù)據(jù)庫時,沒有圖形;
錯誤及解決方案:P/13-18
錯誤二:配置報警郵件時,郵箱收到的郵件為 ATT00001.bin 的內(nèi)容;
錯誤及解決方案:P/38
郵箱收到郵件出現(xiàn) ATT00001.bin 的內(nèi)容:
原因:zabbix 無法將內(nèi)容轉(zhuǎn)義成中英文,需要借助 dos2unix工具進行轉(zhuǎn)換