01.Zabbix監控快速入門

1.監控知識基本概述

  • 1.爲何要使用監控
    • 1.對系統不間斷實時監控
    • 2.實時反饋系統當前狀態
    • 3.保證服務可靠性安全性
    • 4.保證業務持續穩定運行
  • 2.如何進行監控,好比咱們須要監控磁盤的使用率
    • 1.如何查看磁盤使用率df -h
    • 2.監控磁盤的那些指標block、inode
    • 3.如何獲取具體的信息df -h|awk '/\/$/{print $(NF-1)}'
    • 4.獲取的數值到達多少報警 80%
  • 3.流行的監控工具
    • 1.cacti、Nagios、Zabbix、
    • 2.Lepus(天兔)數據庫監控系統
    • 3.Open-Falcon 小米
    • 4.Prometheus(普羅米修斯,Docker、K8s)
  • 4.若是去到一家新公司,如何入手監控
    • 1.硬件監控 路由器、交換機、防火牆
    • 2.系統監控 CPU、內存、磁盤、網絡、進程、TCP
    • 3.服務監控 nginx、php、tomcat、redis、memcache、mysql
    • 4.WEB監控 請求時間、響應時間、加載時間、
    • 5.日誌監控 ELk(收集、存儲、分析、展現) 日誌易
    • 6.安全監控 Firewalld、WAF(Nginx+lua)、安全寶、牛盾雲、安全狗
    • 7.網絡監控 smokeping 多機房
    • 8.業務監控 活動引入多少流量、產生多少註冊量、帶來多大價值

2.單機時代如何監控

1.監控命令參考文檔php

1.CPU監控命令: w、top、htop、glances前端

%Cpu(s):  0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st us 用戶態: 跟用戶的操做有關 35% sy 系統態: 跟內核的處理有關 60% id CPU空閒: 

2.內存監控命令: freenode

[root@ZabbixServer ~]# free -m total used free shared buff/cache available Mem: 974 440 194 4 340 328 Swap: 2047 11 2036 

3.磁盤監控命令: df、iotop、iostat、dstatmysql

[root@ZabbixServer ~]# iotop
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s 

4.網絡監控命令: ifconfig、route、glances、iftop、nethogslinux

[root@ZabbixServer ~]# iftop bgx.com:https => 101.200.101.219:57456 0b 9.53Kb 6.11Kb <= bgx.com:https => 101.200.101.207:65254 0b 3.37Kb 1.12Kb #中間的<= =>這兩個左右箭頭,表示的是流量的方向。 TX: cum: 170KB #發送流量 RX: 37.1KB #接收流量 TOTAL: 208KB #總的流量 #若是單位爲Mbps,換算爲MB須要除以8,好比:100Mbps = 12MB 

5.TCP11狀態監控netstatios

[root@ZabbixServer ~]# netstat -an|grep ESTABLISHED [root@ZabbixServer ~]# netstat -lntup 

6.那單機時代,如何使用shell腳原本實現服務器的監控,好比: 每隔1分鐘監控一次內存,當你的可用內存低於100m,發郵件報警,要求顯示剩餘內存,具體實現思路以下:
1.怎麼獲取內存可用的值free -m|awk '/^Mem/{print $NF}'
2.獲取到內存可用的值如何和設定的閾值進行比較
3.比較若是大於100m則不處理,若是小於100則報警
4.如何每隔1分鐘執行一次
nginx

[root@ZabbixServer ~]# cat free.sh #!/usr/bin/bash HostName=$(hostname)_$(hostname -i) Date=$(date +%F) while true;do Free=$(free -m|awk '/^Mem/{print $NF}') if [ $Free -le 100 ];then echo "$Date: $HostName Mem Is < ${Free}MB" fi sleep 5 done 

7.隨着時間的推移,用戶不斷的增多,服務消耗的內存愈來愈多,當系統內存不足的時候可能會致使系統產生oom(out of memory)
1.當系統內存不足的時候就會大量使用swap
2.當系統大量使用swap的時候,系統會特別卡
注意: 有時可能內存還有剩餘300Mb-500Mb,但會發現swap依然被使用
web

[root@ZabbixServer ~]# dd if=/dev/zero of=/dev/null bs=800M #故障日誌 [root@ZabbixServer ~]# tail -f /var/log/messages Out of memory: Kill process 2227 (dd) score 778 or sacrifice child Killed process 2227 (dd) total-vm:906724kB, anon-rss:798820kB, file-rss:0kB 

3.zabbix監控快速安裝

1.配置Zabbix官方倉庫(也能夠是國內第三方)redis

[root@zabbix-server ~]# https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm 

2.安裝Zabbix-Server、Mariadb-Server、Zabbix-agentsql

[root@zabbix-server ~]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server 

3.建立Zabbix庫,而且受權zabbix用戶能訪問該數據庫(建立庫必須指定字符集)

[root@zabbix-server ~]# mysql -uroot -p MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; 

4.初始化zabbix數據庫,導入數據庫表信息

