df -h
block、inode
df -h|awk '/\/$/{print $(NF-1)}'
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
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已經安裝完畢
角色 | 外網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->點擊小按鈕添加->最後添加
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)