目錄php
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或者proxyjava
Name | Platform | CPU/Mem | Databases | Monitored host |
---|---|---|---|---|
Small | Ubuntu linux | PII 350Mhz 256Mb | SQLite | 20 |
Medium | Ubuntu linux 64 bit | AMD Athlon 3200+ 2GB | MySQL InnoDB | 500 |
Large | Ubuntu linux 64 bit | Intel Dual Core 6400 4GB | RAID10 MySQL InnoDB or PostgreSQL | >1000 |
very | RedHat Enterprise | Intel Xeon 2xCPU 8GB | Fast RAID10 MySQL InnoDB or PostgreSQL | >10000 |
# systemctl stop firewalld # systemctl disable firewalld # setenforce 0 # sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# 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 //查詢是否開機自啓
# 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 服務生效
Win+R > fonts > 拷貝中文字體更名爲 msyh.ttf > 將字體拷貝到該目錄下 /usr/share/zabbix/fonts [root@localhost ~]# vim /usr/share/zabbix/include/defines.inc.php 修改 zabbix php 頁面配置,將'graphfont' 修改成 msyh define('ZBX_GRAPH_FONT_NAME', 'msyh');
導入安裝包 (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.11 //zabbix服務器ip ServerActive=10.10.10.11 //zabbix服務器ip Hostname=10.10.10.11 //本身的ip # systemctl enable zabbix-agent && systemctl restart zabbix-agent //CentOS-7 # chkconfig zabbix-agent on && service zabbix-agent start //CentOS-6.8
將bin和conf目錄放在C:\zabbix中 修改C:\zabbix\conf\zabbix_agentd.conf配置文件下面三項 LogFile=/tmp/zabbix_agentd.log Server=10.10.10.11 //zabbix服務器ip ServerActive=10.10.10.11 //zabbix服務器ip Hostname=10.10.10.111 //本身的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 //開啓服務
一、 添加監控主機
配置 | 主機 | 建立主機 | 模板 | 選擇模板 | 添加模板 | 添加主機
添加模板時,通常默認必須選擇如下2項
Template ICMP Ping
Template OS Linux
二、 配置監控 Nginx 併發量腳本(自定義腳本)mysql
# ./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; }
一、編寫客戶機端腳本 nginx_stats.shlinux
[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
二、在客戶機將自定義的UserParameter加入配置文件,而後重啓agentd
將腳本存在該目錄下 : /etc/zabbix/zabbix_agentd.d,修改UserParameter的值nginx
# 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
三、在服務器使用zabbix_get獲取數據web
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]'
四、瀏覽器配置Nginx 服務器並添加 Nginx 監控模板
瀏覽器操做sql
[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、修改權限json
[root@localhost alertscripts]# chown zabbix.zabbix token.sh [root@localhost alertscripts]# chmod +x token.sh
e、配置瀏覽器端 管理 | 報警媒介類型 | 建立媒介類型···· 配置 | 動做 | 事件源[觸發器] 建立動做 ····· 管理 | 用戶 | admin | 報警媒介 | 添加 | 收件人填電話 | 填加