《架構師之運維監控》php
PS:監控是什麼,運維喝茶之道。html
(凡人)前端
1.識別監控對象(分級)node
2.理解監控對象(理論知識)mysql
3.細分監控對象的指標linux
4.肯定告警的基準線nginx
預中級(築基)web
1.工具化和監控分離sql
2.監控對象的分類:數據庫
2.1硬件監控(方法:機房巡檢,IPMI,SNMP) https://www.ibm.com/developerworks/cn/linux/l-ipmi/index.html # yum install OpenIPMI ipmitool -y systemctl start ipmi
2.2系統監控(對象:CPU,內存,IO(磁盤,網絡)
2.3服務監控(對象:各種服務(nginx|tomcat|RabbitMQ|mysql..)
2.4日誌監控(方法:Elastic Stack)
2.5網絡監控(方法:第三方,smokeping)
2.6APM應用性能管理(工具:PINpoint)
2.7流量監控(工具:piwik,XX統計,XX分析)
2.8其餘監控(APP監控,安全監控,業務監控,輿論監控,等等)
3.掌握一個監控工具,例如zabbix
中級(元嬰)
1.標準化監控(標準化的腳本,模板)
2.分佈式監控(主動,被動,分佈式)
3.性能優化(數據採集,數據存儲,數據查詢)
4.二次開發(定製報表,API調用,XXX)
進階(渡劫 從精通到放棄)
1.告警閾值動態化
2.智能告警:1告警去重 2.依賴
3.故障自愈(事件驅動,主動控住)
4.大規模
#####################經過硬件來監控
https://www.ibm.com/developerworks/cn/linux/l-ipmi/index.html
# yum install OpenIPMI ipmitool -y
#systemctl start ipmi
###############經過snmp監控
root@cobbler ~]# yum install -y net-snmp net-snmp-libs -y
[root@cobbler ~]# vim /etc/snmp/snmpd.conf
41 com2sec admin default admin ##### 配置的用戶 團體名稱
48 group admin v2c admin ##### 定義組 把用戶放入組裏 第一個admin是用戶 v2c是協議 第二個admin是組
57 view admin included .1 80 #### 賦予權限由於是樹結構 .1是全部權限
64 access admin "" any noauth exact admin admin none ####用戶組admin ##不須要驗證 ####admin用戶
[root@cobbler ~]# systemctl start snmpd ######開啓服務 [root@cobbler ~]# ss -ln |grep 161 udp UNCONN 0 0 *:161 *:* #####snmp 默認是UDP協議,161端口
[root@cobbler ~]# snmpget -v2c -c admin 192.168.1.102 .1.3.6.1.4.1.2021.10.1.3.1 ###檢測CPU
https://blog.csdn.net/apple_llb/article/details/50494787 #####具體一些監控項看這個網頁內容
########系統監控
CPU :
進程:每個進程,至少有一個線程。
每一個進程能夠有多個線程
負載:單位時間內運行隊列中就緒等待的進程
內存:
虛擬內存,swap,物理內存
內存頁
IO 須要yum安裝
iotop
iftop
nethogs
zabbix部署
1.時間同步
[root@cobbler ~]# yum install -y ntpdate
[root@cobbler ~]# echo '* * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null' >> /var/spool/cron/root
[root@cobbler ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm ###下載安裝包
[root@cobbler yum.repos.d]# yum install -y http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm ####將zabbix加入yum源
[root@cobbler yum.repos.d]# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent#########zabbixweb前端程序 zabbix服務端程序
[root@cobbler yum.repos.d]# yum install -y mariadb-server ###########安裝數據庫
[root@cobbler yum.repos.d]# systemctl enable mariadb.service ##########開機自啓
[root@cobbler yum.repos.d]# systemctl start mariadb.service ##########啓動數據庫
[root@cobbler yum.repos.d]# ss -ln|grep 3306 #####查看端口
[root@cobbler yum.repos.d]# mysql_secure_installation ########初始化設置密碼
[root@cobbler yum.repos.d]#mysql -u root -p 密碼 進數據庫
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; ### 建立數據庫zabbix設置字符集編碼utf-8
MariaDB [(none)]> grant all on zabbix.* to zabbix@'localhost'identified by '123.com'; Query OK, 0 rows affected (0.00 sec) ############設置用戶 以及密碼
MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec) #####跟新權限
[root@cobbler yum.repos.d]# zcat /usr/share/doc/zabbix-server-mysql-3.4.8/create.sql.gz|mysql -uzabbix -p123.com zabbix ########導入數據庫 以及zabbix登陸
[root@cobbler yum.repos.d]# vim /etc/httpd/conf/httpd.conf ####
ServerName 127.0.0.1:80 更改95行
[root@cobbler yum.repos.d]# systemctl enable httpd
[root@cobbler yum.repos.d]# systemctl start httpd
[root@cobbler yum.repos.d]# vim /etc/httpd/conf.d/zabbix.conf ###################更改時區
19 php_value date.timezone Asia/Shanghai
[root@node1 ~]# systemctl restart httpd
瀏覽器打開 http://192.168.1.102/zabbix/setup.php
由於倒入數據庫 zabbix登陸的初始密碼是Admin zabbix
[root@cobbler yum.repos.d]# vim /etc/zabbix/zabbix_server.conf #########配置zabbixserver密碼
126 DBPassword=123.com
[root@cobbler yum.repos.d]# systemctl enable zabbix-server.service ####### 開機自啓
[root@cobbler yum.repos.d]# systemctl start zabbix-server.service #####啓動
##############若是頁面一直zabbix-server報錯沒啓動的話 就得重啓服務了,這個鬼無解 看日誌仍是
[root@cobbler yum.repos.d]# vim /etc/zabbix/zabbix_agentd.conf ###### 編輯文件
97 Server=127.0.0.1 ##########指的是誰能夠拿到數據 寫server主機IP
138 ServerActive=127.0.0.1 ################# 主動模式下 寫的也是服務器主機IP
[root@cobbler yum.repos.d]# systemctl enable zabbix-agent.service
[root@cobbler yum.repos.d]# systemctl start zabbix-agent.service
##########在配置界面選擇configuration-----hosts----create-----添加主機------templates選擇模板----建立
[root@node1 ~]# zabbix_get -s node2 -k agent.ping #############若是不通能夠手動檢測
############添加自定義的items
cd /etc/zabbix/zabbix_agentd.d
[root@node2 zabbix_agentd.d]# vim monitor_file.conf 自定義模板文件
UserParameter=monitor_file,stat -c %s /etc/services ####監控文件大小
[root@node2 zabbix_agentd.d]# systemctl restart zabbix-agent.service
開始建立itmes------------configuration-----hosts---itmes---create-itmes
##########想查看本身添加的是否成功能夠---monitoring---latestdata
###建立triggers ----configuration---host---triggers--create-
###########定義監控級別
####定義郵箱地址
#################用什麼帳號發
3.監控web,mysql三部曲
監控mysql
[root@node2 ~]# yum install -y mariadb-server
帶密碼的監控
root@node2 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
mysql
MariaDB [(none)]> grant all on *.* to zabbix@'localhost' identified by '123.com';
MariaDB [(none)]> flush privileges;
[root@node2 ~]# systemctl restart zabbix-agent.service
多個數據監控修改配置文件使用¥化
[root@node2 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.status[*],echo "show global status where Variable_name='$3';" | HOME=/var/lib/zabbix mysql -u$1 -p$2 -N | awk '{print $$2}'
UserParameter=mysql.ping[*],HOME=/var/lib/zabbix mysqladmin -u$1 -p$2 ping | grep -c alive
[root@node2 ~]# systemctl restart zabbix-agent.service
[root@node1 ~]# zabbix_get -s 192.168.1.104 -k mysql.status[zabbix,123.com,Uptime]
TCP監控
root@node2 zabbix_agentd.d]# vim TCP_status.conf
UserParameter=TCP_status[*],netstat -ant|grep -c $1
[root@node1 ~]# zabbix_get -s 192.168.1.104 -k TCP_status[TIME_WAIT]
克隆來依次建立tcp的狀態 ##ESTABLISHED
SYN_SENT
SYN_RECV
FIN_WAIT1
FIN_WAIT2
TIME_WAIT
CLOSE
CLOSE_WAIT
LAST_ACK
LISTEN
CLOSING
UNKNOWN
####監控nginx