1、Zabbix介紹
- Zabbix功能
- Zabbix應用
2、zabbix安裝教程
- 安裝包安裝Zabbix
- docker方式安裝Zabbix
3、使用教程
- 添加監(jiān)控
- 告警設置
1、Zabbix介紹
- Zabbix簡介
Zabbix 是一個高度集成的網(wǎng)絡監(jiān)控解決方案,由一個國外的團隊持續(xù)維護更新,軟件可以自由下載使用。具備常見的商業(yè)監(jiān)控軟件所具備的功能(主機的性能監(jiān)控、網(wǎng)絡設備性能監(jiān)控、數(shù)據(jù)庫性能監(jiān)控、FTP 等通用協(xié)議監(jiān)控、多種告警方式、詳細的報表圖表繪制).Zabbix 通過 C/S 模式采集數(shù)據(jù),通過 B/S 模式在 web 端展示和配置:
一、Client(被監(jiān)控)端: 主機通過安裝 agent 方式采集數(shù)據(jù),網(wǎng)絡設備通過 SNMP 方式采集數(shù)據(jù)
二、Server (服務)端: 通過收集 SNMP 和 agent 發(fā)送的數(shù)據(jù),寫入數(shù)據(jù)庫再通過 php+apache 在 web 前端展示。
Zabbix功能
1、支持自動發(fā)現(xiàn)網(wǎng)絡設備和服務器(可以通過配置自動發(fā)現(xiàn)服務器規(guī)則來實現(xiàn))
2、支持自動發(fā)現(xiàn)(low discovery)key 實現(xiàn)動態(tài)監(jiān)控項的批量監(jiān)控(需寫腳本)
3、支持分布式,能集中展示、管理分布式的監(jiān)控點
4、擴展性強,server 提供通用接口(api 功能),可以自己開發(fā)完善各類監(jiān)控(根據(jù)相關接口編寫程序實現(xiàn))編寫插件容易,可以自定義監(jiān)控項,報警級別的設置。
數(shù)據(jù)收集:
1、可用和性能檢測
2、支持 snmp(包括 trapping and polling ),IPMI,JMX,SSH,TELNET
3、自定義的檢測
4、自定義收集數(shù)據(jù)的頻率
5、服務器/代理和客戶端模式
6、靈活的觸發(fā)器
7、可以定義非常靈活的問題閾值,稱為觸發(fā)器,從后端數(shù)據(jù)庫的參考值
8、高可定制的報警
9、發(fā)送通知,可定制的報警升級,收件人,媒體類型
10、通知可以使用宏變量有用的變量
11、自動操作包括遠程命令
12、實時的繪圖功能
13、監(jiān)控項實時的將數(shù)據(jù)繪制在圖形上面
- WEB 監(jiān)控:
1、ZABBIX 可以模擬鼠標點擊了一個網(wǎng)站,并檢查返回值和響應時間Api 功能
- 應用 api 功能:
1、可以方便的和其他系統(tǒng)結合,包括手機客戶端的使用。
2、Zabbix安裝
安裝包安裝Zabbix
- 配置環(huán)境:
系統(tǒng):centos7.5
php版本:5.4
數(shù)庫版本:mariadb5.7
Zabbix版本:3.4
注意:php最新版本可能會產(chǎn)生報錯,這里用的5.4版本存在一定安全風險,需要開啟iptables限制非法ip訪問80端口!
安裝數(shù)據(jù)庫:
yum -y install mariadb-server mariadb
安裝Apache
yum -y install httpd
安裝php
yum install php
創(chuàng)建數(shù)據(jù)庫并授權zabbix用戶以及設置密碼:
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
安裝php
yum install php-mysqlnd php-gd libjpeg* php-snmp php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash php-common php-ctype php-xml php-xmlreader php-xmlwriter php-session php-mbstring php-gettext php-ldap php-mysqli --skip-broken
yum install wget telnet net-tools python-paramiko gcc gcc-c++ dejavu-sans-fonts python-setuptools python-devel
安裝zabbix源
rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
安裝zabbix
yum -y install zabbix-server-mysql zabbix-web-mysql
導入剛創(chuàng)建的數(shù)據(jù):(需要先定義好root的密碼,輸入root密碼導入數(shù)據(jù))
zcat /usr/share/doc/zabbix-server-mysql-3.4.0/create.sql.gz | mysql -uzabbix -pzabbix zabbix
配置zabbix參數(shù):
vim /etc/zabbix/zabbix_server.conf /etc
DBPassword=zabbix #設置Zabbix的密碼,與創(chuàng)建zabbix數(shù)據(jù)庫的密碼一致
修改zabbix時區(qū)
vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
配置防火墻策略
1、關閉 SELinux
setenforce 0 && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce=0
2、防火墻放行端口
firewall-cmd --zone=public --add-port=10051/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
啟動服務:
systemctl restart mysqld
systemctl start httpd
systemctl start zabbix-server
訪問zabbix并配置:http://10.17.87.15/zabbix/zabbix
全部ok,才能選擇下一步:
輸入zabbix數(shù)據(jù)庫的密碼:
下一步:
使用默認的登陸賬號密碼登陸:Admin/zabbix
http://10.17.87.15/zabbix/zabbix.php?action=dashboard.view
docker方式安裝Zabbix
- 配置環(huán)境:
系統(tǒng):Centos7.5
容器:docker-ce18.06
本次使用docker搭建zabbix的組合是docker+mysql+zabix-server
docker參數(shù)含義:
--name:創(chuàng)建容器自定義命名
-e:配置文件參數(shù)添加
-p:容器的端口映射到宿主機上
-d:后臺運行容器
-v:卷或配置文件映射宿主機上,通過修改宿主機上的路徑文件即可修改配置文件參數(shù)
- 1 先安裝數(shù)據(jù)庫mysql
docker run --name zabbix-mysql-server --hostname zabbix-mysql-server \
-e MYSQL_ROOT_PASSWORD="123456" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123456" \
-e MYSQL_DATABASE="zabbix" \
-p 3306:3306 \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin
- 2 創(chuàng)建zabbix-server
docker run --name zabbix-server-mysql --hostname zabbix-server-mysql \
--link zabbix-mysql-server:mysql \
-e DB_SERVER_HOST="mysql" \
-e MYSQL_USER="zabbix" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_PASSWORD="123456" \
-v /etc/localtime:/etc/localtime:ro \
-v /data/docker/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-v /data/docker/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \
-p 10051:10051 \
-d \
zabbix/zabbix-server-mysql
- 3 安裝web-nginx
docker run --name zabbix-web-nginx-mysql --hostname zabbix-web-nginx-mysql \
--link zabbix-mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-e DB_SERVER_HOST="mysql" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123456" \
-e MYSQL_DATABASE="zabbix" \
-e ZBX_SERVER_HOST="zabbix-server" \
-e PHP_TZ="Asia/Shanghai" \
-p 8000:80 \
-p 8443:443 \
-d \
zabbix/zabbix-web-nginx-mysql
瀏覽器訪問ip:8000查看
默認登錄
username:Admin
password:zabbix
,mysql沒做數(shù)據(jù)卷的映射,nginx也沒做數(shù)據(jù)卷的映射,在實際生產(chǎn)環(huán)境下,最好做數(shù)據(jù)映射。防止數(shù)據(jù)丟失。
3、使用教程
- 添加監(jiān)控
客戶端系統(tǒng):Centos7.4
客戶端監(jiān)控的方式:zabbix-agent監(jiān)控。
安裝與Server版本一直的zabbix-agent
1、客戶端設置
執(zhí)行如下腳本
Rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-agent-3.0.10-1.el6.x86_64.rpm
修改配置文件:`/etc/zabbix/zabbix_agentd.conf`
sed -i "s/Server=127.0.0.1/Server=10.17.87.69/" /etc/zabbix/zabbix_agentd.conf #服務器端地址
sed -i "s/Hostname=/Hostname=$serverip/" /etc/zabbix/zabbix_agentd.conf #hostname地址,一般設置為本地ip
service zabbix-agent restart && chkconfig zabbix-agent on #打開并設置zabbix-agent自開機啟動
需要根據(jù)系統(tǒng)版本修改,可根據(jù)http://repo.zabbix.com/zabbix/3.0/rhel查看需要下載的版本后復制鏈接
2、服務器端設置
登陸zabbix,配置-主機-創(chuàng)建主機
填寫如下信息:
主機名稱:hostname。填寫本地ip,群組,IP地址,端口默認。
添加模塊:
查看添加的服務器的狀態(tài):
綠色:正常,紅色:不通
- 告警設置
- 郵箱告警
環(huán)境
系統(tǒng):CentOS7
Zabbix版本:Zabbix3.4.4
安裝郵件發(fā)送工具mailx
先關閉其他自帶的郵件服務:
service sendmail stop && systemctl disable sendmail.service ##禁止開機啟動sendmail
service postfix stop systemctl disable postfix.service ##禁止開機啟動postfix
然后安裝mailx工具、dos2unix轉換工具( 解決發(fā)出的郵件是附件格式的問題 )
yum -y install mailx
yum -y install dos2unix
配置Zabbix服務端外部郵箱
打開文件vim /etc/mail.rc(如果mail.rc文件沒有,就手動創(chuàng)建,添加如下內容)
使用的賬戶和密碼需要開啟設置--客戶端授權密碼
set sendcharsets=iso-8859-1,utf-8
set from=xxx@163.com
set smtp=smtp.163.com:25
set smtp-auth-user=xxx@163.com
set smtp-auth-password=****
測試郵件是否可以發(fā)出
echo "zabbix test mail" |mail -s "zabbix" yyy@163.com
配置完成后,執(zhí)行這條命令測試郵件是否可以正常發(fā)出,如果正常,郵箱yyy@163.com會收到來自xxx@163.com的測試郵件
編寫發(fā)送郵件腳本
修改郵件腳本
vim /usr/lib/zabbix/alertscripts/sendmail.sh
修改郵件發(fā)送腳本內容:
!/bin/bash
export.UTF-8 ###解決發(fā)送的中文變成了亂碼的問題
FILE=/tmp/mailtmp.txt
echo "FILE
dos2unix -k 2"
FILE
創(chuàng)建臨時文件并授權
···
touch /tmp/mailtmp.txt
chown zabbix.zabbix /tmp/mailtmp.txt
···
上面的這個三個參數(shù)是接收從web頁面中傳遞過來的:
2:郵件標題;
$3:郵件內容
注意:要給腳本添加權限
chmod 755 /usr/lib/zabbix/alertscripts/sendmail.sh
配置web頁面
1、創(chuàng)建媒體類型
管理–>報警媒介類型–>創(chuàng)建媒體類型 :類型:腳本。腳本參數(shù)如下:
點擊更新,在報警媒介類型中查看到到剛創(chuàng)建的Email類型。
2、給用戶添加報警媒介
此處以Admin用戶為例 管理–>用戶–>點擊Admin
管理-用戶報警媒介,添加郵箱接收人,勾選如下,并點擊添加,在點擊添加。
3、創(chuàng)建動作
名稱自己起,除了操作,其它默認,或者根據(jù)自己需求添加
添加新的操作
如有告警信息,即通過發(fā)送郵箱到設置的郵箱上。