• zabbix6.4告警配置(短信告警和邮件告警),脚本触发


    一、前提

    1. 已经搭建好zabbix-server
      在这里插入图片描述
    2. 在需要监控的mysql服务器上安装zabbix-agent2
      在这里插入图片描述
      上述安装步骤参考我的上篇文章:通过docker容器安装zabbix6.4.12图文详解(监控服务器docker容器)

    二、告警配置

    1.邮件告警脚本配置

    1. 进入zabbix-server-mysql容器内部
    docker exec -it zabbix-server-mysql bash
    
    • 1
    1. 进入zabbix-server-mysql容器中存放脚本文件的文件夹
    cd /usr/lib/zabbix/alertscripts
    
    • 1
    1. 在该文件夹下创建.sh的脚本文件
    vi sendmail.sh 
    
    • 1

    如图所示:
    在这里插入图片描述

    1. 添加脚本内容。注,该文件运行的时候在容器内部,不能使用curl调用url接口,需要使用wget

    脚本内容如下:

    #!/bin/bash  ## 指定脚本文件使用bash解释器来执行
    
    send_email() {
        mail_address=$1
        title=$2
        content=$3
        ##这里修改成你自己的邮件api接口
        url='http://xxx.xxx.xxx.xxx:xxxx/ITExceptionV1/SendMail/SendToMail' 
        data="{\"mailAddress\": \"$mail_address\", \"toTitle\": \"$title\", \"toInfo\": \"$content\"}"
    
        echo $data > temp.json
        response=$(wget -qO- --post-file=temp.json $url)
    
        if [ $? -eq 0 ]; then
            echo 'SUCCESS'
        else
            echo 'response.status_code=' $?
            echo 'FAIL'
        fi
    
        rm temp.json
    }
    
    if [ "$#" -ne 3 ]; then
        echo "Usage: $0   <content>"</span>
    <span class="token keyword">else</span>
        mail_address=<span class="token variable">$1</span>
        title=<span class="token variable">$2</span>
        content=<span class="token variable">$3</span>
        send_email <span class="token variable">$mail_address</span> <span class="token string">"<span class="token variable">$title</span>"</span> <span class="token string">"<span class="token variable">$content</span>"</span>
    fi
    
    <div class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li><li style="color: rgb(153, 153, 153);">17</li><li style="color: rgb(153, 153, 153);">18</li><li style="color: rgb(153, 153, 153);">19</li><li style="color: rgb(153, 153, 153);">20</li><li style="color: rgb(153, 153, 153);">21</li><li style="color: rgb(153, 153, 153);">22</li><li style="color: rgb(153, 153, 153);">23</li><li style="color: rgb(153, 153, 153);">24</li><li style="color: rgb(153, 153, 153);">25</li><li style="color: rgb(153, 153, 153);">26</li><li style="color: rgb(153, 153, 153);">27</li><li style="color: rgb(153, 153, 153);">28</li><li style="color: rgb(153, 153, 153);">29</li><li style="color: rgb(153, 153, 153);">30</li><li style="color: rgb(153, 153, 153);">31</li><li style="color: rgb(153, 153, 153);">32</li></ul></pre> 
    <ol start="5"><li>添加完成后 :wq保存退出,并给文件赋予权限,文件才能运行,这边直接给文件赋予执行权限</li></ol> 
    <pre data-index="4" class="set-code-show prettyprint"><code class="prism language-powershell has-numbering" onclick="mdcp.signin(event)" style="position: unset;">chmod <span class="token operator">+</span>x <span class="token operator">/</span>usr/lib/zabbix/alertscripts/sendmail<span class="token punctuation">.</span>sh  <span class="token comment">#文件赋予执行权限</span>
    <div class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> 
    <ol start="6"><li>执行文件测试,看是否能收到邮件。能收到邮件说明脚本没有问题</li></ol> 
    <pre data-index="5" class="set-code-show prettyprint"><code class="prism language-powershell has-numbering" onclick="mdcp.signin(event)" style="position: unset;"><span class="token punctuation">.</span><span class="token operator">/</span>sendmail<span class="token punctuation">.</span>sh  xxx@xxx<span class="token punctuation">.</span>com <span class="token string">"email title"</span> <span class="token string">"email content"</span>
    <div class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> 
    <h3><a name="t4"></a><a id="2_78"></a>2.短信告警脚本配置</h3> 
    <p><strong>前面步骤跟邮件告警一样,参考上文内容,下面直接从创建脚本开始。</strong></p> 
    <ol><li>进入zabbix-server-mysql容器中存放脚本文件的文件夹alertscripts创建一个脚本文件sendSMS.sh</li></ol> 
    <pre data-index="6" class="set-code-show prettyprint"><code class="prism language-powershell has-numbering" onclick="mdcp.signin(event)" style="position: unset;">vi sendSMS<span class="token punctuation">.</span>sh
    <div class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> 
    <ol start="2"><li>添加脚本内容如下。</li></ol> 
    <pre data-index="7" class="set-code-show prettyprint"><code class="prism language-powershell has-numbering" onclick="mdcp.signin(event)" style="position: unset;"><span class="token comment">#!/bin/bash</span>
    
    send_sms<span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
    	<span class="token comment">## 替换成你自己的短信api接口</span>
        url=<span class="token string">'http://xxx.xx.xxx.xxx/api/ms/dm/sms/send'</span>
        content=$<span class="token punctuation">(</span>urlencode <span class="token string">"<span class="token variable">$1</span>"</span><span class="token punctuation">)</span>
        phone_number=$<span class="token punctuation">(</span>urlencode <span class="token string">"<span class="token variable">$2</span>"</span><span class="token punctuation">)</span>
        smsPsw=<span class="token string">'7121@byd'</span>
        smsUid=<span class="token string">'7121'</span>
    
        response=$<span class="token punctuation">(</span>wget <span class="token operator">-</span>qO- <span class="token string">"<span class="token variable">$url</span>?content=<span class="token variable">$content</span>&nodeld=2&phoneNumber=<span class="token variable">$phone_number</span>&smsPsw=<span class="token variable">$s</span>
    
        if [ $? -eq 0 ]; then
            echo 'SUCCESS'
        else
            echo 'FAIL'
        fi
    }
    
    urlencode() {
        # ...... awk ...... URL ......
        echo -n "</span><span class="token variable">$1</span><span class="token string">" | awk '{ gsub(/[^a-zA-Z0-9\/:._-]/, c); print }'
    }
    
    if [ "</span>$<span class="token comment">#" -ne 2 ]; then</span>
        <span class="token function">echo</span> <span class="token string">"Usage: <span class="token variable">$0</span> <phone_number> <message>"</span>
    <span class="token keyword">else</span>
        phone_number=<span class="token variable">$1</span>
        message=<span class="token variable">$2</span>
        send_sms <span class="token string">"<span class="token variable">$message</span>"</span> <span class="token variable">$phone_number</span>
    fi
    <div class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li><li style="color: rgb(153, 153, 153);">9</li><li style="color: rgb(153, 153, 153);">10</li><li style="color: rgb(153, 153, 153);">11</li><li style="color: rgb(153, 153, 153);">12</li><li style="color: rgb(153, 153, 153);">13</li><li style="color: rgb(153, 153, 153);">14</li><li style="color: rgb(153, 153, 153);">15</li><li style="color: rgb(153, 153, 153);">16</li><li style="color: rgb(153, 153, 153);">17</li><li style="color: rgb(153, 153, 153);">18</li><li style="color: rgb(153, 153, 153);">19</li><li style="color: rgb(153, 153, 153);">20</li><li style="color: rgb(153, 153, 153);">21</li><li style="color: rgb(153, 153, 153);">22</li><li style="color: rgb(153, 153, 153);">23</li><li style="color: rgb(153, 153, 153);">24</li><li style="color: rgb(153, 153, 153);">25</li><li style="color: rgb(153, 153, 153);">26</li><li style="color: rgb(153, 153, 153);">27</li><li style="color: rgb(153, 153, 153);">28</li><li style="color: rgb(153, 153, 153);">29</li><li style="color: rgb(153, 153, 153);">30</li><li style="color: rgb(153, 153, 153);">31</li></ul></pre> 
    <ol start="3"><li>然后执行以下命令进行测试,能收到短信表示脚本无问题</li></ol> 
    <pre data-index="8" class="set-code-show prettyprint"><code class="prism language-powershell has-numbering" onclick="mdcp.signin(event)" style="position: unset;"><span class="token punctuation">.</span><span class="token operator">/</span>sendSMS<span class="token punctuation">.</span>sh 181XXXXX <span class="token string">"message content"</span>
    <div class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> 
    <p><img src="https://1000bd.com/contentImg/2024/04/25/0b78967c7b4ba5bc.png" alt="在这里插入图片描述"></p> 
    <h3><a name="t5"></a><a id="3zabbix_126"></a>3.zabbix添加报警媒介</h3> 
    <ol><li>告警——媒介——创建媒介类型<br> <img src="https://1000bd.com/contentImg/2024/04/25/ff4c3a9768698499.png" alt="在这里插入图片描述"></li></ol> 
    <p><strong>1 )邮件配置</strong></p> 
    <p><strong>名称</strong>:随意填写</p> 
    <p><strong>类型</strong>:脚本</p> 
    <p><strong>脚本名称</strong>:填写你刚才创建的脚本名称</p> 
    <p><strong>脚本参数</strong>:<br> {ALERT.SENDTO}<br> {ALERT.SUBJECT}<br> {ALERT.MESSAGE}</p> 
    <p><img src="https://1000bd.com/contentImg/2024/04/25/37190c2734f39e00.png" alt="在这里插入图片描述"></p> 
    <p><strong>2)短信配置</strong><br> <strong>名称</strong>:随意填写</p> 
    <p><strong>类型</strong>:脚本</p> 
    <p><strong>脚本名称</strong>:填写你刚才创建的脚本名称</p> 
    <p><strong>脚本参数</strong>:<br> {ALERT.SENDTO}<br> {ALERT.MESSAGE}</p> 
    <p><img src="https://1000bd.com/contentImg/2024/04/25/541b7886dcea8ec7.png" alt="在这里插入图片描述"></p> 
    <p>如下表示创建成功:<br> <img src="https://1000bd.com/contentImg/2024/04/25/7ca3f2640da8505e.png" alt="在这里插入图片描述"></p> 
    <h3><a name="t6"></a><a id="4zabbix_161"></a>4.zabbix创建动作</h3> 
    <p>以下只介绍邮件告警动作配置,短信动作配置同理,选择不同的报警媒介即可。</p> 
    <ol><li>告警——动作——触发器动作——创建动作<br> <img src="https://1000bd.com/contentImg/2024/04/25/babcc4136b49b162.png" alt="在这里插入图片描述"></li></ol> 
    <p><strong>1)动作配置</strong><br> 名称:随意<br> 条件:根据自己的需求添加,比如选择“主机群组”等于“zabbix servers”的主机(群组是在配置主机时添加的)</p> 
    <p><img src="https://1000bd.com/contentImg/2024/04/25/734f2782f4eb0717.png" alt="在这里插入图片描述"></p> 
    <p><strong>2)操作配置</strong><br> <strong>(1)操作</strong></p> 
    <ul><li>点击添加</li><li>选择发送的用户组和用户</li><li>仅送到:选择刚刚创建的报警媒介</li><li>勾选自定义消息类型内容</li></ul> 
    <p><strong>主题</strong>添加如下内容:</p> 
    <pre data-index="9" class="set-code-show prettyprint"><code class="prism language-powershell has-numbering" onclick="mdcp.signin(event)" style="position: unset;">故障<span class="token punctuation">{<!-- --></span>TRIGGER<span class="token punctuation">.</span>STATUS<span class="token punctuation">}</span><span class="token punctuation">,</span>服务器:<span class="token punctuation">{<!-- --></span>HOSTNAME1<span class="token punctuation">}</span>发生: <span class="token punctuation">{<!-- --></span>TRIGGER<span class="token punctuation">.</span>NAME<span class="token punctuation">}</span>故障<span class="token operator">!</span>
    <div class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> 
    <p><strong>消息</strong>添加如下内容:</p> 
    <pre data-index="10" class="set-code-show prettyprint"><code class="prism language-powershell has-numbering" onclick="mdcp.signin(event)" style="position: unset;">告警主机:<span class="token punctuation">{<!-- --></span>HOSTNAME1<span class="token punctuation">}</span><br>
    告警时间:<span class="token punctuation">{<!-- --></span>EVENT<span class="token punctuation">.</span>DATE<span class="token punctuation">}</span> <span class="token punctuation">{<!-- --></span>EVENT<span class="token punctuation">.</span>TIME<span class="token punctuation">}</span><br>
    告警等级:<span class="token punctuation">{<!-- --></span>TRIGGER<span class="token punctuation">.</span>SEVERITY<span class="token punctuation">}</span><br>
    告警信息: <span class="token punctuation">{<!-- --></span>TRIGGER<span class="token punctuation">.</span>NAME<span class="token punctuation">}</span><br>
    告警项目:<span class="token punctuation">{<!-- --></span>TRIGGER<span class="token punctuation">.</span>KEY1<span class="token punctuation">}</span><br>
    问题详情:<span class="token punctuation">{<!-- --></span>ITEM<span class="token punctuation">.</span>NAME<span class="token punctuation">}</span>:<span class="token punctuation">{<!-- --></span>ITEM<span class="token punctuation">.</span>VALUE<span class="token punctuation">}</span><br>
    当前状态:<span class="token punctuation">{<!-- --></span>TRIGGER<span class="token punctuation">.</span>STATUS<span class="token punctuation">}</span>:<span class="token punctuation">{<!-- --></span>ITEM<span class="token punctuation">.</span>VALUE1<span class="token punctuation">}</span><br>
    事件ID:<span class="token punctuation">{<!-- --></span>EVENT<span class="token punctuation">.</span>ID<span class="token punctuation">}</span>
    <div class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li></ul></pre> 
    <p><img src="https://1000bd.com/contentImg/2024/04/25/4bf460a8d5717088.png" alt="在这里插入图片描述"></p> 
    <p><strong>(2)恢复操作</strong></p> 
    <ul><li>点击添加</li><li>选择发送的用户组和用户</li><li>仅送到:选择刚刚创建的报警媒介</li><li>勾选自定义消息类型内容<br> <strong>主题</strong>添加如下内容:</li></ul> 
    <pre data-index="11" class="set-code-show prettyprint"><code class="prism language-powershell has-numbering" onclick="mdcp.signin(event)" style="position: unset;">恢复<span class="token punctuation">{<!-- --></span>TRIGGER<span class="token punctuation">.</span>STATUS<span class="token punctuation">}</span><span class="token punctuation">,</span> 服务器:<span class="token punctuation">{<!-- --></span>HOSTNAME1<span class="token punctuation">}</span>: <span class="token punctuation">{<!-- --></span>TRIGGER<span class="token punctuation">.</span>NAME<span class="token punctuation">}</span>已恢复<span class="token operator">!</span>
    <div class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li></ul></pre> 
    <p><strong>消息</strong>添加如下内容:</p> 
    <pre data-index="12" class="set-code-show prettyprint"><code class="prism language-powershell has-numbering" onclick="mdcp.signin(event)" style="position: unset;">告警主机:<span class="token punctuation">{<!-- --></span>HOSTNAME1<span class="token punctuation">}</span><br>
    告警时间:<span class="token punctuation">{<!-- --></span>EVENT<span class="token punctuation">.</span>DATE<span class="token punctuation">}</span> <span class="token punctuation">{<!-- --></span>EVENT<span class="token punctuation">.</span>TIME<span class="token punctuation">}</span><br>
    告警等级:<span class="token punctuation">{<!-- --></span>TRIGGER<span class="token punctuation">.</span>SEVERITY<span class="token punctuation">}</span><br>
    告警信息: <span class="token punctuation">{<!-- --></span>TRIGGER<span class="token punctuation">.</span>NAME<span class="token punctuation">}</span><br>
    告警项目:<span class="token punctuation">{<!-- --></span>TRIGGER<span class="token punctuation">.</span>KEY1<span class="token punctuation">}</span><br>
    问题详情:<span class="token punctuation">{<!-- --></span>ITEM<span class="token punctuation">.</span>NAME<span class="token punctuation">}</span>:<span class="token punctuation">{<!-- --></span>ITEM<span class="token punctuation">.</span>VALUE<span class="token punctuation">}</span><br>
    当前状态:<span class="token punctuation">{<!-- --></span>TRIGGER<span class="token punctuation">.</span>STATUS<span class="token punctuation">}</span>:<span class="token punctuation">{<!-- --></span>ITEM<span class="token punctuation">.</span>VALUE1<span class="token punctuation">}</span><br>
    事件ID:<span class="token punctuation">{<!-- --></span>EVENT<span class="token punctuation">.</span>ID<span class="token punctuation">}</span>
    <div class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}"></div></code><ul class="pre-numbering" style=""><li style="color: rgb(153, 153, 153);">1</li><li style="color: rgb(153, 153, 153);">2</li><li style="color: rgb(153, 153, 153);">3</li><li style="color: rgb(153, 153, 153);">4</li><li style="color: rgb(153, 153, 153);">5</li><li style="color: rgb(153, 153, 153);">6</li><li style="color: rgb(153, 153, 153);">7</li><li style="color: rgb(153, 153, 153);">8</li></ul></pre> 
    <p><img src="https://1000bd.com/contentImg/2024/04/25/204111e47f593757.png" alt="在这里插入图片描述"></p> 
    <h3><a name="t7"></a><a id="4_222"></a>4.给用户添加报警媒介</h3> 
    <ol><li>用户——用户——点击需要添加报警媒介的用户——报警媒介——添加——选择对应的报警媒介类型——收件人:邮箱号或手机号,点击添加即可<br> <img src="https://1000bd.com/contentImg/2024/04/25/d8f1ca3405da2aa5.png" alt="在这里插入图片描述"></li><li>给用户添加邮件报警<br> <img src="https://1000bd.com/contentImg/2024/04/25/28cc0e6d20e6f44c.png" alt="在这里插入图片描述"></li><li>给用户添加短信报警</li></ol> 
    <p><img src="https://1000bd.com/contentImg/2024/04/25/3d6a4a03b505e45f.png" alt="在这里插入图片描述"></p> 
    <p>在仪表盘页面如果出现zabbix监控到服务器出现问题,则会触发邮件告警和短信告警动作,正常发送会显示绿色,如果没发送成功则是红色。</p> 
    <p><img src="https://1000bd.com/contentImg/2024/04/25/c3267a644629312a.png" alt="在这里插入图片描述"></p> 
    <p>如下为收到告警邮件:</p> 
    <p><img src="https://1000bd.com/contentImg/2024/04/25/becd40328a074607.png" alt="在这里插入图片描述"></p>
                    </div>
                        </div>
                    </li>
    
                    <li class="list-group-item ul-li">
    
                        <b>相关阅读:</b><br>
                        <nobr>
    <a href="/Article/Index/935077">【C#】SuperSocket 服务端使用总结(未完成)</a>                            <br />
    <a href="/Article/Index/643537">Law of Large Numbers</a>                            <br />
    <a href="/Article/Index/1453928">前端设计模式之【访问者模式】</a>                            <br />
    <a href="/Article/Index/1360948">【MySQL】内置函数——字符串函数</a>                            <br />
    <a href="/Article/Index/723523">2022-07-21</a>                            <br />
    <a href="/Article/Index/1147740">cario库</a>                            <br />
    <a href="/Article/Index/1076692">web隧道</a>                            <br />
    <a href="/Article/Index/1206829">服务访问质量(QoS)介绍与技术 二</a>                            <br />
    <a href="/Article/Index/668013">linux中权限管理命令chown,chgrp,umask</a>                            <br />
    <a href="/Article/Index/635772">C语言中的程序环境和预处理</a>                            <br />
                        </nobr>
                    </li>
                    <li class="list-group-item from-a mb-2">
                        原文地址:https://blog.csdn.net/m0_51453764/article/details/137010464
                    </li>
    
                </ul>
            </div>
    
            <div class="col-lg-4 col-sm-12">
                <ul class="list-group" style="word-break:break-all;">
                    <li class="list-group-item ul-li-bg" aria-current="true">
                        最新文章
                    </li>
                    <li class="list-group-item ul-li">
                        <nobr>
    <a href="/Article/Index/1484446">攻防演习之三天拿下官网站群</a>                            <br />
    <a href="/Article/Index/1515268">数据安全治理学习——前期安全规划和安全管理体系建设</a>                            <br />
    <a href="/Article/Index/1759065">企业安全 | 企业内一次钓鱼演练准备过程</a>                            <br />
    <a href="/Article/Index/1485036">内网渗透测试 | Kerberos协议及其部分攻击手法</a>                            <br />
    <a href="/Article/Index/1877332">0day的产生 | 不懂代码的"代码审计"</a>                            <br />
    <a href="/Article/Index/1887576">安装scrcpy-client模块av模块异常,环境问题解决方案</a>                            <br />
    <a href="/Article/Index/1887578">leetcode hot100【LeetCode 279. 完全平方数】java实现</a>                            <br />
    <a href="/Article/Index/1887512">OpenWrt下安装Mosquitto</a>                            <br />
    <a href="/Article/Index/1887520">AnatoMask论文汇总</a>                            <br />
    <a href="/Article/Index/1887496">【AI日记】24.11.01 LangChain、openai api和github copilot</a>                            <br />
                        </nobr>
                    </li>
                </ul>
    
                <ul class="list-group pt-2" style="word-break:break-all;">
                    <li class="list-group-item ul-li-bg" aria-current="true">
                        热门文章
                    </li>
                    <li class="list-group-item ul-li">
                        <nobr>
    <a href="/Article/Index/888177">十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!</a>                            <br />
    <a href="/Article/Index/797680">奉劝各位学弟学妹们,该打造你的技术影响力了!</a>                            <br />
    <a href="/Article/Index/888183">五年了,我在 CSDN 的两个一百万。</a>                            <br />
    <a href="/Article/Index/888179">Java俄罗斯方块,老程序员花了一个周末,连接中学年代!</a>                            <br />
    <a href="/Article/Index/797730">面试官都震惊,你这网络基础可以啊!</a>                            <br />
    <a href="/Article/Index/797725">你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法</a>                            <br />
    <a href="/Article/Index/797702">心情不好的时候,用 Python 画棵樱花树送给自己吧</a>                            <br />
    <a href="/Article/Index/797709">通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!</a>                            <br />
    <a href="/Article/Index/797716">13 万字 C 语言从入门到精通保姆级教程2021 年版</a>                            <br />
    <a href="/Article/Index/888192">10行代码集2000张美女图,Python爬虫120例,再上征途</a>                            <br />
                        </nobr>
                    </li>
                </ul>
    
            </div>
        </div>
    </div>
    <!-- 主体 -->
    
    
        <!--body结束-->
        <!--这里是footer模板-->
        
        <!--footer-->
    <nav class="navbar navbar-inverse navbar-fixed-bottom">
        <div class="container">
            <div class="row">
                <div class="col-md-12">
                    <div class="text-muted center foot-height">
                        Copyright © 2022 侵权请联系<a href="mailto:2656653265@qq.com">2656653265@qq.com</a>   
                        <a href="https://beian.miit.gov.cn/" target="_blank">京ICP备2022015340号-1</a>
                    </div>
                    <div style="width:300px;margin:0 auto; padding:0px 5px;">
                        <a href="/regex.html">正则表达式工具</a>
                        <a href="/cron.html">cron表达式工具</a>
                        <a href="/pwdcreator.html">密码生成工具</a>
                    </div>
                    <div style="width:300px;margin:0 auto; padding:5px 0;">
                        <a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010502049817" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;">
                        <img src="" style="float:left;" /><p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">京公网安备 11010502049817号</p></a>
                    </div>
                </div>
            </div>
        </div>
      
    </nav>
    <!--footer-->
    
        <!--footer模板结束-->
    
        <script src="/js/plugins/jquery/jquery.js"></script>
        <script src="/js/bootstrap.min.js"></script>
    
        <!--这里是scripts模板-->
        
    
        
     
    
    
        <!--scripts模板结束-->
    
    </body>
    </html>