Zabbix概述

       zabbix是一個基于WEB界面的提供分布式系統監視以及網絡監視功能的企業級的開源解決方案 ( 基于 GPL V2 )zabbix由 2 部分構成,zabbix server與可選組件zabbix agent

進程構成

zabbix 安裝完成后會產生 5 個程序:zabbix_agentd、zabbix_get、zabbix_proxy、zabbix_sender、zabbix_server,zabbix_java_gateway是可選,這個需要另外安裝
<1> zabbix_agentd
       客戶端守護進程,此進程收集客戶端數據,例如 cpu負載、內存、硬盤使用情況等
<2> zabbix_get
       zabbix工具,單獨使用的命令,通常用于排錯
<3> zabbix_sender
       zabbix工具,用于發送數據給 server 或者 proxy ,在腳本完成之后使用 sender 主動將數據提交
<4> zabbix_server
       zabbix 服務端守護進程,所有的數據都是被提交或主動提交到 zabbix_server 端
<5> zabbix_proxy
       zabbix代理守護進程。功能類似server,唯一不同的是它只是一個中轉站,它需要把收集到的數據提交/被提交到server里
<6> zabbix_java_gateway
       zabbix2.0之后引入的一個功能。顧名思義:Java網關,類似agentd,但是只用于Java方面。需要特別注意的是,它只能主動去獲取數據,而不能被動獲取數據。它的數據最終會給到server或者proxy

 

 

#基于Centos7的搭建

一 、系統初始化

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config  

 

二、安裝 LAMP環境

cd /etc/yum.repos.d/
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo yum clean all && yum makecache #清空緩存并建立元數據 

yum -y install mariadb mariadb-server httpd php php-mysql
systemctl enable httpd && systemctl restart httpd
#添加開機自啟并重啟服務

systemctl enable mariadb && systemctl restart mariadb
#添加開機自啟并重啟服務

mysql_secure_installation
#初始化數據庫,全部回答“y”

systemctl is-enabled mariadb
#查詢是否開機自啟
三、安裝 Zabbix
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent  

配置初始數據庫 

# mysql -u root -p
> CREATE DATABASE zabbix DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; 
> exit
導入數據庫 # cd /usr/share/doc/zabbix-server-mysql-3.2.11 # zcat create.sql.gz | mysql -uroot -p zabbix 導入數據庫
啟動 Zabbix 服務 # vim /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix
systemctl enable zabbix-server && systemctl start zabbix-server
編輯 zabbix 前端 php 配置 vim /etc/httpd/conf.d/zabbix.conf
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 調整時間同步 yum -y install ntpdate ntpdate cn.pool.ntp.org systemctl restart httpd
#重啟 Apache 服務生效

四、修改網頁字體中的亂碼問題

 

#復制windows中的字體到linux;
#復制到/usr/share/zabbix/fonts
cd /usr/share/zabbix/fonts
cp /root/SIMSUN_\(1\).TTC  .
mv mv SIMSUN_\(1\).TTC song.ttf
#修改字體的名字的后綴為.ttf;因為php默認調用的字體為后綴為ttf的
chmod  a+x song.ttf 
#因為字體需要執行權限,所以給字體執行權限;
	
#因為php默認調用的不是這個字體,所以需要修改配置文件
vim /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'song'); 
// font file name
#將之前的graphfont修改為song; systemctl start zabbix-agent

 

五、添加客戶端

linux

#導入安裝包   (CentOS 7)zabbix-agent-3.2.1-1.el7.x86_64.rpm
(CentOS 6)zabbix-agent-3.2.6-1.el6.x86_64.rpm
yum –y install zabbix-agent-3.2.1-1.el7.x86_64.rpm
vim /etc/zabbix/zabbix_agentd.conf LogFile=/tmp/zabbix_agentd.log Server=10.10.10.10 #zabbix服務器ip ServerActive=10.10.10.10 #zabbix服務器ip Hostname=10.10.10.10 #自己的ip systemctl enable zabbix-agent && systemctl restart zabbix-agent
##CentOS-7 chkconfig zabbix-agent on && service zabbix-agent start
##CentOS-6.8  

