一、監控的要點:
1、概述
從入門到精通
- 識別監控對象
- 理解監控對象
- 細分監控對象的指標
- 確定報警的基準線
預中級
- 工具化和監控分離
- 監控對象的分類:
2.1 硬件監控(方法:機房巡檢、IPMI、SNMP)
2.2 系統監控(對象:cpu,內存、IO)
2.3 服務監控(對象:各類服務【NGINX、Tomcat、rabbitmq、OpenStack、mysql】)
2.4 日誌監控(方法:elk)
2.5 網絡監控(發放:第三方Smokeping)
2.6 APM應用性能管理 (工具pinpoint)
2.7 流量監控(工具Piwik、xx統計) - 掌握一個監控工具 zabbix
中級
- 標準化監控 (標準化的腳本、監控模板)
- 分佈式監控(主動、被動、分佈式)
- 自動化監控(自動發現,主動註冊(agent主動註冊、server主動添加(API)))
- 性能優化(數據採集、數據存儲、數據查詢)
- 二次開發(定製報表、API調用)
進階
- 動態告警
- 智能告警:1.告警去重 2.依賴
- 故障自愈(事件驅動、主動控制)
- 大規模
2、硬件監控
-
機房巡檢
- 通過網絡來巡檢
ipmi
yum -y install OpenIPMI ipmitool
具體參考:https://www.ibm.com/developerworks/cn/linux/l-ipmi/
SNMP
具體參考:https://blog.csdn.net/HandsomeHong/article/details/80016249
安裝snmp
yum -y install net-snmp net-snmp-libs net-snmp-utils
修改配置
[root@k8s-m1 ~]# grep '^[a-z]' /etc/snmp/snmpd.conf
com2sec admin default admin
group admin v2c admin
view admin included .1 80
access admin "" any noauth exact admin admin none
syslocation Unknown (edit /etc/snmp/snmpd.conf)
syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
dontLogTCPWrappersConnects yes
啓動服務
systemctl start snmpd
netstat -lntpu |grep 161
udp 0 0 0.0.0.0:161 0.0.0.0:* 17023/snmpd
獲取cpu內存
[root@k8s-m1 ~]# snmpwalk -v2c -c admin 10.201.1.145 .1.3.6.1.4.1.2021.10.1.3
UCD-SNMP-MIB::laLoad.1 = STRING: 0.01
UCD-SNMP-MIB::laLoad.2 = STRING: 0.04
UCD-SNMP-MIB::laLoad.3 = STRING: 0.05
[root@k8s-m1 ~]# snmpget -v2c -c admin 10.201.1.145 .1.3.6.1.4.1.2021.10.1.3.1
UCD-SNMP-MIB::laLoad.1 = STRING: 0.01
[root@k8s-m1 ~]# snmpget -v2c -c admin 10.201.1.145 .1.3.6.1.2.1.25.2.2.0
HOST-RESOURCES-MIB::hrMemorySize.0 = INTEGER: 3880792 KBytes
OID參考文章:https://blog.csdn.net/buster2014/article/details/46925633
3、系統監控
- CPU
參考文章:https://www.cnblogs.com/anyux/p/8195541.html
進程:每個進程至少有一個線程,每個進程可以有多個線程。
負載:單位時間內運行隊列中就緒等待的進程平均值
- 常用監控CPU的指令
top
top - 14:44:13 up 5 days, 20:50, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 107 total, 2 running, 105 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3880792 total, 778556 free, 164584 used, 2937652 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3125052 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
虛擬 物理 共享 佔用cpu總時間
lscpu
[root@k8s-m1 ~]# lscpu
cat /proc/loadavg
cat /proc/loadavg
0.00 0.01 0.05 1/134 17383
sysstat包帶的監控
yum -y install sysstat
vmstat 1 10
mpstat 1 10
- 內存
虛擬內存、SWAP、物理內存
vmstat
vmstat 1 10
free
free -m
3.io
iotop
yum -y install iotop
iotop
測試io參考:https://elf8848.iteye.com/blog/2089055
網絡io
iftop
[root@localhost ~]# iftop
[root@localhost ~]# iftop -i eth0 -F 10.201.1.32/24
nethogs
yum -y install nethogs
nethogs
二、安裝zabbix
1、安裝環境
- 操作系統:CentOS Linux release 7.6.1810 (Core)
- zabbix版本:4.0
- 主機:
IP地址 | 服務類型 |
---|---|
10.201.1.145 | server |
10.201.1.146 | agent |
2、安裝server端
- 添加 Zabbix 軟件倉庫
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum-config-manager --enable rhel-7-server-optional-rpms
- 安裝 Server、前端
yum install zabbix-server-mysql
yum install zabbix-web-mysql
- 安裝數據庫,並初始化
yum -y install mariadb-server
systemctl enable mariadb.service
systemctl start mariadb.service
mysql_secure_installation
創建zabbix庫和授權
mysql -uroot -p<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '123456';
導入數據
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
- 修改配置文件
修改httpd配置
ServerName 127.0.0.1:80 #95行取消註釋
修改Zabbix server配置文件
vi /etc/zabbix/zabbix_server.conf
DBPassword=123456 #124行修改zabbix的密碼
- 啓動服務
systemctl start httpd.service
systemctl enable httpd.service
systemctl start zabbix-server.service
systemctl enable zabbix-server.service
netstat -antpu |grep 10051
- 瀏覽器訪問:10.201.1.145/zabbix
根據提示完成安裝
提示需要修改時區
vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai #20行修改
用戶名: Admin
密碼:zabbix
3、安裝agent端
- yum安裝
yum install zabbix-agent
- 修改配置
[root@k8s-n1 yum.repos.d]# grep '^[A-Z]' /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.201.1.145 #指定server端
ServerActive=10.201.1.145 #指定server端
Include=/etc/zabbix/zabbix_agentd.d/*.conf
- 啓動服務
systemctl start zabbix-agent
systemctl enable zabbix-agent
netstat -antpu |grep 10050