Thứ Hai, 11 tháng 11, 2019

[Other] 4 giây - 2 phút - 72 giờ và 21 ngày: Công thức kì diệu giúp bạn đạt mọi mục tiêu và không bao giờ bị trì hoãn

Trước khi bắt đầu đọc bài viết này, bạn hãy dành một chút thời gian để suy nghĩ xem: Đã bao nhiêu lần bạn lập ra danh sách các mục tiêu mà mình muốn thực hiện? Chắc chắn, số lần đó luôn nhiều hơn những hành động thực tế bạn làm để đạt được mục tiêu.
Luật 4 giây
Lời khuyên: Hãy hít thở thật sâu và chậm 4 giây trước khi bạn hành động hoặc đưa ra bất cứ quyết định quan trọng nào.
Trong cuộc sống , chúng ta thường có xu hướng trì hoãn việc đưa ra những quyết định quan trọng. Điều này có vẻ như một gánh nặng quá lớn, do vậy chúng ta muốn chờ thêm thời gian. Cho đến khi bắt buộc phải đưa ra quyết định, chúng ta sẽ quyết định nhất thời và thông thường sau đó sẽ là sự hối tiếc.
Nguyên tắc 4 giây sẽ giúp bạn đưa ra những quyết định tốt hơn. Peter Bregman, tác giả của cuốn sách “Luật 4 giây” cho rằng bạn nên hít thở thật đều và sâu trong vòng 4 giây; sau đó bạn có thể hành động.
Tại sao việc này quan trọng? Đó chính là nghệ thuật tự kiểm soát. Hít thở sâu sẽ tránh cho bạn khỏi việc đưa ra các quyết định vội vã và mang lại cho bạn thời gian để đánh giá kết quả của mỗi hành động.
Luật 2 phút

Lời khuyên: Nếu việc nào đó chỉ tốn chưa đến 2 phút để hoàn thành, bạn hãy thực hiện nó ngay lập tức.
Rất nhiều nhiệm vụ chúng ta trì hoãn thường không khó để hoàn thành. Chúng ta thường tránh làm chúng cho đến hạn chót, mặc dù nó không đòi hỏi kỹ năng hay kiến thức đặc biệt. Chẳng hạn, bạn cần phải gọi điện cho đối tắc hoặc gửi một email. Việc này chỉ mất 1 đến 2 phút nhưng bạn lại trì hoãn cho đến phút cuối cùng. Nhiệm vụ đơn giản này làm bạn bị chùn bước và mất tập trung.
Nguyên tắc 2 phút này sẽ giúp bạn đạt được những mục tiêu lớn. Mỗi mục tiêu đi kèm với một danh sách các hành động nhỏ. Chẳng hạn, bạn phải đọc 1 cuốn sách khoảng 2.000 trang, việc này sẽ khiến bạn mất vài tháng. Nếu như bạn tiếp tục nhìn cuốn sách như một tổng thể, bạn sẽ thấy nó khó mà hoàn thành, do đó bạn dễ bỏ cuộc. Nhưng nếu như bạn chia nhỏ cuốn sách thành từng trang và đặt mục tiêu đọc từng trang một, bạn sẽ mất chưa đến 2 phút cho một trang sách.
Luật 72 giờ

Lời khuyên: Khi bạn đã có 1 ý tưởng, hãy thực hiện nó trong vòng 3 ngày (72 giờ).
Bodo Schaefer – tác giả sách, doanh nhân kiêm diễn giả nổi tiếng người Đức cho rằng nguyên tắc đơn giản này sẽ giúp bạn đẩy lùi trì hoãn: Đừng bao giờ đặt ra các nhiệm vụ kéo dài quá 72 giờ. Nếu bạn trì hoãn hành động này, ý tưởng của bạn sẽ mãi nằm trên giấy mà thôi.
Luật 21 ngày

Lời khuyên: Hãy cho bản thân 21 ngày để phát triển một thói quen
Khi bạn muốn đạt được một mục tiêu nào đó, bạn phải biến các hành động thành thói quen hàng ngày. Hãy lập lại danh sách mục tiêu một lần nữa, tập trung vào các mục tiêu đơn lẻ và biến nó thành hành động, sau đó thực hiện đều đặn mỗi ngày. Đó có thể là viết blog, ngồi thiền, chạy bộ hay học tiếng Anh… bất cứ việc gì.
Trong những ngày đầu tiên, bạn sẽ cần rất nhiều nỗ lực. Nhưng một khi đã quen dần với nó, bạn sẽ cảm thấy điều này như một phần cuộc sống.
Nguyên tắc 10.000 giờ

