天天看點

zabbix自動發現mysql端口并監控

一、需求:     

   因為我們是遊戲業務,要用到mysql,一個伺服器上面跑多個mysql執行個體也是很正常。如果單獨手動一台台修改agent.conf,添加web監控,太費時費力。是以就想的要用zabbix 的自動發現來監控

二、配置Agent

1.編寫自動發現端口腳本

<code>[root@</code><code>test</code> <code>~]</code><code># cat /etc/zabbix/alertscripts/zabbix_discovery_mysql.sh </code>

<code>#!/bin/bash</code>

<code>mysql() {</code>

<code>            </code><code>port=($(</code><code>sudo</code> <code>netstat</code> <code>-tpln | </code><code>awk</code> <code>-F </code><code>"[ :]+"</code> <code>'/[m]ysql/'</code> <code>| </code><code>awk</code> <code>-F: </code><code>'{print $4}'</code><code>))</code>

<code>            </code><code>printf</code> <code>'{\n'</code>

<code>            </code><code>printf</code> <code>'\t"data":[\n'</code>

<code>               </code><code>for</code> <code>key </code><code>in</code> <code>${!port[@]}</code>

<code>                   </code><code>do</code>

<code>                       </code><code>if</code> <code>[[ </code><code>"${#port[@]}"</code> <code>-gt 1 &amp;&amp; </code><code>"${key}"</code> <code>-</code><code>ne</code> <code>"$((${#port[@]}-1))"</code> <code>]];</code><code>then</code>

<code>              </code><code>socket=`</code><code>ps</code> <code>aux|</code><code>grep</code> <code>${port[${key}]}|</code><code>grep</code> <code>-</code><code>v</code> <code>grep</code><code>|</code><code>awk</code> <code>-F </code><code>'='</code> <code>'{print $10}'</code><code>|</code><code>cut</code> <code>-d </code><code>' '</code> <code>-f 1`</code>

<code>                          </code><code>printf</code> <code>'\t {\n'</code>

<code>                          </code><code>printf</code> <code>"\t\t\t\"{#MYSQLPORT}\":\"${port[${key}]}\"},\n"</code>

<code>                     </code><code>else</code> <code>[[ </code><code>"${key}"</code> <code>-</code><code>eq</code> <code>"((${#port[@]}-1))"</code> <code>]]</code>

<code>                          </code><code>printf</code> <code>"\t\t\t\"{#MYSQLPORT}\":\"${port[${key}]}\"}\n"</code>

<code>                       </code><code>fi</code>

<code>               </code><code>done</code>

<code>                          </code><code>printf</code> <code>'\t ]\n'</code>

<code>                          </code><code>printf</code> <code>'}\n'</code>

<code>}</code>

<code>$1</code>

2.賦權

<code>賦執行權限 </code><code>chmod</code> <code>755  </code><code>/etc/zabbix/alertscripts/zabbix_discovery_mysql</code><code>.sh </code>

<code>修改屬組 </code><code>chown</code>  <code>zabbix.zabbix </code><code>/etc/zabbix/alertscripts/zabbix_discovery_mysql</code><code>.sh</code>

3.測試腳本效果

<code>[root@</code><code>test</code> <code>~]</code><code># /etc/zabbix/alertscripts/zabbix_discovery_mysql.sh  mysql</code>

