Detaillierte Erläuterung der HAProxy-Installation und -Konfiguration
1. Einführung in Haproxy
HAProxy ist eine vom Franzosen Willy Tarreau entwickelte Open-Source-Software. Es handelt sich um einen leistungsstarken TCP- und HTTP-Load-Balancer, der mehr als 10.000 gleichzeitige Client-Verbindungen verarbeiten kann. Es werden Funktionen bereitgestellt, die Cookie-basierte Persistenz, inhaltsbasiertes Switching, erweiterte Verkehrsüberwachung zum Schutz vor Überlastung, automatisches Failover, auf regulären Ausdrücken basierende Header-Steuerung der Laufzeit, webbasierte Berichte, erweiterte Protokollierung zur Unterstützung bei der Fehlerbehebung bei Anwendungen oder Netzwerken und andere Funktionen bereitstellen .
HAProxy bietet Hochverfügbarkeit, Lastausgleich und Proxying für TCP- und HTTP-Anwendungen und unterstützt virtuelle Hosts. Es ist eine kostenlose, schnelle und zuverlässige Lastausgleichslösung. HAProxy eignet sich besonders für Websites mit hoher Auslastung, die in der Regel Sitzungspersistenz oder Layer-7-Verarbeitung erfordern. HAProxy läuft auf aktueller Hardware und kann Zehntausende gleichzeitiger Verbindungen unterstützen. Und sein Betriebsmodus ermöglicht eine einfache und sichere Integration in Ihre aktuelle Architektur und schützt gleichzeitig Ihren Webserver vor der Gefährdung durch das Internet.
Offizielle Website: https://www.haproxy.com/
1. Unterschiede zwischen LVS, Haproxy und Nginx
- LVS implementiert einen sanften Lastausgleich basierend auf dem Linux-Betriebssystem, während Haproxy und Nginx einen sanften Lastausgleich basierend auf Anwendungen von Drittanbietern implementieren.
- LVS ist eine IP-Lastausgleichstechnologie, die Layer 4 implementieren kann, jedoch keine Weiterleitung basierend auf Verzeichnissen und URLs implementieren kann. Sowohl Haproxy als auch Nginx können Layer-4- und Layer-7-Technologien implementieren. Haproxy kann umfassende Lastausgleichslösungen für TCP- und HTTP-Anwendungen bereitstellen.
- Da LVS auf der vierten Ebene des ISO-Modells arbeitet, ist seine Statusüberwachungsfunktion eine einzige, während Haproxy über umfangreichere und leistungsfähigere Statusüberwachungsfunktionen verfügt und mehrere Statusüberwachungsmethoden wie Ports, URLs und Skripte unterstützen kann.
- Haproxy ist leistungsstark, aber seine Gesamtleistung ist geringer als die des LVS-Lastausgleichs im Layer-4-Modus
- Nginx wird hauptsächlich für Webserver oder Cache-Server verwendet
- Haproxy unterstützt auch virtuelle Hosts
- Haproxy unterstützt 8 Load-Balancer-Strategien
- Die Vorteile von Haproxy können einige der Nachteile von Nginx ergänzen, z. B. die Unterstützung der Sitzungsaufbewahrung, der Cookie-Anleitung und die Unterstützung der Statuserkennung des Back-End-Servers durch Abrufen der angegebenen URL.
- Haproxy ähnelt LVS. Es handelt sich lediglich um eine Lastausgleichssoftware. In Bezug auf die Effizienz verfügt Haproxy über eine bessere Lastausgleichsgeschwindigkeit als Nginx und ist auch in Bezug auf die gleichzeitige Verarbeitung besser als Nginx.
- Haproxy unterstützt die Lastausgleichsweiterleitung des TCP-Protokolls
Ein Bild fasst den Vergleich zusammen.
Ein detaillierter Vergleich erfolgt aus der Perspektive der Vor- und Nachteile, Anwendbarkeit und Größe der drei Lastausgleichssoftware Nginx, LVS und HAProxy.
2. HAProxy-Funktionen und Vorteile:
- Unterstützt Original-SSL und unterstützt sowohl Client- als auch Server-SSL.
- Unterstützt IPv6- und UNIX-Sockets
- Unterstützt HTTP Keep-Alive
- Unterstützt HTTP/1.1-Komprimierung, um Bandbreite zu sparen
- Unterstützt optimierte Integritätserkennungsmechanismen (SSL, Skript-TCP, Prüfagent ...)
- Unterstützt Layer-7-Lastausgleich.
- Zuverlässigkeit und Stabilität sind sehr gut.
- Es gibt 40.000 bis 50.000 gleichzeitige Verbindungen, die maximale Anforderungsverarbeitung pro Zeiteinheit beträgt 20.000 und die maximale Datenverarbeitung beträgt 10 Gbit/s.
- Unterstützt 8 Lastausgleichsalgorithmen und unterstützt die Sitzungserhaltung.
- Unterstützen Sie virtuelles Hosting.
- Unterstützt Verbindungsablehnung und vollständig transparenten Proxy.
- Verfügt über eine Seite zur Überwachung des Serverstatus.
- Unterstützt ACL.
3. Drei Lösungen für HAProxy zur Aufrechterhaltung von Sitzungen
HAProxy verwaltet Sitzungen, damit derselbe Client auf den Server zugreifen kann. Es gibt drei Lösungen: Client-IP, Cookie und Sitzung.
- Der Hash wird über die Client-IP berechnet und gespeichert, um sicherzustellen, dass er an den festen realen Server weitergeleitet werden kann, wenn dieselbe IP auf den Proxyserver zugreift.
- Verlassen Sie sich darauf, dass der reale Server die Cookie-Informationen des Clients zur Sitzungswartung sendet.
- Die Sitzungs- und Server-ID des realen Servers werden gespeichert, um Sitzungspersistenz zu erreichen. (HAProxy erfordert lediglich, dass der Backend-Server mit dem Netzwerk verbunden werden kann, und es gibt keine umständliche ARP-Konfiguration wie bei LVS.)
4. HAProxys Balance-8-Lastausgleichsalgorithmen:
roundrobin
: Basierend auf gewichtetem Round-Robin.static-rr
: Basierend auf gewichtetem Round-Robin. Statischer Algorithmus, Änderungen zur Laufzeit können nicht wirksam werdensource
: Algorithmus basierend auf der IP der Anforderungsquelle. Führen Sie eine Hash-Operation für die Quell-IP der Anfrage durch, dividieren Sie das Ergebnis durch das Gesamtgewicht des Backend-Servers und leiten Sie es dann an einen passenden Server weiter. Ermöglicht, dass Clientanfragen von derselben IP immer an einen bestimmten Backend-Server weitergeleitet werden.leastconn
: Mindestverbindung. (Geeignet für den Datenbanklastausgleich, nicht geeignet für Umgebungen mit kurzen Sitzungen)uri
: Führen Sie eine Hash-Operation für einen Teil oder den gesamten URI durch, dividieren Sie ihn durch das Gesamtgewicht des Servers und leiten Sie ihn schließlich an das entsprechende Backend weiter.uri_param
: Gemäß den Parametern im URL-Pfad weiterleiten, um sicherzustellen, dass dieselbe Benutzeranforderung an denselben Computer verteilt wird, wenn die Anzahl der Back-End-Server unverändert bleibt.hdr(<name>)
: Basierend auf dem HTTP-Header weiterleiten, wenn kein http-Header vorhanden ist. Dann verwenden Sie ein einfaches Round-Robin.
5. HAProxy-Hauptarbeitsmodus
- TCP-Modus: Zwischen dem Client und dem Server wird eine Vollduplex-Verbindung hergestellt, und im einfachen Modus werden Schicht-7-Nachrichten nicht verarbeitet.
Wird normalerweise in SSL, SSH, SMTP und anderen Anwendungsschichten verwendet. - http-Modus (allgemeine Verwendung): Client-Anfragen werden gründlich analysiert, bevor sie an den Backend-Server weitergeleitet werden. Alle Anfragen, die nicht mit dem RFC-Format kompatibel sind, werden abgelehnt.
2. HAProxy-Installation
Es gibt zwei Möglichkeiten zur Installation: Im Vergleich zur Kompilierung und Bereitstellung sind das tar.gz-Paket und die Yum-Methode einfacher und bequemer über Yum zu installieren.
1. Beschreibung der HAProxy-Version
In diesem Artikel wird gezeigt, wie Sie HAProxy schnell unter CentOS 7 installieren.
Der Nachteil besteht jedoch darin, dass die Standard-Haproxy-Version in der Yum-Quelle von CentOS relativ niedrig ist.
Wenn wir uns die Haproxy-Version ansehen, die in unserem System installiert werden kann, können wir sehen, dass es sich um 1.5.18 handelt:
yum list haproxy
[root@localhost ~]# yum list haproxy
已加载插件:fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Determining fastest mirrors
* base: mirrors.bupt.edu.cn
* extras: mirrors.bupt.edu.cn
* updates: mirrors.huaweicloud.com
可安装的软件包
haproxy.x86_64 1.5.18-9.el7_9.1 update
Was ist, wenn wir den neuesten Haproxy installieren möchten?
Methode 1: Installationsprozess des RPM-Pakets (empfohlen)
HAPROXY stellt offiziell keine RPM-bezogenen Pakete bereit. Sie können
das RPM-Paket von der Drittanbieter-Website über das RPM-Paket des Drittanbieter-Warehouses herunterladen: https://pkgs.org/download/haproxy
. Wählen Sie die entsprechende Version aus. Unsere Demonstration findet auf CentOS7 statt. 9 Installieren Sie die neuere Version haproxy 2.2
-
Überprüfen Sie die Version von Haproxy im System. Lecker:
yum info haproxy
Die Versionsinformationen für CentOS7 lauten 1.5.18. Die Version ist noch sehr alt.#CentOS7 上的版本信息 1.5.18 版本还是很老的了,我们在这个CentOS7.9 上演示编译安装最新版本的HAPROXY [root@localhost ~]# yum info haproxy 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.huaweicloud.com * extras: mirrors.huaweicloud.com * updates: mirrors.huaweicloud.com 可安装的软件包 名称 :haproxy 架构 :x86_64 版本 :1.5.18 发布 :9.el7_9.1 大小 :835 k 源 :updates/7/x86_64 简介 : TCP/HTTP proxy and load balancer for high availability environments 网址 :http://www.haproxy.org/ 协议 : GPLv2+ 描述 : HAProxy is a TCP/HTTP reverse proxy which is particularly suited for high
-
Laden Sie die Repo-Informationsdatei herunter
wget https://repo.ius.io/ius-release-el7.rpm
[root@localhost ~]# wget https://repo.ius.io/ius-release-el7.rpm --2023-03-16 14:35:48-- https://repo.ius.io/ius-release-el7.rpm 正在解析主机 repo.ius.io (repo.ius.io)... 104.85.67.135, 2600:140b:5000:98d::3898, 2600:140b:5000:982::3898 正在连接 repo.ius.io (repo.ius.io)|104.85.67.135|:443... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:8412 (8.2K) [application/x-rpm] 正在保存至: “ius-release-el7.rpm” 100%[================================================================================================================================================>] 8,412 --.-K/s 用时 0s [root@localhost ~]# ll -rw-r--r--. 1 root root 8412 1月 3 14:05 ius-release-el7.rpm
-
Installieren Sie Epel-Release
yum -y install epel-release
-
Installieren Sie ius-release-el7.rpm
rpm -Uvh ius-release*rpm
-
Installieren Sie Haproxy Version 2.2
yum install haproxy22
-
Starten Sie Haproxy
systemctl start haproxy
# 安装 haproxy 2.2.22版
[root@localhost ~]# yum install haproxy22
# 查看端口监听 看不到有 haproxy 相关的
[root@localhost ~]# ss -tlnp | grep haproxy
# 启动服务,再查看端口监听
[root@localhost ~]# systemctl start haproxy
[root@localhost ~]# ss -tlnp | grep haproxy
LISTEN 0 128 *:5000 *:* users:(("haproxy",pid=1416,fd=7))
# 查看版本
[root@localhost ~]# haproxy -v
HA-Proxy version 2.2.29-c5b927c 2023/02/14 - https://haproxy.org/
Status: long-term supported branch - will stop receiving fixes around Q2 2025.
Known bugs: http://www.haproxy.org/bugs/bugs-2.2.29.html
Running on: Linux 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64
# 查看生成的文件
[root@localhost ~]# rpm -ql haproxy22
/etc/haproxy #haproxy 主要目录之一
/etc/haproxy/haproxy.cfg #此文件是配置文件,很重要
/etc/logrotate.d/haproxy
/etc/sysconfig/haproxy
/usr/bin/halog
/usr/bin/iprange
/usr/lib/systemd/system/haproxy.service #haproxy 启动文件
/usr/sbin/haproxy
/usr/share/doc/haproxy22-2.2.29
/usr/share/doc/haproxy22-2.2.29/51Degrees-device-detection.txt
………
Methode 2: IUS-Installationsprozess
IUS ist ein Yum-Repository, das neuere Versionen ausgewählter Software für RHEL und CentOS bereitstellt.
Es bietet leckere Quellen der neuesten Softwareversionen für CentOS von RHEL.
-
Konfigurieren Sie die IUS-yum-Quelle:
vim /etc/yum.repos.d/ius-7.repo
[ius] name = IUS for Enterprise Linux 7 - $basearch baseurl = https://repo.ius.io/7/$basearch/ enabled = 1 repo_gpgcheck = 0 gpgcheck = 1 gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7 [ius-debuginfo] name = IUS for Enterprise Linux 7 - $basearch - Debug baseurl = https://repo.ius.io/7/$basearch/debug/ enabled = 0 repo_gpgcheck = 0 gpgcheck = 1 gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7 [ius-source] name = IUS for Enterprise Linux 7 - Source baseurl = https://repo.ius.io/7/src/ enabled = 0 repo_gpgcheck = 0 gpgcheck = 1 gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7
-
Cache leeren:
yum clean all
-
Cache aktualisieren:
yum makecache fast
-
Überprüfen Sie die Version:
yum list|grep haproxy
Sie können sehen, dass die installierbare Version unter der Basisquelle 1.5.18 ist. Unter der ius-Quelle gibt es viele Versionen, einschließlich der neuesten Version 2.2.[root@localhost ~]# yum list|grep haproxy haproxy.x86_64 1.5.18-9.el7_9.1 updates haproxy18u.x86_64 1.8.30-1.el7.ius ius haproxy20.x86_64 2.0.30-1.el7.ius ius haproxy22.x86_64 2.2.29-1.el7.ius ius pcp-pmda-haproxy.x86_64 4.3.2-13.el7_9 updates [root@localhost ~]#
-
Installieren Sie Version 2.2:
yum install -y haproxy22
-
Installierten Haproxy anzeigen:
yum list installed |grep haproxy
-
Version anzeigen:
haproxy -v
Sie können sehen, dass die Version 2.2.1 ist -
Haproxy-Status anzeigen:
systemctl status haproxy
.
Da wir haproxy noch nicht gestartet haben, lautet der jetzt angezeigte Status inaktiv.
3. Verwendung von HAProxy
1.HAProxy-Konfigurationsdatei
Die Haproxy-Konfigurationsdatei besteht aus zwei Teilen: globale Einstellungen und Proxy-Einstellungen, unterteilt in fünf Abschnitte: global, Standardeinstellungen, Frontend, Backend, Listen
global
: Die globale Konfiguration wird hauptsächlich zum Definieren globaler Parameter verwendet und ist eine Konfiguration auf Prozessebene, die normalerweise mit der Betriebssystemkonfiguration zusammenhängt.default
: Konfigurieren Sie Standardparameter, die in Frontend-, Backend- und Listen-Komponenten verwendet werden können.frontend
: Der virtuelle Front-End-Knoten, der die Anforderung empfängt. Das Front-End kann das Backend angeben, um das Backend speziell zu verwenden.backend
: Konfiguration des Backend-Dienstclusters, realer Server, ein Backend entspricht einem oder mehreren Entitätsservern.listen
: Eine Kombination aus Front- und Backend, z. B. die Konfiguration des Haproxy-Instanzstatusüberwachungsteils. Die einzige Konfigurationsmethode vor Haproxy1.3.
Pfad der Konfigurationsdateivim /etc/haproxy/haproxy.cfg
Globale globale Konfiguration
global
log 127.0.0.1 local0 info //定义haproxy日志输出设置
log loghost local0 info //定义haproxy日志级别
maxconn 20480 //定义最大连接数
chroot /usr/local/haproxy //chroot运行路径
pidfile /var/run/haproxy.pid //haproxy进程PID文件
user haproxy //运行haproxy用户,可用uid代替
group haproxy //运行haproxy用户组,可用gid代替
daemon //以后台形式运行haproxy
Standardkonfiguration
- Wird zum Festlegen von Konfigurationsstandardparametern verwendet, die in Frontend-, Backend- und Listen-Komponenten verwendet werden können. Die in diesem Abschnitt festgelegten Parameterwerte werden standardmäßig automatisch auf die folgenden Frontend-, Backend- und Listen-Abschnitte verwiesen. Wenn einige Parameter zur öffentlichen Konfiguration gehören, müssen Sie sie nur einmal im Abschnitt „Standardeinstellungen“ hinzufügen. Und wenn die Frontend-, Backend- und Listen-Teile ebenfalls mit denselben Parametern wie der Standardteil konfiguriert sind, werden die Werte, die den Standardteil-Parametern entsprechen, automatisch überschrieben.
- mode http: Legen Sie den Ausführungsmodus von haproxy fest. Es gibt drei {http|tcp|health}. Hinweis: Wenn in Haproxy auch Layer-4-Anwendungen (Modus TCP) verwendet werden, ist es nicht empfehlenswert, hier die Betriebsart von Haproxy zu definieren.
tcp模式
: In diesem Modus stellen Client und Server eine Vollduplex-Verbindung her, ohne dass Layer-7-Nachrichten überprüft werden. Der Standardwert ist der TCP-Modus, der häufig in SSL, SSH, SMTP und anderen Anwendungen verwendet wird.
http模式
: In diesem Modus werden Client-Anfragen vor der Weiterleitung an den Backend-Server tief aufgeteilt und alle Anfragen, die nicht mit dem RFC-Format kompatibel sind, werden abgelehnt.
health
: Grundsätzlich nicht mehr verwendet.
defaults
mode http //所处理的类别(7层代理http,4层代理tcp)
log global //引入global定义的日志格式
option dontlognull //不记录健康检查日志信息
option httpclose //每次请求完毕后主动关闭http通道,haproxy不支持keep-alive模式
option httplog //日志类别为http日志格式
option forwardfor //如果后端服务器需要获取客户端的真是ip,需要配置的参数,可以从http header中获取客户端的ip
option redispatch
balance roundrobin //设置默认负载均衡方式,轮询方式
timeout connect 10s //默认连接超时时间
timeout client 10s //默认客户端超时时间
timeout server 10s //默认服务器超时时间
timeout check 10s //设置超时检查超时时间
maxconn 60000 //最大连接数
retries 3 //3次连接失败就认为服务器不可用,也可以通过后面设置
Frontend-Konfiguration
- Frontend ist eine Komponente, die nach Haproxy-Version 1.3 zusammen mit der Backend-Komponente eingeführt wurde. Durch die Einführung dieser Komponenten wird die Komplexität von Haproxy-Konfigurationsdateien erheblich vereinfacht. forntend kann das zu verwendende Backend basierend auf ACL-Regeln direkt angeben.
wie:
frontend http_80_in
bind 0.0.0.0:80 //设置侦听端口,即haproxy提供的web服务端口,和lvs的vip类似
mode http
log global
option httpclose
option httplog
option forwardfor
default_backend webserver //设置请求默认转发的后端服务池
Die Backend-Konfiguration
wird verwendet, um die Konfiguration des Backend-Dienstclusters, eines echten Servers, zu definieren. Ein Backend entspricht einem oder mehreren Entitätsservern
backend webserver //定义webserver服务器组
mode http
option redispath
option abortonclose
balancer source //负载均衡的方式,源哈希算法
cookie SERVERID //允许插入serverid到cookie中,serverid后面可以定义
option httpdchk GET /test.html //心跳测试
server web1 192.168.92.100:80 cookie 2 weight 3 check inter 2000 rise 2 fall 3 maconn 8
Die Listen-Konfiguration
wird häufig zur Statusseitenüberwachung und Backend-Server-Inspektion verwendet und ist eine Kombination aus Fronted und Backend.
listen admin_stats //frontend和backend的组合体,监控组的名称,按需自定义名称
bind 0.0.0.0:8189 //侦听端口
stats enable //开启监控
mode http
log global
stats uri /haproxy_stats //监控页面的url访问路径
stats realm Haproxy\ Statistics //监控页面的提示信息
stats auth admin:admin //监控页面的用户和密码
#stats hide-version //隐藏统计页面上的haproxy版本信息
stats admin if TRUE //手工启用/禁用,后端服务器haproxy
stats refresh 30s //每个30秒自动刷新监控页面
Greifen Sie auf die Überwachungsoberfläche zu:http://192.168.92.110:8189/haproxy_stats
2. Implementieren Sie einen Lastausgleich
Umweltvorbereitung
CPU-Name | IP Adresse | Anmerkung |
---|---|---|
Haproxy | 192.168.92.110 | haproxy |
Webserver | 192.168.92.100 | Netz |
Webserver | 192.168.92.1101 | Netz |
listen implementiert einen einfachen Lastausgleich
#实现一个负载均衡
listen webcluster 0.0.0.0:80
option httpchk GET /index.html
balance roundrobin
server inst1 192.168.92.101:80 check inter 2000 fall 3
server inst1 192.168.92.100:80 check inter 2000 fall 3
Starten Sie Haproxy neu, nachdem Sie die Konfigurationsdatei geändert haben
systemctl restart haproxy
Konfigurieren Sie die ACL, um unterschiedliche URL-Anfrage-ACLs zu verarbeiten:
Access Control Lists (ACL, Access Control Lists) ist eine Zugriffskontrolltechnologie, die auf Paketfilterung basiert. Sie kann Datenpakete, die über den Server übertragen werden, gemäß festgelegten Bedingungen filtern (Bedingungsanpassung), d. h. sie kann die empfangenen Pakete filtern. Matching und Filtern Sie basierend auf der Quelladresse, dem Quellport, der Zieladresse, dem Zielport, der Anforderungsmethode, der URL, dem Dateisuffix und anderen Informationsinhalten im Header der Anforderungsnachricht, passen Sie sie an und führen Sie weitere Vorgänge durch, z. B. das Zulassen oder Verwerfen.
Spezifische andere Verwendungsmethoden finden Sie unter: Haproxy ACL-Konfiguration und -Fälle
Als Beispiel wird der folgende häufig verwendete URL-Abgleich demonstriert, der dem Standortabgleichspfad in Nginx ähnelt. Die
Konfigurationssyntax und Parameter von ACL in Haproxy:
acl语法:
acl <aclname> <criterion> [flags] [operator] [<value>]
acl 该条acl规则的名称 匹配规范 匹配模式 具体操作符 操作对象类型
frontend http-in
bind 0.0.0.0:80
acl web url_beg /web #配置路基url 定义为web
use_backend admin_web if web #如果满足web条件 走admin_web 服务
default_backend admin_server #默认服务
backend admin_web #定义web服务
mode http
balance roundrobin # Load Balancing algorithm
option httpchk
option forwardfor
server web1 192.168.92.101:80 check inter 2000 fall 3
backend admin_server #定义后端服务
mode http
balance roundrobin # Load Balancing algorithm
option httpchk
option forwardfor
server web2 192.168.92.100:80 check inter 2000 fall 3
Parse-Konfiguration:
- Wenn die aufgerufene URL
web
Felder enthält, wird sie zum Server 192.168.92.101 weitergeleitet - Andere gehen standardmäßig zum Server 192.168.92.100.
3. Beginnen Sie mit der Problembehandlung
Nach dem Ändern der Konfigurationsdatei wird möglicherweise die Fehlermeldung angezeigt, dass
Haproxy nicht gestartet werden kann. Die Fehlermeldung lautet:
Starting Proxy admin_stats: socket [0.0.0.0:8189] kann nicht gebunden werden
. Lösung:
setsebool -P haproxy_connect_any=1
Starten Sie es neu und es ist aktiv.
systemctl start haproxy
[root@bogon ~]# setsebool -P haproxy_connect_any=1
[root@bogon ~]# systemctl start haproxy
4. Protokollverarbeitung
Die Protokolle von Haproxy werden standardmäßig im Syslog des Systems ausgegeben. Um die Protokolle von Haproxy besser verwalten zu können, werden sie im Allgemeinen separat in der Produktionsumgebung definiert.
1.Haproxy-Protokollkonfiguration
[root@localhost ~]# vim /etc/haproxy/haproxy.cfg
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
#log 127.0.0.1 local0
#log 127.0.0.1 local1 notice
log /dev/log local0 info
log /dev/log local0 notice
[root@localhost ~]# systemctl restart haproxy
Diese beiden Konfigurationszeilen werden in der globalen Option platziert, hauptsächlich um die Informationen und Hinweisprotokolle von Haproxy in verschiedenen Protokolldateien aufzuzeichnen.
2. Ändern Sie die rsyslog-Konfiguration
Um die Verwaltung zu erleichtern, werden Haproxy-bezogene Konfigurationen unabhängig definiert haproxy.conf
und /etc/rsyslog.d/
unter abgelegt. Wenn rsyslog startet, werden automatisch alle Konfigurationsdateien in dieses Verzeichnis geladen.
vim /etc/rsyslog.d/haproxy.conf
[root@localhost ~]# vim /etc/rsyslog.d/haproxy.conf
if ($programname == 'haproxy' and $syslogserverity-text == 'info') then -/var/log/haproxy/haproxy-info.log &~
if ($programname == 'haproxy' and $syslogserverity-text == 'notice') then -/var/log/haproxy/haproxy-notice.log &~
Zeichnen Sie das Infoprotokoll von Haproxy auf /var/log/haproxy/haproxy-info.log
und
das Hinweisprotokoll auf /var/log/haproxy/haproxy-notice.log
.
&~
Zeigt an, dass rsyslog nach dem Schreiben in die Protokolldatei die Verarbeitung dieser Informationen beendet (Rainerscript-Skriptsprache).
3. Starten Sie den rsyslog-Dienst neu und prüfen Sie, ob die Protokolldatei erfolgreich erstellt wurde.
[root@localhost ~]# systemctl restart rsyslog
#查看日志文件是否创建成功
[root@localhost ~]# ls -l /var/log/haproxy/haproxy-info.log
[root@localhost ~]# ls -l /var/log/haproxy/haproxy-notice.log