CentOS7部署Zabbix5.0.2監控主機和Web(無坑版)

防僞碼:他日若遂凌雲志 敢笑黃巢不丈夫php

操做系統html

CentOS Linux release 7.5.1804 (Core)前端

Nginxnode

nginx/1.16.1mysql

PHPlinux

7.2.24 ios

MYSQL

5.7.2nginx

Zabbix

5.0.2web

第一章 zabbix監控sql

1.1 爲何要監控

   在須要的時刻,提早提醒咱們服務器出問題了

   當出問題以後,能夠找到問題的根源

   網站/服務器 的可用性

1.1.1 網站可用性

  在軟件系統的高可靠性(也稱爲可用性,英文描述爲HA,High Available)裏有個衡量其可靠性的標準——X個9,這個X是表明數字3~5。X個9表示在軟件系統1年時間的使用過程當中,系統能夠正常使用時間與總時間(1年)之比,咱們經過下面的計算來感覺下X個9在不一樣級別的可靠性差別。

    1個9:(1-90%)*365=36.5天,表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是36.5天

    2個9:(1-99%)*365=3.65天 , 表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是3.65天

    3個9:(1-99.9%)*365*24=8.76小時,表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是8.76小時。

    4個9:(1-99.99%)*365*24=0.876小時=52.6分鐘,表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是52.6分鐘。

    5個9:(1-99.999%)*365*24*60=5.26分鐘,表示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是5.26分鐘。

    6個9:(1-99.9999%)*365*24*60*60=31秒, 示該軟件系統在連續運行1年時間裏最多可能的業務中斷時間是31秒

1.2 監控什麼東西

監控一切須要監控的東西,只要可以想到,可以用命令實現的都能用來監控

1.3 怎麼來監控

1.3.1 遠程管理服務器

若是想遠程管理服務器就有遠程管理卡,好比Dell idRAC,HP ILO,IBM IMM

1.3.2監控硬件

查看硬件的溫度/風扇轉速,電腦有魯大師,服務器就有ipmitool。

使用ipmitool實現對服務器的命令行遠程管理

yum -y install OpenIPMI ipmitool  ->IPMI在物理機能夠成功,虛擬機不行

[root@KVM ~] ipmitool sdr type Temperature

Temp             | 01h | ns  |  3.1 | Disabled

Temp             | 02h | ns  |  3.2 | Disabled

Temp             | 05h | ns  | 10.1 | Disabled

Temp             | 06h | ns  | 10.2 | Disabled

Ambient Temp     | 0Eh | ok  |  7.1 | 22 degrees C

Planar Temp      | 0Fh | ns  |  7.1 | Disabled

IOH THERMTRIP    | 5Dh | ns  |  7.1 | Disabled

CPU Temp Interf  | 76h | ns  |  7.1 | Disabled

Temp             | 0Ah | ns  |  8.1 | Disabled

Temp             | 0Bh | ns  |  8.1 | Disabled

Temp             | 0Ch | ns  |  8.1 | Disabled

 

1.3.3 查看cpu相關

lscpu、uptime、top、htop vmstat mpstat

其中htop須要安裝,安裝依賴與epel源。

[znix@clsn ~]$lscpu

Architecture:          x86_64

CPU op-mode(s):        32-bit, 64-bit

Byte Order:            Little Endian

CPU(s):                1

On-line CPU(s) list:   0

Thread(s) per core:    1

Core(s) per socket:    1

 

 

1.3.4 內存夠不夠能夠用

free

[znix@clsn ~]$free -h

             total       used       free     shared    buffers     cached

Mem:          996M       867M       128M       712K       145M       450M

-/+ buffers/cache:       271M       725M

Swap:         1.0G         0B       1.0G

 

1.3.5 磁盤剩多少寫的快不快能夠用

  df、dd、iotop

[znix@clsn ~]$df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/vda1        40G   24G   15G  62% /

tmpfs           499M   20K  499M   1% /dev/shm

/dev/vdb1        20G  4.4G   15G  24% /data

 

1.3.6 監控網絡

iftop nethogs

iftop   監控主機間流量  -i 指定監控網卡

nethogs 監控進程流量

1.4 監控工具總覽

  mrtg 流量監控出圖

  nagios 監控

  cacti  流量監控出圖

  zabbix 監控+出圖