Lời khuyên: Khi bạn cố gắng để thành thạo trong lĩnh vực nào đó, bạn cần dành khoảng 10.000 giờ thực hành việc đó.
Trong cuốn sách “Outliers: The Story of Succes” (Tạm dịch: Những kẻ xuất chúng), tác giả người Canada Malcolm Gladwell đã đề cập đến nguyên tắc 10.000 giờ thực hành đóng góp vào thành công của hầu hết các doanh nhân, triệu phú trên thế giới.
Để thực hiện quy tắc này, bạn hãy lựa chọn lĩnh vực mà mình yêu thích và lập kế hoạch để thực hành mỗi ngày. Hãy theo dõi thời gian mà bạn thực hành việc đó để đảm bảo bạn thực hiện đủ 10.000 giờ.

Thứ Sáu, 11 tháng 1, 2019

Zabbix Check Java JMX






ZABBIX MONITORING JAVA JMX

    


Contents
Sơ đồ hoạt động của Zabbix JMX.. 2
Phần 1: Cài đặt Tomcat + Enable JMX.. 2
Phần 2: Cài đặt và setting Zabbix-Server. 4
Phần 3: Bảo mật JMX.. 6
Phần 4: Fix lỗi template Tomcat7/8 của zabbix not-support. 8



tuanduong122


Sơ đồ hoạt động của Zabbix JMX



Ở bài hướng dẫn này chúng ta sẽ sử dụng ở phía client là : tomcat web-server và enable jmx lên (với các tiến trình chạy trên nền java khác cũng tương tự).
[Zabbix-server --- Zabbix Java gateway --- Tomcat JMX]

Phần 1: Cài đặt Tomcat + Enable JMX

Cài đặt java
# tar -xvzf jdk-8u181-linux-x64.tar.gz
# chown -R root.root jdk1.8.0_181
# mv jdk1.8.0_181 /opt/

Setting môi trường java
# alternatives --install /usr/bin/java java /opt/jdk1.8.0_181/bin/java 2
# alternatives --config java
# alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_181/bin/jar 2
# alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_181/bin/javac 2
# alternatives --install /usr/bin/javaws javaws /opt/jdk1.8.0_181/bin/javaws  2
# alternatives --set jar /opt/jdk1.8.0_181/bin/jar
# alternatives --set javac /opt/jdk1.8.0_181/bin/javac
# alternatives --set javaws /opt/jdk1.8.0_181/bin/javaws
# java –version

Cài đặt Tomcat
Tải tomcat tại đường dẫn https://tomcat.apache.org/download-80.cgi
# tar -xvzf apache-tomcat-8.5.37.tar.gz
# mv apache-tomcat-8.5.37 /opt/tomcat

Setting tomcat bật JMX
# vim /opt/tomcat/bin/setenv.sh
#Set Heap Memory Commnit and Max
export CATALINA_OPTS="$CATALINA_OPTS -Xms1024m"
export CATALINA_OPTS="$CATALINA_OPTS -Xmx3096m"

#Enable JMX with no authenticaion
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote \
 -Dcom.sun.management.jmxremote.port=12345 \
 -Dcom.sun.management.jmxremote.authenticate=false \
 -Dcom.sun.management.jmxremote.ssl=false \
 -Djava.rmi.server.hostname=192.168.80.134"
IP 192.168.80.134 chính là ip của client.
Start tomcat
# cd /opt/tomcat/bin
# ./startup.sh
# tail -n 1000 /opt/tomcat/logs/*
# netstat -apln | grep 12345
tcp        0      0 :::12345                    :::*                        LISTEN      1553/java

Ta có thể tải jconsole.jar về để check real-time (Yêu cầu cài đặt java jdk để mở trên window https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html )






  



Phần 2: Cài đặt và setting Zabbix-Server


Cài đặt thêm zabbix-gateway-java trên zabbix-server
# yum install zabbix-java-gateway

Thêm config
[root@zabbix-server opt]# vim /etc/zabbix/zabbix_server.conf
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=5

[root@ zabbix-server opt]# vim /etc/zabbix/zabbix_java_gateway.conf
LISTEN_PORT=10052
START_POLLERS=5

Restart zabbix-server và zabbix-gateway java
# /etc/init.d/zabbix-server restart
# /etc/init.d/zabbix-java-gateway restart

# ps aux | grep java
zabbix     2212  0.0  0.2 168920  3388 ?        S    21:03   0:00 /usr/sbin/zabbix_server: java poller #1 [got 0 values in 0.000057 sec, idle 5 sec]
zabbix     2213  0.0  0.2 168920  3388 ?        S    21:03   0:00 /usr/sbin/zabbix_server: java poller #2 [got 0 values in 0.000043 sec, idle 5 sec]
zabbix     2214  0.0  0.2 168920  3388 ?        S    21:03   0:00 /usr/sbin/zabbix_server: java poller #3 [got 0 values in 0.000059 sec, idle 5 sec]
zabbix     2215  0.0  0.2 168920  3388 ?        S    21:03   0:00 /usr/sbin/zabbix_server: java poller #4 [got 0 values in 0.000034 sec, idle 5 sec]
zabbix     2216  0.0  0.2 168920  3388 ?        S    21:03   0:00 /usr/sbin/zabbix_server: java poller #5 [got 0 values in 0.000049 sec, idle 5 sec]
zabbix     2275  2.4  2.1 2353872 30608 ?       Sl   21:04   0:00 java -server -classpath lib:lib/android-json-4.3_r3.1.jar:lib/logback-classic-0.9.27.jar:lib/logback-core-0.9.27.jar:lib/slf4j-api-1.6.1.jar:bin/zabbix-java-gateway-3.4.15.jar -Dzabbix.pidFile=/var/run/zabbix/zabbix_java.pid -Dzabbix.listenPort=10052 -Dzabbix.startPollers=5 com.zabbix.gateway.JavaGateway
root       2287  0.0  0.0 103324   896 pts/0    S+   21:04   0:00 grep java


