第1章 Grafana自定義圖形
1.安裝grafana
[root@m01 /data/soft]# wget https://dl.grafana.com/oss/release/grafana-6.3.2-1.x86_64.rpm
[root@m01 /data/soft]# yum localinstall grafana-6.3.2-1.x86_64.rpm -y
[root@m01 /data/soft]# systemctl start grafana-server.service
[root@m01 /data/soft]# systemctl enable grafana-server.service
訪問grafana:http://10.0.0.61:3000
賬號密碼:admin admin

2.安裝并激活zabbix插件
[root@m01 ~]# grafana-cli plugins list-remote|grep zabbix
id: alexanderzobnin-zabbix-app version: 3.10.4
[root@m01 ~]# grafana-cli plugins install alexanderzobnin-zabbix-app
[root@m01 ~]# systemctl restart grafana-server.service
網頁操作-激活zabbix插件

網頁操作-添加zabbix資料源



網頁操作-匯入模版

3.資料展示

4.自定義圖形儀表盤






5.自定義圖形餅圖
1.安裝插件
在線安裝方式
grafana-cli plugins install grafana-piechart-panel
離線安裝方式
wget -nv https://grafana.com/api/plugins/grafana-piechart-panel/versions/latest/download -O /tmp/grafana-piechart-panel.zip
unzip -q /tmp/grafana-piechart-panel.zip -d /tmp
mv /tmp/grafana-piechart-panel-* /var/lib/grafana/plugins/grafana-piechart-panel
service grafana-server restart
2.配置圖形




第2章 percona模版監控mysql
參考強哥的博客
https://www.qstack.com.cn/archives/213.html
1.安裝php環境
percona需要php環境
mkdir /data/soft -p
[root@m01 /data/soft]# yum install php php-mysql -y
2.下載軟體