[root@zabbix-server ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.15/ [root@linux-node1 zabbix-server-mysql-3.4.15]# zcat create.sql.gz |mysql -uroot zabbix 

5.編輯/etc/zabbix/zabbix_server.conf文件,修改zabbix-server鏈接數據庫配置信息

[root@zabbix-server ~]# grep ^[a-Z] /etc/zabbix/zabbix_server.conf .... DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix .... 

6.啓動zabbix-server服務進程,並加入開機自啓

[root@zabbix-server ~]#  systemctl start zabbix-server [root@zabbix-server ~]# systemctl enable zabbix-server 

7.編輯Apache的配置文件/etc/httpd/conf.d/zabbix.conf,修改時區。

[root@zabbix-server ~]# 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 

8.啓動Apache Web服務,並將該服務加入開機自啓

[root@zabbix-server ~]# systemctl start httpd [root@zabbix-server ~]# systemctl enable httpd 

使用瀏覽器訪問zabbix-server服務器地址,進入zabbix嚮導歡迎界面, 直接下一步便可

檢查依賴項是否存在任何異常

配置zabbix-Web鏈接數據庫信息

配置ZabbixServer服務器的主機名或主機IP地址和端口號, 以及安裝的名稱(可選)

安裝前摘要,檢查配置參數。若是一切都正確,請按"下一步"按鈕或"後退"按鈕來更改配置參數。

提示已成功地安裝了Zabbix前端。配置文件/etc/zabbix/web/zabbix.conf.php被建立。

默認登錄ZabbixWeb頁面的用戶名Admin,密碼zabbix

調整ZabbixWeb前端爲中文字符集

至此Zabbix已經安裝完畢

4.zabbix快速監控主機

角色 外網IP(NAT) 內網IP(LAN)
Zabbix-Server eth0:10.0.0.71 eth1:172.16.1.71
web01 eth0:10.0.0.7 eth1:172.16.1.7

1.安裝Zabbix-Agent被監控端

[root@web01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.14-1.el7.x86_64.rpm 

2.配置Zabbix-Agent指向Zabbix-Server的IP地址

[root@web01 ~]# vim /etc/zabbix/zabbix_agentd.conf Server=172.16.1.71 

3.啓動Zabbix-Agent,並加入開機自啓。Zabbix-Agent默認監聽10050端口

[root@web01 ~]# systemctl start zabbix-agent [root@web01 ~]# systemctl enable zabbix-agent [root@web01 ~]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1103/zabbix_agentd 

4.配置ZabbixWeb頁面,點擊配置->點擊主機->建立主機->填寫被監控端主機信息

5.點擊模板->選擇鏈接指示器->選擇->搜索Linux->點擊小按鈕添加->最後添加

5.Zabbix監控基礎架構

zabbix-agent(數據採集)-->zabbix-server(數據分析|報警)--> 數據庫(數據存儲)<--zabbix web(數據展現)

Zabbix單臺服務: LNMP+Zabbix
Zabbix數據拆分: LAP+MySQL(修改以下兩個文件中鏈接數據庫的配置信息)

[root@ZabbixServer ~]# ll /etc/zabbix/zabbix_server.conf [root@ZabbixServer ~]# ll /etc/zabbix/web/zabbix.conf.php 

Zabbix拆分數據庫實踐

角色 外網IP(NAT) 內網IP(LAN)
Zabbix-Server eth0:10.0.0.71 eth1:172.16.1.71
MySQL eth0:10.0.0.51 eth1:172.16.1.51

1.在172.16.1.51的數據庫上建立zabbix庫

mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix'; 

2.在172.16.1.71舊的zabbix服務器上備份數據庫文件

[root@ZabbixServer ~]# mysqldump -uroot \
--databases zabbix \ --single-transaction > `date +%F%H`-zabbix.sql 

3.在172.16.1.71上備份zabbix數據庫,並經過遠程的方式導入172.16.1.51新的數據庫中

[root@ZabbixServer ~]# cat 2018-08-2017-zabbix.sql |mysql -h 172.16.1.51 -uzabbix -pBgx123.com zabbix 

4.修改/etc/zabbix/zabbix_server.conf配置文件中數據庫鏈接信息

[root@ZabbixServer ~]# vim /etc/zabbix/zabbix_server.conf DBHost=172.16.1.51 DBName=zabbix DBUser=zabbix DBPassword=zabbix #重載zabbix-server服務 [root@ZabbixServer ~]# systemctl restart zabbix-server 

5.修改/etc/zabbix/web/zabbix.conf.php配置文件中數據庫鏈接信息

[root@ZabbixServer ~]# vim /etc/zabbix/web/zabbix.conf.php $DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = '172.16.1.51'; $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'Bgx123.com'; [root@ZabbixServer ~]# systemctl restart httpd # 如出現以下錯誤:請檢查數據庫是否容許遠程鏈接,對應的帳戶和密碼是否配置錯誤 [root@ZabbixServer ~]# tail -f /var/log/zabbix/zabbix_server.log 2189:20180820:173636.941 [Z3001] connection to database 'zabbix' failed: [2003] Can't connect to MySQL server on '172.16.1.51' (111) 
相關文章
相關標籤/搜索