1.5 zabbix介紹

  Zabbix 是由 Alexei Vladishev 開發的一種網絡監視、管理系統,基於 Server-Client 架構。可用於監視各類網絡服務、服務器和網絡機器等狀態。

  使用各類 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 儲存資料。Server 端基於 C語言、Web 管理端 frontend 則是基於 PHP 所製做的。Zabbix 可使用多種方式監視。能夠只使用 Simple Check 不須要安裝 Client 端,亦可基於 SMTP 或 HTTP ... 各類協定作死活監視。

  在客戶端如 UNIX, Windows 中安裝 Zabbix Agent 以後,可監視 CPU Load、網絡使用情況、硬盤容量等各類狀態。而就算沒有安裝 Agent 在監視對象中,Zabbix 也能夠經由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 對目標進行監視。

另外,Zabbix 包含 XMPP 等各類 Item 警示功能。

1.5.1 zabbix的組成

zabbix官網: https://www.zabbix.com

zabbix 主要由2部分構成 zabbix server和 zabbix agent

zabbix proxy是用來管理其餘的agent,做爲代理

1.5.2 zabbix監控範疇

   硬件監控 Zabbix IPMI Interface

   系統監控 Zabbix Agent Interface

   Java 監控:ZabbixJMX Interface

 網絡設備監摶:Zabbix SNMP Interface

    應用服務監控:Zabbix Agent UserParameter

MySQL 數據庫監控:percona-monitoring-pldlgins

URL監控:Zabbix Web監控

第二章 安裝zabbix

2.1關閉防火牆

systemctl stop firewalld.service      中止firewalld服務

systemctl disable firewalld.service    設置開機默認不啓動

2.2關閉selinux

getenforce    查看狀態

vim /etc/sysconfig/selinux    開機不啓動

     SELINUX=disabled

生產環境單獨在防火牆上開啓端口和策略

2.3安裝zabbix5.0源

2.3.1 安裝依賴

yum -y install openssl OpenIPMI-libs  unixODBC libaio   iksemel fping net-snmp net-snmp-utils mysql perl-DBI curl libcurl-devel net-snmp-devel libssh2 libssh2-devel libxml2 libxml2-devel

2.3.2安裝數據庫

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm   yum clean all                         *清理yum緩存

2.4安裝zabbix5.0服務端和客戶端

yum install zabbix-server-mysql zabbix-agent     國外源安裝可能比較慢或者出錯,多試幾回

2.5安裝CentOS SCLo RH存儲庫:

yum install centos-release-scl

編輯配置文件 /etc/yum.repos.d/zabbix.repo

[zabbix-frontend]

...

Enabled=1

...

安裝Zabbix前端包

yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl

2.6安裝並配置數據庫

2.6.1安裝mysql5.7

安裝MySQL服務

yum install rh-mysql57-mysql rh-mysql57-mysql-server rh-mysql57-mysql-devel

配置MySQL服務

vim /etc/opt/rh/rh-mysql57/my.cnf

character_set_server = utf8

vim /etc/profile

export PATH=/opt/rh/rh-mysql57/root/bin:$PATH

source  /etc/profile

啓動服務

systemctl start rh-mysql57-mysqld

2.6.2建立初始數據庫

mysql -uroot -p

password

mysql> create database zabbix character set utf8 collate utf8_bin;

mysql> create user zabbix@localhost identified by 'Password@123.';

mysql> grant all privileges on zabbix.* to zabbix@localhost;

mysql> quit;

2.6.3導入初始架構和數據

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix          提示輸入的密碼爲:password

2.6.4 Zabbix server配置數據庫

vim /etc/zabbix/zabbix_server.conf

DBPassword=password

DBSocket=/var/lib/mysql/mysql.sock

2.7配置文件

vim /etc/opt/rh/rh-php72/php.ini

soap.wsdl_cache_enabled=1

max_input_time = 600

max_execution_time = 300

date.timezone = Asia/Shanghai

post_max_size = 32M

memory_limit = 128M

mbstring.func_overload = 1
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

[zabbix]

user = apache

group = apache

 

listen = /var/opt/rh/rh-php72/run/php-fpm/zabbix.sock

listen.acl_users = apache

listen.allowed_clients = 127.0.0.1

listen.mode = 0666

pm = dynamic

pm.max_children = 50

pm.start_servers = 5

pm.min_spare_servers = 5