注意,安裝完成后會有提示模版的路徑位置
[root@m01 ~]# cd /data/soft/
[root@m01 /data/soft]# wget https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm
[root@m01 /data/soft]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
警告:percona-zabbix-templates-1.1.8-1.noarch.rpm: 頭V4 DSA/SHA1 Signature, 密鑰 ID cd2efd2a: NOKEY
準備中... ################################# [100%]
正在升級/安裝...
1:percona-zabbix-templates-1.1.8-1 ################################# [100%]
Scripts are installed to /var/lib/zabbix/percona/scripts
Templates are installed to /var/lib/zabbix/percona/templates
3.查看目錄
進入安裝目錄會發現有2個目錄,一個是腳本目錄,一個是模版目錄
[root@m01 ~]# cd /var/lib/zabbix/percona/
[root@m01 /var/lib/zabbix/percona]# tree
.
├── scripts
│ ├── get_mysql_stats_wrapper.sh
│ └── ss_get_mysql_stats.php
└── templates
├── userparameter_percona_mysql.conf
└── zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
其中腳本目錄里有2個腳本,用來獲取資料庫資訊
[root@m01 /var/lib/zabbix/percona]# cd scripts/
[root@m01 /var/lib/zabbix/percona/scripts]# ls
get_mysql_stats_wrapper.sh ss_get_mysql_stats.php
4.修改get_mysql_stats_wrapper.sh
修改get_mysql_stats_wrapper資料庫登陸資訊
第19行添加mysql賬號密碼
[root@m01 v]# sed -n '19p' get_mysql_stats_wrapper.sh
RES=`HOME=~zabbix mysql -uroot -p123456 -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n'
5.修改ss_get_mysql_stats.php
[root@m01 /var/lib/zabbix/percona/scripts]# sed -n '30,31p' ss_get_mysql_stats.php
$mysql_user = 'root';
$mysql_pass = '123456';
6.復制自定義監控項組態檔到zabbix目錄
[root@m01 ~]# cd /var/lib/zabbix/percona/templates/
[root@m01 /var/lib/zabbix/percona/templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@m01 /var/lib/zabbix/percona/templates]# cd /etc/zabbix/zabbix_agentd.d/
[root@m01 /etc/zabbix/zabbix_agentd.d]# ls
userparameter_mysql.conf userparameter_percona_mysql.conf
7.重啟agent
[root@m01 ~]# systemctl restart zabbix-agent
8.測驗key
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k MySQL.Sort-scan #注意ip地址本機127.0.0.1
16
9.匯入模版
官方自帶的模版有點問題,需要先裝在2.x版本然后匯出來,這里使用網友已經修改好的模版上傳
http://pan.baidu.com/s/1pL1wDYj

10.主機鏈接模版

xx.報錯解決
查看監控發現沒有資料顯示不支持型別
查看zabbix-server發現因為tmp的檔案沒有權限,因為剛才手動執行了腳本,所以檔案屬性是root,將檔案洗掉后由zabbix自己創建解決問題
報錯日志如下:
2846:20190811:202708.785 item "Zabbix server:MySQL.State-init" became not supported: Value "rm: 無法洗掉"/tmp/localhost-mysql_cacti_stats.txt": 不允許的操作
0" of type "string" is not suitable for value type "Numeric (float)"
2843:20190811:202709.787 item "Zabbix server:MySQL.State-locked" became not supported: Value "rm: 無法洗掉"/tmp/localhost-mysql_cacti_stats.txt": 不允許的操作
0" of type "string" is not suitable for value type "Numeric (float)"
2844:20190811:202710.788 item "Zabbix server:MySQL.State-login" became not supported: Value "rm: 無法洗掉"/tmp/localhost-mysql_cacti_stats.txt": 不允許的操作
0" of type "string" is not suitable for value type "Numeric (float)"
第3章 自動發現和自動注冊
1.自動發現
web頁面操作

image.png



2.自動注冊
修改zabbix-agent組態檔
[root@web02 ~]# cat /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.1.61
ServerActive=10.0.1.61
Hostname=web02
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#重啟
systemctl restart zabbix-agent
web頁面操作




重繪查看發現已經添加上了

第4章 主動模式和被動模式
默認為被動模式:100個監控項要100個來回,要的時候才回傳
主動模式:100個監控項1個回合,將所需要的100個打包,然后一次發過去,發過去之后,客戶端全部執行完再一次回傳給服務端,
1.克隆模版
完全克隆原來被動模式的模版為主動模式


2.修改克隆后的模版為主動模式




3.修改監控主機關聯的模版為主動模式

4.修改客戶端組態檔并重啟
[root@web01 ~]# cat /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.1.61
ServerActive=10.0.1.61
Hostname=web01
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@web01 ~]# systemctl restart zabbix-agent.service
5.查看最新資料
發現獲取資料的時間是一樣的

第5章 低級自動發現
監控埠自動發現
1.查看系統自帶磁區自動發現
系統自帶的自動發現會顯示紅字,比如自帶的磁盤磁區發現規則


1.查看zabbbix所有的key過濾后展示

2.決議成json后的格式

3.過濾規則
實質上是從mount命令獲取的磁區名和型別

image.png
但是我們zabbix顯示的并沒有這么多
是因為做了正則運算式過濾

而正則運算式是在管理里面配置的

4.使用zabbix_get獲取key
因為根據過濾規則,只發現了一個xfs的key,使用zabbix_get可以查看到這個key
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k vfs.fs.size[{#FSNAME},free]
ZBX_NOTSUPPORTED: Cannot obtain filesystem information: [2] No such file or directory
[root@m01 ~]# zabbix_agentd -p|grep vfs.fs.size
vfs.fs.size[/,free] [u|15713636352]
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k vfs.fs.size[/,free]
15713693696
2.查看系統自帶的網卡自動發現
1.查看網路自動發現規則

2.過濾規則


2.命令列過濾
[root@m01 ~]# zabbix_agentd -p|grep net.if.discovery
net.if.discovery [s|{"data":[{"{#IFNAME}":"tun0"},{"{#IFNAME}":"eth0"},{"{#IFNAME}":"eth1"},{"{#IFNAME}":"lo"}]}]
3.查看自動添加的監控項
我們會發現添加了四個監控項
2個eth0
2個eth1


4.查看key的值
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k net.if.in[eth0]
2191453
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k net.if.in[eth1]
7152
3.監控mysql多實體
參考強哥博客
[https://www.qstack.com.cn/archives/108.html](https://www.qstack.com.cn/archives/108.html)
1.復制并修改資料庫組態檔
yum -y install mariadb-servier
systemctl start mariadb
[root@m01 ~]# cp /etc/my.cnf /etc/my3307.cnf
[root@m01 ~]# vim /etc/my3307.cnf
[root@m01 ~]# cat /etc/my3307.cnf
[mysqld]
datadir=/data/3307/
socket=/data/3307/mysql.sock
port=3307
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/data/3307/mysqld.log
pid-file=/data/3307/mysqld.pid
[root@m01 ~]# cp /etc/my3307.cnf /etc/my3308.cnf
[root@m01 ~]# sed -i 's#3307#3308#g' /etc/my3308.cnf
2.創建資料目錄并初始化
[root@m01 ~]# mkdir /data/{3307,3308} -p
[root@m01 ~]# chown -R mysql:mysql /data/330*
[root@m01 ~]# mysql_install_db --user=mysql --defaults-file=/etc/my3307.cnf --force
[root@m01 ~]# mysql_install_db --user=mysql --defaults-file=/etc/my3308.cnf --force
3.啟動多實體
[root@m01 ~]# mysqld_safe --defaults-file=/etc/my3307.cnf &
[root@m01 ~]# mysqld_safe --defaults-file=/etc/my3308.cnf &
4.檢查埠
[root@m01 ~]# netstat -lntup|grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2042/mysqld
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 84790/mysqld
tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 85439/mysqld
5.創建自動發現組態檔
[root@m01 ~]# cat /etc/zabbix/zabbix_agentd.d/mysql_discovery.conf
UserParameter=mysql.discovery,/bin/bash /server/scripts/mysql_discovery.sh
#授權
[root@m01 ~]# chmod u+s /usr/bin/netstat
rm -rf userparameter_mysql.conf #或者最備份移走
#重啟客戶端
[root@m01 ~]# systemctl restart zabbix-agent.service
6.創建自動發現多實體腳本
[root@m01 ~]# cat /server/scripts/mysql_discovery.sh
#!/bin/bash
#mysql low-level discovery
res=$(netstat -lntp|awk -F "[ :\t]+" '/mysqld/{print$5}')
port=($res)
printf '{'
printf '"data":['
for key in ${!port[@]}
do
if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then
printf '{'
printf "\"{#MYSQLPORT}\":\"${port[${key}]}\"},"
else [[ "${key}" -eq "((${#port[@]}-1))" ]]
printf '{'
printf "\"{#MYSQLPORT}\":\"${port[${key}]}\"}"
fi
done
printf ']'
printf '}\n'
7.測驗自動發現腳本
[root@m01 ~]# bash /server/scripts/mysql_discovery.sh
{"data":[{"{#MYSQLPORT}":"3306"},{"{#MYSQLPORT}":"3307"},{"{#MYSQLPORT}":"3308"}]}
報錯:.zabbix_get測驗取key
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k mysql.discovery
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
{"data":[]}
這時我們發現取不出來并提示了個錯誤
原因是zabbix用戶不能使用netstat的-p引數
解決方法為給netstat命令添加s權限
[root@m01 ~]# which netstat
/usr/bin/netstat
[root@m01 ~]# chmod u+s /usr/bin/netstat
然后再次測驗就發現可以取到值了
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k mysql.discovery
{"data":[{"{#MYSQLPORT}":"3306"},{"{#MYSQLPORT}":"3307"},{"{#MYSQLPORT}":"3308"}]}
擴展一臺多實體
#.db02安裝多實體
yum install mariadb-server -y
systemctl start mariadb
cat >/etc/my3310.cnf<<EOF
[mysqld]
datadir=/data/3310/
socket=/data/3310/mysql.sock
port=3310
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/data/3310/mysqld.log
pid-file=/data/3310/mysqld.pid
EOF
cp /etc/my3310.cnf /etc/my3311.cnf
sed -i 's#3310#3311#g' /etc/my3311.cnf
mkdir /data/{3310,3311} -p
chown -R mysql:mysql /data/330*
mysql_install_db --user=mysql --defaults-file=/etc/my3310.cnf --force
mysql_install_db --user=mysql --defaults-file=/etc/my3311.cnf --force
mysqld_safe --defaults-file=/etc/my3310.cnf &
mysqld_safe --defaults-file=/etc/my3311.cnf &
netstat -lntup|grep mysql
#.web02復制web01的資料
chmod u+s /usr/bin/netstat
rm -rf userparameter_mysql.conf
scp 10.0.0.7:/etc/zabbix/zabbix_agentd.d/* /etc/zabbix/zabbix_agentd.d/
systemctl restart zabbix-agent
#.web02關聯模板
8.web頁面創建自動發現規則模版

創建模版

創建自動發現規則

設定過濾規則

創建過濾 規則
11.模仿zabbix自帶的mysql監控配置修改監控項
場景要求:
場景1:
有2臺mysql資料庫
每一臺都是多實體
每個mysql實體都要監控指標uptime
db01: 3306 3307 3308
db02: 3309 3310 3311
shell命令如何實作
mysql -uroot -p123456 -P 3307 -e "show status where Variable_name='uptime';"
mysql -uroot -p123456 -P 3308 -e "show status where Variable_name='uptime';"
mysql -uroot -p123456 -P 3309 -e "show status where Variable_name='uptime';"
使用低級自動發現添加mysql埠
1.創建多實體(同上)
2.創建zabbix低級自動組態檔
vim /etc/zabbix/zabbix_agentd.d/mysql_uptime.conf
UserParameter=mysql.status[*],mysql -h127.0.0.1 -P$2 -N -e "show global status where Variable_name='$1';" | awk '{print $$2}'
#授權
[root@m01 ~]# chmod u+s /usr/bin/netstat
mv /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf /tmp
[root@m01 ~]# systemctl restart zabbix-agent.service
3.測驗訪問監控項 :服務端
[root@m01 ~]# zabbix_get -s 10.0.0.9 -k mysql.status[Uptime,3309]
13.web頁面添加監控項原型

監控項原型
12.web頁面設定主機關聯模版

主機關聯模版
13.查看是否已經自動添加成功

web首頁的優化
1安裝,找到一個首頁

2.zabbix -web界面配置

3.查詢首頁狀態

4.配置場景


4.配置關聯主機


5.查看狀態
6.配置觸發器


7.修改組態檔
location / {
return 404
root html;
index index.html index.htm;
}
第6章 性能優化
1.監控資料分析
zabbix監控主機和監控項較少的時候,不需要優化
資料庫 200臺主機 * 200個監控項 = 40000監控項/30秒 = 1333次寫入/每秒
寫多 讀少
2.優化思路
1.mariadb 5.5 innodb 升級到mysql5.7 tokudb
2.去掉無用監控項,增加監控項的取值間隔,減少歷史資料的保存周期
3.被動模式改為主動模式
4.針對zabbix-server行程數量調優
5.針對zabbix-server快取調優,誰的剩余記憶體少,就加大他的快取
6.固態硬碟 大記憶體
7.zabbix proxy (上千臺.做代理匯總)
3.升級存盤引擎
TokuDB性能比InnoDB要好
實施步驟:
1.找一臺機器安裝好mysql5.7
2.將mariadb的資料匯出,然后替換sql檔案里的存盤引擎為TokuDB
3.將替換之后的資料匯入到mysql5.7
4.停掉mariadb
5.檢查測驗
4.優化行程數

可以人為制造行程繁忙,把自動發現調整IP范圍為1-254

這個時候觀察會發現自動發現行程變得繁忙了
修改行程數
[root@zabbix-11 ~]# grep "^StartDiscoverers" /etc/zabbix/zabbix_server.conf
StartDiscoverers=10
[root@zabbix-11 ~]# systemctl restart zabbix-server.service
調整之后發現行程不這么繁忙了

5.快取調優

調整組態檔
[root@zabbix-11 ~]# grep "^Cache" /etc/zabbix/zabbix_server.conf
CacheSize=128M
第7章 zabbix高可用
思路:
2臺zabbix-server使用keepavied做高可用
資料庫做主從復制
keepalived兩端都做backup角色,設定不搶占VIP
keepalived設定如果發生改變就將自身的從庫資料庫修改為主庫設定
然后另一臺修復上線后,手動介入重新做主從同步,變成從庫
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/190375.html
標籤:其他
上一篇:數字信號處理大作業——基于matlab R2019a的男聲變女聲資料匯總與代碼
下一篇:計算機要點概述