Phần 1 ta đã cài agent, tiếp theo ta sẽ add client vào giám sát trong zabbix
Add hoặc sửa Host




Thêm Template:










Phần 3: Bảo mật JMX

Mục đích là để bảo mật JMX. Khi kết nối cần phải nhập pass và user. https://db.apache.org/derby/docs/10.10/adminguide/radminjmxenabledisable.html
Stop tomcat. Change lại setenv.sh
# /opt/tomcat/bin/shutdown.sh
# vim /opt/tomcat/bin/setenv.sh
#Enable JMX with authentication. You need create file "jmxremote.access" and "jmxremote.password" and chown readonly permission.
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote \
 -Dcom.sun.management.jmxremote.port=12345 \
 -Dcom.sun.management.jmxremote.authenticate=true \
 -Dcom.sun.management.jmxremote.password.file=/opt/tomcat/conf/jmxremote.password \
 -Dcom.sun.management.jmxremote.access.file=/opt/tomcat/conf/jmxremote.access \
 -Dcom.sun.management.jmxremote.ssl=false \
 -Djava.rmi.server.hostname=192.168.80.134"

[root@java-client ~]# vim /opt/tomcat/conf/jmxremote.password
monitorRole  1234321
controlRole  1234567
[root@java-client ~]# vim /opt/tomcat/conf/jmxremote.access
monitorRole readonly
controlRole readwrite
[root@java-client ~]# chmod 600 /opt/tomcat/conf/jmxremote.access
[root@java-client ~]# chmod 600 /opt/tomcat/conf/jmxremote.password

# /opt/tomcat/bin/startup.sh

Client đã setting password xong. Giờ cần khai báo user/pass cho zabbix-server
Cách 1: Vào sửa từng Item trong Template


Cách 2: Export Template ra, sửa trực tiếp tất cả iteam trong file .xml và Import lại

Ta Replace All
                    <username/>
                    <password/>
Thành
                    <username>monitorRole</username>
                    <password>1234321</password>
Hoặc có thể sử dụng MACRO của zabbix thay cho trường Username/pass cũng được.

                    <username>{$USER_JMX}</username>
                    <password>{$PASS_JMX}</password>








Phần 4: Fix lỗi template Tomcat7/8  zabbix not-supported.



VD: Nhìn trên zabbix ta có Item : Template App Apache Tomcat JMXhttp-8080 threads max
Có key: jmx["Catalina:type=ThreadPool,name=http-8080",maxThreads]

Ta sử dụng Jconsole / Mbeans để tìm vị trí của nó trong tree

Tomcat version 7/8 sử dụng connector NIO. Vậy ta có kết luận là Zabbix đang gọi sai Name trong ThreadPool

Ta vào Template của zabbix, sửa lại theo đúng tên như sau:


jmx["Catalina:type=ThreadPool,name=http-8080",maxThreads]
Sửa thành:
jmx["Catalina:type=ThreadPool,name=\"http-nio-8080\"",maxThreads]
-------------------------------------------------------
Ngoài ra ta có thể tải check_jmx của nagios để check bằng console

Ta chạy lệnh
[root@zabbix-server]# ./check_jmx -U  service:jmx:rmi:///jndi/rmi://192.168.80.134:12345/jmxrmi -O "Catalina:type=ThreadPool,name=\"http-nio-8080\"" -A maxThreads
JMX OK maxThreads=200
Lệnh check_jmx chính là chạy :
[root@zabbix-server]#  java -cp jmxquery.jar org.nagios.JMXQuery -U  service:jmx:rmi:///jndi/rmi://192.168.80.134:12345/jmxrmi -O "Catalina:type=ThreadPool,name=\"http-nio-8080\"" -A maxThreads
JMX OK maxThreads=200



Ứng cứu khi chown -R user1:user1 /etc

1. Bài toán Gõ nhầm: chown -R user1:user1 /etc 2. Giải: Cách 1: Tìm bản backup /etc cũ (tỉ lệ phục hồi gần như ~100%) Cách 2: Tìm tạm 1 thư ...