pm.max_spare_servers = 35

 

php_value[session.save_handler] = files

php_value[session.save_path]    = /var/opt/rh/rh-php72/lib/php/session/

 

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[max_input_vars] = 10000

; php_value[date.timezone] = Europe/Riga

 

vim /etc/opt/rh/rh-nginx116/nginx/nginx.conf

# For more information on configuration, see:

#   * Official English Documentation: http://nginx.org/en/docs/

#   * Official Russian Documentation: http://nginx.org/ru/docs/

 

user nginx;

worker_processes auto;

error_log /var/opt/rh/rh-nginx116/log/nginx/error.log;

pid /var/opt/rh/rh-nginx116/run/nginx/nginx.pid;

 

# Load dynamic modules. See /opt/rh/rh-nginx116/root/usr/share/doc/README.dynamic.

include /opt/rh/rh-nginx116/root/usr/share/nginx/modules/*.conf;

 

events {

    worker_connections  1024;

}

 

http {

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

 

    access_log  /var/opt/rh/rh-nginx116/log/nginx/access.log  main;

 

    sendfile        on;

    tcp_nopush      on;

    tcp_nodelay     on;

    keepalive_timeout  65;

    types_hash_max_size 2048;

 

    include       /etc/opt/rh/rh-nginx116/nginx/mime.types;

    default_type  application/octet-stream;

 

    # Load modular configuration files from the /etc/nginx/conf.d directory.

    # See http://nginx.org/en/docs/ngx_core_module.html#include

    # for more information.

    include /etc/opt/rh/rh-nginx116/nginx/conf.d/*.conf;

 

 

}

vim /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf

server {

        listen          80;

#        server_name     example.com;

 

        root    /usr/share/zabbix;

 

        index   index.php;

 

        location = /favicon.ico {

                log_not_found   off;

        }

 

        location / {

                try_files       $uri $uri/ =404;

        }

 

        location /assets {

                access_log      off;

                expires         10d;

        }

 

        location ~ /\.ht {

                deny            all;

        }

 

        location ~ /(api\/|conf[^\.]|include|locale) {

                deny            all;

                return          404;

        }

 

        location ~ [^/]\.php(/|$) {

                fastcgi_pass    unix:/var/opt/rh/rh-php72/run/php-fpm/zabbix.sock;

                fastcgi_split_path_info ^(.+\.php)(/.+)$;

                fastcgi_index   index.php;

 

                fastcgi_param   DOCUMENT_ROOT   /usr/share/zabbix;

                fastcgi_param   SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;

                fastcgi_param   PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;

 

                include fastcgi_params;

                fastcgi_param   QUERY_STRING    $query_string;

                fastcgi_param   REQUEST_METHOD  $request_method;

                fastcgi_param   CONTENT_TYPE    $content_type;

                fastcgi_param   CONTENT_LENGTH  $content_length;

 

                fastcgi_intercept_errors        on;

                fastcgi_ignore_client_abort     off;

                fastcgi_connect_timeout         60;

                fastcgi_send_timeout            180;

                fastcgi_read_timeout            180;

                fastcgi_buffer_size             128k;

                fastcgi_buffers                 4 256k;

                fastcgi_busy_buffers_size       256k;

                fastcgi_temp_file_write_size    256k;

        }

}

2.8啓動Zabbix5.0

 systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm

 systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm rh-mysql57-mysqld

2.9 配置Zabbix前端

@JUPGS$7[S`XGWU@[PZXDYR.png

(KNSO99$]NSF%6N1Q1A$~A4.png

~%8IY}YUX4J{9YQH2X_$GFD.png

F]RPFB]VRG0I4YR{E_67J76.png

VTLZMZY([7TDU)7$}I(JJ(W.png

第三章 基礎功能使用

3.1 Linux主機監控

linux主機的話仍是比較好處理的,不管是安裝agent代理程序仍是使用snmp,都是比較方便的

基礎配置:關閉selinux,關閉防火牆或者打開161端口。

3.1.1 安裝

安裝net-snmp

yum install -y net-snmp

3.1.1.1修改配置文件

vim /etc/snmp/snmpd.conf

sec.name source community

com2sec notConfigUser default public    #社區名稱定義爲public

view systemview included .1            #添加一個採集項.1,意味着能夠採集到全部mib tree的信息

view systemview included .1.3.6.1.2.1.1

view systemview included .1.3.6.1.2.1.25.1.1

3.1.3啓動服務

systemctl start snmpd.service

netstat -lntup|grep 161

udp 0 0 0.0.0.0:161 0.0.0.0:* 6711/snmpd

3.1.4在zabbix server上測試

snmpwalk -v 2c -c zabbix 222.29.77.167|wc -l

12235        #這裏取到了12235項

nmap端口掃描

yum install -y nmap

nmap -sU 目標IP -p 161

T)D})R7C5JMSBM~BU2([@WX.png

3.1.5 添加Linux主機

配置——主機——建立主機——移除interface的客戶端——添加SNMP客戶端

——填寫主機名稱、可見名稱、羣組、IP地址,如圖所示:

PGAZ2C)A[3G0(ATH(BG`{WF.png

H1`U{%@~PHA`BXB{HTN~YME.png

Z]Q{Z]$P9U4J~(R}[Y59[OB.png

點擊添加,而後等待1分鐘,等待圖標變成綠色即正常,如圖所示:

Y${5%WN34JWL2U6B1O3QE)5.png

3.2 Web監控

經過zabbix作web監控,不只僅能夠監控到站點的響應時間,還能夠根據站點返回的狀態碼或響應時間作報警設置,好比說對某個url進行監控,當訪問返回的狀態碼是非200狀態時都報警(建立觸發器便可)。下面簡單介紹下監控設置

3.2.1 建立監控模板

點擊配置——模板——建立模板

O~58)UY[%4C@A]]OGX09%YP.png

3.2.2 建立web監控場景

I9[NI%{EDDG}@{`58[_UCVM.png

監控網頁名稱便於本身區分

監控的URL地址

監控超時時間,根據本身相應業務動態調整頻率

要求返回的狀態碼,這裏返回200爲正常,非200報警

7BXL808CT`C1@){XAO0HKSD.png

3.2.3 查看效果

NFJ8173%@~$U{RHJU~OF)UP.png

3.2.4 建立觸發器

若是想要實現報警功能還須要咱們進行觸發器的設置

點擊剛纔建立的模塊Templates Web status,選擇觸發器,建立觸發器

CPY)OQ97G89S~YAGRUPHOAG.png

(WJIFH0MMY$`J~V_4HMDDZI.png

@2O7WPH~1FVTVYIV)LX[3S7.png

LC{Z4R2{4BQN1DGGPXD@RD3.png

(3U$9EAH(D19F860TT[[{WP.png


3.3 Windows主機監控

3.3.1 安裝/打開snmp服務

TWZ37W$(QU{S$OFQ~VQ{XRU.png

3.3.2 關閉防火牆

這裏只是測試,實際生產環境環境,須要開放snmp端口161,或者對主機的固定IP進行放行。

A%MH00}D9C@Y)B_S}2A]E]S.png

3.3.3 配置snmp服務並將其重啓

59Z7M}SUJ$]WUJOW_A_%CEW.png

如圖所示,192.168.249.142是我zabbix-server的IP,須要配置接受,上面是本地snmp的團體名,必須配置的與zabbix-server上的同樣,不然不能正常的收發數據。

3.3.4配置檢測

server端使用命令檢測client的配置是否有問題:

沒法收集到數據:

[root@localhost ~]# snmpwalk -v 2c -c zabbix 192.168.249.128 hrMemory    

Timeout: No Response from 192.168.249.128

正常狀況:

[root@localhost ~]# snmpwalk -v 2c -c zabbix 192.168.249.128 hrMemory    

HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 2096632 KBytes

snmpwalk命令依賴於:net-snmp-utils軟件包,若是提示找不到命令,安裝就行了:yum install net-snmp-utils -y,若是檢測不經過,則說明client配置有問題。

3.3.5 建立主機

S%_Z[DJ3D%ORHC@B{47_H15.png

(ZVQCK4{MY`SGJBOND1Z4IG.png

(D)}]T_LF_Q$[4W$FJ4F04L.png

YGMZ9R4NAQQ20R$HBFJ$I_F.png

SNMP綠色亮起,說明sever與client的交互沒有問題,ok,若是一直爲灰色,通常是團體名,既宏的配置有問題,檢查更改直到這個按鈕亮起。(在網絡沒有問題的前提下)

相關文章
相關標籤/搜索