windows  

 

將bin和conf目錄放在C:\zabbix中
修改C:\zabbix\conf\zabbix_agentd.conf配置文件下面三項
LogFile=/tmp/zabbix_agentd.log
Server=10.10.10.10 
#zabbix服務器ip ServerActive=10.10.10.10
#zabbix服務器ip Hostname=10.10.10.80
#自己的ip
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
#開啟服務

 

  

 

六、瀏覽器端配置

1、 添加監控主機
配置 | 主機 | 創建主機 | 模板 | 選擇模板 | 添加模板 | 添加主機
添加模板時,一般默認必須選擇以下2項
Template ICMP Ping
Template OS Linux
2、 配置監控 Nginx 并發量腳本(自定義腳本) 
 

一、編譯安裝Nginx,開啟 Nginx status 狀態信息
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
make && make install
#添加監控模塊
vim /usr/local/nginx/conf/nginx.conf
location /xabbix {
stub_status on;
}

  

二、Zabbix 客戶端配置
[root@localhost ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_stats.sh
#!/bin/bash
# Description:zabbix監控nginx性能以及進程狀態
# Note:此腳本需要配置在被監控端,否則ping檢測將會得到不符合預期的結果
HOST="127.0.0.1"
PORT="80"
# 檢測nginx進程是否存在
function ping {
/sbin/pidof nginx | wc -l 
}
# 檢測nginx性能
function active {
/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| grep 'Active' | awk '{print $NF}' 
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/xabbix/" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
# 執行function
$1

2、在客戶機將自定義的UserParameter加入配置文件,然后重啟agentd
將腳本存在該目錄下 : /etc/zabbix/zabbix_agentd.d,修改UserParameter的值  

 vim /etc/zabbix/zabbix_agentd.conf

UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_stats.sh $1

killall zabbix_agentd
/etc/init.d/zabbix-agent restart

3、在服務器使用zabbix_get獲取數據  

rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-get-3.2.11-1.el7.x86_64.rpm
# zabbix_get -s 10.10.10.11 -k 'nginx.status[accepts]'
# zabbix_get -s 10.10.10.11 -k 'nginx.status[ping]'

4、瀏覽器配置Nginx 服務器并添加 Nginx 監控模板  

瀏覽器操作

    1. 配置 | 模板 | 導入 | 選擇文件 | 導入
    2. 配置 | 主機 | 創建主機 | 模板 | 選擇模板 | 添加模板 | 添加主機
      添加模板時,一般默認必須選擇以下2項
      Template ICMP Ping
      Template OS Linux
      Template App NGINX 選擇剛才導入的模板
      3、 鏈接釘釘報警
      a、添加釘釘機器人,復制出機器碼
      b 、Zabbix 配置文件中查找”Alert”查看告警腳本存放路徑:
[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/lib/zabbix/alertscripts

         c、進入配置中路徑創建配置文件:  

 

[root@localhost ~]# cd /usr/lib/zabbix/alertscripts/
[root@localhost alertscripts]# vim token.sh
#!/bin/bash
to=$1
subject=$2
text=$3
curl '****釘釘機器碼填在此處*******' \
-H 'Content-Type: application/json' \
-d '
{"msgtype": "text",
"text": {
"content": "'"$text"'"
},
"at":{
"atMobiles": [ "'"$1"'" ],
"isAtAll": false
}
}'

  

       d、修改權限

[root@localhost alertscripts]# chown zabbix.zabbix token.sh
[root@localhost alertscripts]# chmod +x token.sh

      e、配置瀏覽器端
        管理 | 報警媒介類型 | 創建媒介類型····
        配置 | 動作 | 事件源[觸發器] 創建動作 ·····
        管理 | 用戶 | admin | 報警媒介 | 添加 | 收件人填電話 | 填加

 

                此博客來源于:http://www.rzrgm.cn/outsrkem/p/10851255.html