<code>{</code>

<code>        </code><code>"data"</code><code>:[</code>

<code>         </code><code>{</code>

<code>                        </code><code>"{#MYSQLPORT}"</code><code>:</code><code>"3306"</code><code>}</code>

<code>         </code><code>]</code>

4.配置agent.conf

<code>[root@</code><code>test</code> <code>~]</code><code># cat /etc/zabbix/zabbix_agentd.conf | grep Include</code>

<code>### Option: Include</code>

<code># Include=</code>

<code># Include=/usr/local/etc/zabbix_agentd.userparams.conf</code>

<code># Include=/usr/local/etc/zabbix_agentd.conf.d/</code>

<code>Include=</code><code>/etc/zabbix/zabbix_agentd</code><code>.conf.d/*.conf</code>

<code>[root@</code><code>test</code> <code>zabbix_agentd.conf.d]</code><code># cat check_mysql.conf </code>

<code>UserParameter=mysql.discovery[*],</code><code>/etc/zabbix/alertscripts/zabbix_discovery_mysql</code><code>.sh  $1</code>

<code>UserParameter=mysql_stats[*],</code><code>/usr/bin/mysql</code> <code>--defaults-</code><code>file</code><code>=</code><code>/home/zabbix/</code><code>.my.cnf -P $1  -e </code><code>"show global status"</code><code>|</code><code>grep</code> <code>"\&lt;$2\&gt;"</code><code>|</code><code>cut</code>  <code>-f2</code>

5.sudo權限

<code>#Defaults    requiretty</code>

<code>Defaults:zabbix    !requiretty</code>

<code>zabbix  ALL=(root)      NOPASSWD:</code><code>/bin/netstat</code><code>,</code><code>/usr/bin/mysql</code>

6.建立zabbix查詢mysql使用者

<code>GRANT</code> <code>PROCESS </code><code>ON</code> <code>*.* </code><code>TO</code> <code>'zabbix'</code><code>@</code><code>'localhost'</code> <code>identified </code><code>BY</code> <code>'zabbix'</code><code>;</code>

<code>Flush </code><code>privileges</code><code>;</code>

注意:Warning: Using a password on the command line interface can be insecure.

因為mysql5.6不能使用明文密碼登入,是以這裡要建立一個檔案用來指定使用者名密碼

7.建立mysql.cnf檔案

<code>[root@</code><code>test</code> <code>zabbix]</code><code># cat /home/zabbix/.my.cnf </code>

<code>[client]</code>

<code>user=zabbix</code>

<code>password=zabbix</code>

<code>host=localhost</code>

<code>chown</code> <code>zabbix.zabbix </code><code>/home/zabbix/</code><code>.my.cnf</code>

<code>chmod</code> <code>600  </code><code>/home/zabbix/</code><code>.my.cnf</code>

8.重新開機agent服務

<code>service zabbix_agentd restart</code>

9.測試

<code>[root@</code><code>test</code> <code>alertscripts]</code><code># /usr/local/zabbix/bin/zabbix_get  -s 127.0.0.1 -k mysql_stats[3306,Uptime]</code>

<code>3862</code>

<code>[root@</code><code>test</code> <code>alertscripts]</code><code># /usr/local/zabbix/bin/zabbix_get  -s 127.0.0.1 -k mysql.discovery[mysql]</code>

三、配置web

添加模闆

<a href="http://s2.51cto.com/wyfs02/M00/89/C3/wKiom1gb8lPw46j_AABXERmpMik442.png" target="_blank"></a>

2.建立應用

<a href="http://s2.51cto.com/wyfs02/M01/89/C1/wKioL1gb8oKwiNNFAABCxlwXGvo462.png" target="_blank"></a>

3.建立自動發現規則

<a href="http://s4.51cto.com/wyfs02/M00/89/C1/wKioL1gb8qaRQkWPAABo6IY2yaU666.png" target="_blank"></a>

4.建立監控項

<a href="http://s2.51cto.com/wyfs02/M02/89/C3/wKiom1gb8sWixaC_AACbL6A-5Ic397.png" target="_blank"></a>

5.建立圖形

<a href="http://s3.51cto.com/wyfs02/M00/89/C3/wKiom1gb8t2BzqUaAACdXx_ToXc854.png" target="_blank"></a>

6.主機連結模闆

7.檢視監控資料

<a href="http://s5.51cto.com/wyfs02/M01/89/C3/wKiom1gb8vzSVdckAAB6IawU660105.png" target="_blank"></a>

本文轉自 shouhou2581314 51CTO部落格,原文連結:http://blog.51cto.com/thedream/1869233,如需轉載請自行聯系原作者

繼續閱讀